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_client::api::{Api, ResourceExt, ListParams, PatchParams, Patch};
use kube_client::Client;
use k8s_openapi::api::core::v1::Pod;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::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?;
// Interact with pods in the configured namespace with the typed interface from k8s-openapi
let pods: Api<Pod> = Api::default_namespaced(client);
// Create a Pod (cheating here with json, but it has to validate against the type):
let patch: 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",
},
],
}
}))?;
// Apply the Pod via server-side apply
let params = PatchParams::apply("myapp");
let result = pods.patch("my-pod", ¶ms, &Patch::Apply(&patch)).await?;
// List pods in the configured namespace
for p in pods.list(&ListParams::default()).await? {
println!("found pod {}", p.name_any());
}
Ok(())
}
For more details, see:
Client
for the extensible Kubernetes clientConfig
for the Kubernetes config abstractionApi
for the generic api methods available on Kubernetes resources- k8s-openapi for how to create typed kubernetes objects directly
Re-exports§
pub use kube_core as core;
Modules§
- api
client
API helpers for structured interaction with the Kubernetes API - client
client
API client for interacting with the Kubernetes API - config
config
Kubernetes configuration objects. - discovery
client
High-level utilities for runtime API discovery. - error
config
orclient
Error handling and error types
Structs§
- Api
client
The generic Api abstraction - Client
client
Client for connecting with a Kubernetes cluster. - Config
config
Configuration object for accessing a Kuernetes cluster - Discovery
client
A caching client for running API discovery against the Kubernetes API.
Enums§
Traits§
- Extension trait that is implemented by kube-derive
- An accessor trait for a kubernetes Resource.
- Helper methods for resources.
Type Aliases§
- Result
config
orclient
Convient alias forResult<T, Error>