sal_kubernetes/lib.rs
1//! SAL Kubernetes: Kubernetes cluster management and operations
2//!
3//! This package provides Kubernetes cluster management functionality including:
4//! - Namespace-scoped resource management via KubernetesManager
5//! - Pod listing and management
6//! - Resource deletion with PCRE pattern matching
7//! - Namespace creation and management
8//! - Support for various Kubernetes resources (pods, services, deployments, etc.)
9//!
10//! # Example
11//!
12//! ```rust
13//! use sal_kubernetes::KubernetesManager;
14//!
15//! #[tokio::main]
16//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
17//! // Create a manager for the "default" namespace
18//! let km = KubernetesManager::new("default").await?;
19//!
20//! // List all pods in the namespace
21//! let pods = km.pods_list().await?;
22//! println!("Found {} pods", pods.len());
23//!
24//! // Create a namespace (idempotent)
25//! km.namespace_create("my-namespace").await?;
26//!
27//! // Delete resources matching a pattern
28//! km.delete("test-.*").await?;
29//!
30//! Ok(())
31//! }
32//! ```
33
34pub mod config;
35pub mod error;
36pub mod kubernetes_manager;
37
38// Rhai integration module
39#[cfg(feature = "rhai")]
40pub mod rhai;
41
42// Re-export main types for convenience
43pub use config::KubernetesConfig;
44pub use error::KubernetesError;
45pub use kubernetes_manager::KubernetesManager;
46
47// Re-export commonly used Kubernetes types
48pub use k8s_openapi::api::apps::v1::{Deployment, ReplicaSet};
49pub use k8s_openapi::api::core::v1::{Namespace, Pod, Service};