[−][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 |
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 |