- Add Kubernetes cluster management and operations - Include pod, service, and deployment management - Implement pattern-based resource deletion - Support namespace creation and management - Provide Rhai scripting wrappers for all functions - Include production safety features (timeouts, retries, rate limiting)
73 lines
2.2 KiB
Plaintext
73 lines
2.2 KiB
Plaintext
//! Basic Kubernetes operations example
|
|
//!
|
|
//! This script demonstrates basic Kubernetes operations using the SAL Kubernetes module.
|
|
//!
|
|
//! Prerequisites:
|
|
//! - A running Kubernetes cluster
|
|
//! - Valid kubeconfig file or in-cluster configuration
|
|
//! - Appropriate permissions for the operations
|
|
//!
|
|
//! Usage:
|
|
//! herodo examples/kubernetes/basic_operations.rhai
|
|
|
|
print("=== SAL Kubernetes Basic Operations Example ===");
|
|
|
|
// Create a KubernetesManager for the default namespace
|
|
print("Creating KubernetesManager for 'default' namespace...");
|
|
let km = kubernetes_manager_new("default");
|
|
print("✓ KubernetesManager created for namespace: " + namespace(km));
|
|
|
|
// List all pods in the namespace
|
|
print("\n--- Listing Pods ---");
|
|
let pods = pods_list(km);
|
|
print("Found " + pods.len() + " pods in the namespace:");
|
|
for pod in pods {
|
|
print(" - " + pod);
|
|
}
|
|
|
|
// List all services in the namespace
|
|
print("\n--- Listing Services ---");
|
|
let services = services_list(km);
|
|
print("Found " + services.len() + " services in the namespace:");
|
|
for service in services {
|
|
print(" - " + service);
|
|
}
|
|
|
|
// List all deployments in the namespace
|
|
print("\n--- Listing Deployments ---");
|
|
let deployments = deployments_list(km);
|
|
print("Found " + deployments.len() + " deployments in the namespace:");
|
|
for deployment in deployments {
|
|
print(" - " + deployment);
|
|
}
|
|
|
|
// Get resource counts
|
|
print("\n--- Resource Counts ---");
|
|
let counts = resource_counts(km);
|
|
print("Resource counts in namespace '" + namespace(km) + "':");
|
|
for resource_type in counts.keys() {
|
|
print(" " + resource_type + ": " + counts[resource_type]);
|
|
}
|
|
|
|
// List all namespaces (cluster-wide operation)
|
|
print("\n--- Listing All Namespaces ---");
|
|
let namespaces = namespaces_list(km);
|
|
print("Found " + namespaces.len() + " namespaces in the cluster:");
|
|
for ns in namespaces {
|
|
print(" - " + ns);
|
|
}
|
|
|
|
// Check if specific namespaces exist
|
|
print("\n--- Checking Namespace Existence ---");
|
|
let test_namespaces = ["default", "kube-system", "non-existent-namespace"];
|
|
for ns in test_namespaces {
|
|
let exists = namespace_exists(km, ns);
|
|
if exists {
|
|
print("✓ Namespace '" + ns + "' exists");
|
|
} else {
|
|
print("✗ Namespace '" + ns + "' does not exist");
|
|
}
|
|
}
|
|
|
|
print("\n=== Example completed successfully! ===");
|