kubex
Overview
kubex is a Rust library that provides utilities for Kubernetes. It complements
kube and k8s-openapi
crates, making it easier to detect contexts and explore API resources.
Installation
Add the following dependency to your Cargo.toml.
[dependencies]
kubex = "0.3.0"
Example
An example that combines DiscoverClient with the helper functions for namespaces and kube contexts.
cargo run --example main
use kubex::{determine_context, determine_namespace, discover::DiscoverClient};
use kube::Client;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let context = determine_context(&None)?;
println!("context={context}");
let namespace = determine_namespace(None, &context);
println!("namespace={namespace}");
let client = Client::try_default().await?;
let discover = DiscoverClient::new(client);
let resources = discover.list_api_resources().await?;
for resource in resources {
println!("{} {}", resource.group.as_deref().unwrap_or("").trim(), resource.name);
}
Ok(())
}
License
This project is released under the MIT License.