1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//! Networking module for Kubernetes networking configurations.
//!
//! This module provides builders and utilities for creating Kubernetes networking resources
//! including Services, Ingress, and DNS utilities for service discovery.
//!
//! # Examples
//!
//! ## Creating a Service
//!
//! ```no_run
//! use k8s_maestro::{ServiceBuilder, ServiceType};
//! use std::collections::BTreeMap;
//!
//! let mut selector = BTreeMap::new();
//! selector.insert("app".to_string(), "myapp".to_string());
//!
//! let service = ServiceBuilder::new()
//! .with_name("my-service")
//! .with_namespace("default")
//! .with_port(80, 8080, "TCP")
//! .with_selector(selector)
//! .with_type(ServiceType::ClusterIP)
//! .build()
//! .unwrap();
//! ```
//!
//! ## Creating an Ingress
//!
//! ```no_run
//! use k8s_maestro::IngressBuilder;
//!
//! let ingress = IngressBuilder::new()
//! .with_name("my-ingress")
//! .with_namespace("default")
//! .with_host("example.com")
//! .with_path("/", "my-service", 80)
//! .with_tls_secret("tls-secret")
//! .build()
//! .unwrap();
//! ```
//!
//! ## Using DNS Utilities
//!
//! ```
//! use k8s_maestro::{service_dns_name, pod_dns_name, headless_service_dns_pattern};
//!
//! let service_dns = service_dns_name("my-service", "default");
//! assert_eq!(service_dns, "my-service.default.svc.cluster.local");
//!
//! let pod_dns = pod_dns_name("my-pod", "default");
//! assert_eq!(pod_dns, "my-pod.default.pod.cluster.local");
//!
//! let headless_dns = headless_service_dns_pattern("stateful-set", "default");
//! assert_eq!(headless_dns, "*.stateful-set.default.svc.cluster.local");
//! ```
pub use ;
pub use ;
pub use ;
pub use ;