8 个重大版本
| 0.9.0 | 2024年5月26日 | 
|---|---|
| 0.7.0 | 2023年11月24日 | 
| 0.4.0 | 2023年3月23日 | 
| 0.3.0 | 2022年12月28日 | 
| 0.2.0 | 2022年9月1日 | 
#6 in #destination
每月下载量32次
4MB
 60K  SLoC
istio-api-rs
Istio 中使用的 CRDs 集合,由 kopium 直接从 istio CRDs 生成。
快速开始
istio-api-rs 是基于 kube-rs 的 CRDs 集合构建的,这意味着它可以在 kube_rs 下轻松使用,如下所示
use istio_api_rs::networking::v1beta1::destination_rule::*;
use istio_api_rs::networking::v1beta1::gateway::*;
use istio_api_rs::networking::v1beta1::virtual_service::*;
use kube::{
    api::ListParams,
    Api, Client,
};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
    tracing_subscriber::fmt::init();
    let client = Client::try_default().await?;
    let list_opt = ListParams::default();
    let gws: Api<Gateway> = Api::namespaced(client.clone(), "default");
    for gw in gws.list(&list_opt).await? {
        println!("Found Gateway: {}", gw.metadata.name.unwrap());
    }
    let drs: Api<DestinationRule> = Api::namespaced(client.clone(), "default");
    for dr in drs.list(&list_opt).await? {
        println!("Found Destination Rule: {}", dr.metadata.name.unwrap());
    }
    let vss: Api<VirtualService> = Api::namespaced(client.clone(), "default");
    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.90.0", features = ["runtime", "derive"] }
k8s-openapi = { version = "0.21.1", features = ["v1_29"] }
istio-api-rs = { version = "0.8.0", features = ["v1_21"] }
# ...
其他
istio-api-rs 目前从 v1.10 版本的 istio/api 开始开发和测试,较低的 API 版本不在本存储库的关注范围内。
该存储库使用 istio-api-rs-codegen 作为代码生成器,如果您想了解更多关于代码生成方式的信息,请查看该存储库。
有关发布包,请参阅 crate.io。
依赖项
~70MB
~1M SLoC