istio-api-rs 0.4.0

A collection of CRDs for api used in Istio. failed to build istio-api-rs-0.4.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure builds.
If you believe this is' fault, open an issue.


A collection of CRDs used in Istio, generated by openapi-generator from istio/api.

Quick Start

istio-api-rs is built on top of kube-rs as a set of CRDs, which means it can be easily used under kube_rs like below:

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::{Api, ListParams, ResourceExt},
    config::{KubeConfigOptions, Kubeconfig},
    Client, Config,
use tower::ServiceBuilder;

async fn main() -> anyhow::Result<()> {
    let kube_config_file = std::fs::File::open("./your/kube/config.yaml")?;
    let kube_config: Kubeconfig = serde_yaml::from_reader(kube_config_file)?;
    let kube_config_opt = KubeConfigOptions::default();
    let kube_config = Config::from_custom_kubeconfig(kube_config, &kube_config_opt).await?;
    let https = kube_config.openssl_https_connector()?;


    let service = ServiceBuilder::new()
    let client = Client::new(service, kube_config.default_namespace);
    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: {}",;

    let drs: Api<DestinationRule> = Api::namespaced(client.clone(), "my-ns");
    for dr in drs.list(&list_opt).await? {
        println!("Found Destination Rule: {}",;

    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);


And in cargo.toml, you should specify the API version for both k8s & istio like:

# ...
kube = { version = "0.74", features = ["runtime", "derive"] }
k8s-openapi = { version = "0.15", features = ["v1_18"] }
istio-api-rs = { version = "0.1.0", features = ["v1_11"] }
# ...


istio-api-rs is currently developed and tested on istio/api since v1.10, the lower api version is out of this repository's concern.

The repository is using istio-api-rs-codegen as code generator, go check that repository if you want to know more about how the codes are generated.

For release package, see