provisioning/docs/src/operations/orchestrator-system.md

97 lines
3.1 KiB
Markdown
Raw Normal View History

2026-01-14 04:53:21 +00:00
# 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
2026-01-14 04:53:58 +00:00
```bash
2026-01-14 04:53:21 +00:00
# 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
2026-01-14 04:53:58 +00:00
```bash
2026-01-14 04:53:21 +00:00
# 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
2026-01-14 04:53:58 +00:00
```bash
2026-01-14 04:53:21 +00:00
# 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
2026-01-14 04:53:58 +00:00
```bash
2026-01-14 04:53:21 +00:00
# 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
2026-01-14 04:53:58 +00:00
```bash
2026-01-14 04:53:21 +00:00
# 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`
2026-01-14 04:59:11 +00:00
- **Cluster Workflow**: `POST http://localhost:9090/v1/workflows/cluster/create`