Skip to main content

kubernetes_discovery/
kubernetes_discovery.rs

1use rust_zero_core::{KubernetesDiscovery, KubernetesDiscoveryConfig};
2use std::env;
3
4#[tokio::main(flavor = "current_thread")]
5async fn main() -> Result<(), Box<dyn std::error::Error>> {
6    let namespace = env::var("KUBERNETES_NAMESPACE").unwrap_or_else(|_| "default".to_owned());
7    let service = env::var("KUBERNETES_SERVICE").unwrap_or_else(|_| "users".to_owned());
8    let port = env::var("KUBERNETES_PORT_NAME").unwrap_or_else(|_| "grpc".to_owned());
9    let discovery =
10        KubernetesDiscovery::infer(KubernetesDiscoveryConfig::new(namespace).with_port_name(port))
11            .await?;
12    let mut subscription = discovery.subscribe(service).await?;
13
14    println!("ready endpoints: {:?}", subscription.endpoints());
15    loop {
16        println!("updated endpoints: {:?}", subscription.changed().await?);
17    }
18}