provisioning/docs/src/operations/orchestrator-system.md
2026-01-14 04:53:58 +00:00

3.1 KiB

Hybrid Orchestrator Architecture (v3.0.0)

🚀 Orchestrator Implementation Completed (2025-09-25)

A production-ready hybrid Rust/Nushell orchestrator has been implemented to solve deep call stack limitations while preserving all Nushell business logic.

Architecture Overview

  • Rust Orchestrator: High-performance coordination layer with REST API
  • Nushell Business Logic: All existing scripts preserved and enhanced
  • File-based Persistence: Reliable task queue using lightweight file storage
  • Priority Processing: Intelligent task scheduling with retry logic
  • Deep Call Stack Solution: Eliminates template.nu:71 "Type not supported" errors

Orchestrator Management

# Start orchestrator in background
cd provisioning/platform/orchestrator
./scripts/start-orchestrator.nu --background --provisioning-path "/usr/local/bin/provisioning"

# Check orchestrator status
./scripts/start-orchestrator.nu --check

# Stop orchestrator
./scripts/start-orchestrator.nu --stop

# View logs
tail -f ./data/orchestrator.log

Workflow System

The orchestrator provides comprehensive workflow management:

Server Workflows

# Submit server creation workflow
nu -c "use core/nulib/workflows/server_create.nu *; server_create_workflow 'wuji' '' [] --check"

# Traditional orchestrated server creation
provisioning servers create --orchestrated --check

Taskserv Workflows

# Create taskserv workflow
nu -c "use core/nulib/workflows/taskserv.nu *; taskserv create 'kubernetes' 'wuji' --check"

# Other taskserv operations
nu -c "use core/nulib/workflows/taskserv.nu *; taskserv delete 'kubernetes' 'wuji' --check"
nu -c "use core/nulib/workflows/taskserv.nu *; taskserv generate 'kubernetes' 'wuji'"
nu -c "use core/nulib/workflows/taskserv.nu *; taskserv check-updates"

Cluster Workflows

# Create cluster workflow
nu -c "use core/nulib/workflows/cluster.nu *; cluster create 'buildkit' 'wuji' --check"

# Delete cluster workflow
nu -c "use core/nulib/workflows/cluster.nu *; cluster delete 'buildkit' 'wuji' --check"

Workflow Management

# List all workflows
nu -c "use core/nulib/workflows/management.nu *; workflow list"

# Get workflow statistics
nu -c "use core/nulib/workflows/management.nu *; workflow stats"

# Monitor workflow in real-time
nu -c "use core/nulib/workflows/management.nu *; workflow monitor <task_id>"

# Check orchestrator health
nu -c "use core/nulib/workflows/management.nu *; workflow orchestrator"

# Get specific workflow status
nu -c "use core/nulib/workflows/management.nu *; workflow status <task_id>"

REST API Endpoints

The orchestrator exposes HTTP endpoints for external integration:

  • Health: GET http://localhost:9090/v1/health
  • List Tasks: GET http://localhost:9090/v1/tasks
  • Task Status: GET http://localhost:9090/v1/tasks/{id}
  • Server Workflow: POST http://localhost:9090/v1/workflows/servers/create
  • Taskserv Workflow: POST http://localhost:9090/v1/workflows/taskserv/create
  • Cluster Workflow: POST http://localhost:9090/v1/workflows/cluster/create