#[macro_use] extern crate log;
#[macro_use] extern crate serde_derive;
use kube::{
api::{RawApi, Reflector, Void, Object},
client::APIClient,
config,
};
#[derive(Deserialize, Serialize, Clone)]
pub struct FooSpec {
name: String,
info: String,
}
type Foo = Object<FooSpec, Void>;
fn main() -> Result<(), failure::Error> {
std::env::set_var("RUST_LOG", "info,kube=trace");
env_logger::init();
let config = config::load_kube_config().expect("failed to load kubeconfig");
let client = APIClient::new(config);
let namespace = std::env::var("NAMESPACE").unwrap_or("default".into());
let resource = RawApi::customResource("foos")
.group("clux.dev")
.within(&namespace);
let rf : Reflector<Foo> = Reflector::raw(client, resource).init()?;
loop {
rf.poll()?;
rf.read()?.into_iter().for_each(|(name, crd)| {
info!("foo {}: {}", name, crd.spec.info);
});
}
}