[][src]Crate kubelet

A crate for building custom Kubernetes kubelets.

The crate provides the Provider trait for declaring a Kubelet backend as well as a the Kubelet type which takes a Provider and runs a Kubelet server.

Example

use kubelet::{Provider, Pod, Kubelet, config::Config};

// Create some type that will act as your provider
struct MyProvider;

// Implement the `Provider` trait for that type
#[async_trait::async_trait]
impl Provider for MyProvider {
   const ARCH: &'static str = "my-arch";

   async fn add(&self, pod: Pod) -> anyhow::Result<()> {
       todo!("Implement Provider::add")
    }

    // Implement the rest of the methods
}

async {
    // Instantiate your provider type
    let provider = MyProvider;

    // Load a kubernetes configuration
    let kubeconfig = kube::Config::infer().await.unwrap();
    // Get a configuration for the Kubelet
    let kubelet_config = Config::default();

    // Instantiate the Kubelet
    let kubelet = Kubelet::new(provider, kubeconfig, kubelet_config);
    // Start the Kubelet and block on it
    kubelet.start().await.unwrap();
};

Re-exports

pub use handle::LogHandleFactory;
pub use handle::PodHandle;
pub use handle::RuntimeHandle;

Modules

config

Configuration for a Kubelet

handle

A convenience handle type for providers

image_client

Clients for fetching container module images from a storage location

module_store

Stores of container module images

provider

Traits and types need to create backend providers for a Kubelet

status

Container statuses

volumes

A module for use in managing volumes in providers. Use of this module is not mandatory to create a Provider, but it does provide common implementation logic for supported volume providers.

Structs

Kubelet

A Kubelet server backed by a given Provider.

LogSender

Sender for streaming logs to client.

NodeBuilder

Builder for node definition.

Pod

A Kubernetes Pod

Enums

LogSendError

Possible errors sending log data.

Traits

Provider

A back-end for a Kubelet.

Functions

stream_logs

Future that streams logs from provided AsyncRead to provided LogSender.