- Reorganized examples into osiris/, sal/, and utils/ folders - Moved hardcoded scripts to separate .rhai files - Added signature() method to JobBuilder for job signing - Updated OSIRIS context to use block_in_place instead of runtime - Removed runtime field from OsirisContext - Added typed save() methods for Note and Event objects - Updated all examples to use new structure and APIs
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
//! Redis Cluster Deployment Example (Rhai)
 | 
						|
//!
 | 
						|
//! This script shows how to deploy a Redis cluster using Rhai scripting
 | 
						|
//! with the KubernetesManager convenience methods.
 | 
						|
 | 
						|
print("=== Redis Cluster Deployment ===");
 | 
						|
 | 
						|
// Create Kubernetes manager for the cache namespace
 | 
						|
print("Creating Kubernetes manager for 'cache' namespace...");
 | 
						|
let km = kubernetes_manager_new("cache");
 | 
						|
print("✓ Kubernetes manager created");
 | 
						|
 | 
						|
// Create the namespace if it doesn't exist
 | 
						|
print("Creating namespace 'cache' if it doesn't exist...");
 | 
						|
try {
 | 
						|
    create_namespace(km, "cache");
 | 
						|
    print("✓ Namespace 'cache' created");
 | 
						|
} catch(e) {
 | 
						|
    if e.to_string().contains("already exists") {
 | 
						|
        print("✓ Namespace 'cache' already exists");
 | 
						|
    } else {
 | 
						|
        print("⚠️ Warning: " + e);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
// Clean up any existing resources first
 | 
						|
print("\nCleaning up any existing Redis resources...");
 | 
						|
try {
 | 
						|
    delete_deployment(km, "redis-cluster");
 | 
						|
    print("✓ Deleted existing deployment");
 | 
						|
} catch(e) {
 | 
						|
    print("✓ No existing deployment to delete");
 | 
						|
}
 | 
						|
 | 
						|
try {
 | 
						|
    delete_service(km, "redis-cluster");
 | 
						|
    print("✓ Deleted existing service");
 | 
						|
} catch(e) {
 | 
						|
    print("✓ No existing service to delete");
 | 
						|
}
 | 
						|
 | 
						|
// Create Redis cluster using the convenience method
 | 
						|
print("\nDeploying Redis cluster...");
 | 
						|
 | 
						|
try {
 | 
						|
    // Deploy Redis using the convenience method
 | 
						|
    let result = deploy_application(km, "redis-cluster", "redis:7-alpine", 3, 6379, #{
 | 
						|
        "app": "redis-cluster",
 | 
						|
        "type": "cache",
 | 
						|
        "engine": "redis"
 | 
						|
    }, #{
 | 
						|
        "REDIS_PASSWORD": "redispassword",
 | 
						|
        "REDIS_PORT": "6379",
 | 
						|
        "REDIS_DATABASES": "16",
 | 
						|
        "REDIS_MAXMEMORY": "256mb",
 | 
						|
        "REDIS_MAXMEMORY_POLICY": "allkeys-lru"
 | 
						|
    });
 | 
						|
    print("✓ " + result);
 | 
						|
 | 
						|
    print("\n✅ Redis cluster deployed successfully!");
 | 
						|
 | 
						|
    print("\n📋 Connection Information:");
 | 
						|
    print("  Host: redis-cluster.cache.svc.cluster.local");
 | 
						|
    print("  Port: 6379");
 | 
						|
 | 
						|
    print("\n🔧 To connect from another pod:");
 | 
						|
    print("  redis-cli -h redis-cluster.cache.svc.cluster.local");
 | 
						|
 | 
						|
    print("\n💡 Next steps:");
 | 
						|
    print("  • Configure Redis authentication");
 | 
						|
    print("  • Set up Redis clustering configuration");
 | 
						|
    print("  • Add persistent storage");
 | 
						|
    print("  • Configure memory policies");
 | 
						|
 | 
						|
} catch(e) {
 | 
						|
    print("❌ Failed to deploy Redis cluster: " + e);
 | 
						|
}
 | 
						|
 | 
						|
print("\n=== Deployment Complete ===");
 |