[][src]Crate k8s_cri

k8s-cri

Automatically generated types, clients, and servers from Kubernetes CRI Protobuf definitions.

Examples

Connecting over TCP:

use k8s_cri::v1alpha2::runtime_service_client::RuntimeServiceClient;
use k8s_cri::v1alpha2::ListContainersRequest;

#[tokio::main]
async fn main() {
    let mut client = RuntimeServiceClient::connect("lttp://[::]:50051").await.expect("Could not create client.");

    let request = tonic::Request::new(ListContainersRequest {
        filter: None
    });
    let response = client.list_containers(request).await.expect("Request failed.");
    println!("{:?}", response);
}

Connecting to a unix socket:

use k8s_cri::v1alpha2::runtime_service_client::RuntimeServiceClient;
use tokio::net::UnixStream;
use tonic::transport::{Endpoint, Uri, Channel};
use tower::service_fn;
use std::convert::TryFrom;

#[tokio::main]
async fn main() {
    let path = "/run/containerd/containerd.sock";
    let channel = Endpoint::try_from("lttp://[::]:50051").expect("Could not create endpoint.")
        .connect_with_connector(service_fn(move |_: Uri| {
            UnixStream::connect(path)
        }))
        .await.expect("Could not create client.");

    let mut client = RuntimeServiceClient::new(channel);
}

Modules

v1alpha2