Crate kube[−][src]
Expand description
Crate for interacting with the Kubernetes API
This crate includes the tools for manipulating Kubernetes resources as well as keeping track of those resources as they change over time
Example
The following example will create a Pod
and then watch for it to become available using a manual Api::watch
call.
use futures::{StreamExt, TryStreamExt}; use kube::api::{Api, ResourceExt, ListParams, PostParams, WatchEvent}; use kube::Client; use k8s_openapi::api::core::v1::Pod; #[tokio::main] async fn main() -> Result<(), kube::Error> { // Read the environment to find config for kube client. // Note that this tries an in-cluster configuration first, // then falls back on a kubeconfig file. let client = Client::try_default().await?; // Get a strongly typed handle to the Kubernetes API for interacting // with pods in the "default" namespace. let pods: Api<Pod> = Api::namespaced(client, "default"); // Create a pod from JSON let pod = serde_json::from_value(serde_json::json!({ "apiVersion": "v1", "kind": "Pod", "metadata": { "name": "my-pod" }, "spec": { "containers": [ { "name": "my-container", "image": "myregistry.azurecr.io/hello-world:v1", }, ], } }))?; // Create the pod let pod = pods.create(&PostParams::default(), &pod).await?; // Start a watch call for pods matching our name let lp = ListParams::default() .fields(&format!("metadata.name={}", "my-pod")) .timeout(10); let mut stream = pods.watch(&lp, "0").await?.boxed(); // Observe the pods phase for 10 seconds while let Some(status) = stream.try_next().await? { match status { WatchEvent::Added(o) => println!("Added {}", o.name()), WatchEvent::Modified(o) => { let s = o.status.as_ref().expect("status exists on pod"); let phase = s.phase.clone().unwrap_or_default(); println!("Modified: {} with phase: {}", o.name(), phase); } WatchEvent::Deleted(o) => println!("Deleted {}", o.name()), WatchEvent::Error(e) => println!("Error {}", e), _ => {} } } Ok(()) }
Modules
api | client API helpers for structured interaction with the Kubernetes API |
client | client A basic API client for interacting with the Kubernetes API |
config | config Kubernetes configuration objects from |
core | Re-exports from kube_core crate. |
discovery | client High-level utilities for runtime API discovery. |
error | config or client Error handling in |
Structs
Api | client The generic Api abstraction |
Client | client Client for connecting with a Kubernetes cluster. |
Config | config Configuration object detailing things like cluster URL, default namespace, root certificates, and timeouts. |
Discovery | client A caching client for running API discovery against the Kubernetes API. |
Enums
Error | config or client Possible errors when working with |
Traits
CustomResourceExt | Extension trait that will be implemented by kube-derive |
Resource | An accessor trait for a kubernetes Resource. |
ResourceExt | Helper methods for resources. |
Type Definitions
Result | config or client Convient alias for |
Derive Macros
CustomResource | derive A custom derive for kubernetes custom resource definitions. |