4 个版本
0.1.3 | 2023 年 7 月 24 日 |
---|---|
0.1.2 | 2023 年 7 月 21 日 |
0.1.1 | 2023 年 7 月 21 日 |
0.1.0 | 2023 年 7 月 21 日 |
#3 在 #crd
115KB
2K SLoC
istio-sdk-rs
Istio 中使用的 CRDs 集合,由 kopium
从 istio CRDs
直接生成。
快速入门
istio-sdk-rs
基于 kube-rs
构建,作为一组 CRDs,这意味着它可以在 kube_rs
下轻松使用,如下所示
use istio_sdk::networking::v1beta1::destination_rule::*;
use istio_sdk::networking::v1beta1::gateway::*;
use istio_sdk::networking::v1beta1::virtual_service::*;
use kube::{
api::{Api, ListParams},
ResourceExt,
};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = kube::Client::try_default().await?;
tracing_subscriber::fmt::init();
let list_opt = ListParams::default();
let gws: Api<Gateway> = Api::namespaced(client.clone(), "my-ns");
for gw in gws.list(&list_opt).await? {
println!("Found Gateway: {}", gw.name_any());
}
let drs: Api<DestinationRule> = Api::namespaced(client.clone(), "my-ns");
for dr in drs.list(&list_opt).await? {
println!("Found Destination Rule: {}", dr.name_any());
}
let vss: Api<VirtualService> = Api::namespaced(client.clone(), "my-ns");
for vs in vss.list(&list_opt).await? {
let content = serde_yaml::to_string(&vs).unwrap();
println!("Found Virtual Service with YAML content: {}", content);
}
Ok(())
}
在 cargo.toml
中,您应指定 k8s
和 istio
的 API 版本,如下所示
[dependencies]
# ...
kube = { version = "0.84", features = ["runtime", "derive"] }
k8s-openapi = { version = "0.18", features = ["v1_18"] }
istio-sdk = { version = "0.1.0", features = ["v1_18"] }
# ...
其他
istio-sdk-rs
目前从 v1.10 开始开发和测试 istio/api,较低的 API 版本不在本存储库的考虑范围内。
有关发布包,请参阅 crate.io。
依赖项
~52MB
~761K SLoC