1 个不稳定版本
0.0.1 | 2018年9月5日 |
---|
#19 在 #namespace
40KB
850 行
正在进行中
该项目可能从 kubernetes
分支,也可能不是。
Rust 的 Kubernetes API 客户端库
状态
实验性。
- 实现了获取、设置、列出和监视功能,使用 tokio futures/streams。
- 客户端默认遵循
~/.kube/config
(或$KUBECONFIG
),如 golang 客户端。支持 TLS。客户端证书是目前唯一支持的客户认证方法。 - API 对象目前是手动定义的,并且不完整。可以通过 traits 定义额外的第三方对象类型。
- API 资源在 Rust 中尚未表示。
- API 错误处理非常简单。
列出 kube-system
命名空间中所有 pod 的示例。结果以流的形式呈现,每页限制为 20 个结果。
extern crate kubernetes;
extern crate tokio_core;
use std::default::Default;
use tokio_core::reactor::Core;
use kubernetes::api;
use kubernetes::client::{Client,ListOptions};
use kubernetes::api::core::v1::{Pod,PodList};
fn main() {
let mut core = Core::new().unwrap();
let client = Client::new(2, &core.handle()).unwrap();
let pods = api::core::v1::GROUP_VERSION.with_resource("pods");
let namespace = Some("kube-system");
let opts = ListOptions{ limit: 20, ..Default::default() };
let work = client.iter::<PodList,Pod>(&pods, namespace, opts)
.for_each(|pod| {
println!("pod is {}", pod.metadata.name.unwrap_or_default());
Ok(())
});
core.run(work).unwrap()
}
依赖关系
~67MB
~1M SLoC