#!/usr/bin/env herodo
//! 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("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! ===");
