Keyboard shortcuts

Press ← or β†’ to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Provisioning Logo

Provisioning

Provisioning Platform Documentation

Last Updated: 2025-10-06

Welcome to the comprehensive documentation for the Provisioning Platform - a modern, cloud-native infrastructure automation system built with Nushell, KCL, and Rust.


Quick Navigation

πŸš€ Getting Started

DocumentDescriptionAudience
Installation GuideInstall and configure the systemNew Users
Getting StartedFirst steps and basic conceptsNew Users
Quick ReferenceCommand cheat sheetAll Users
From Scratch GuideComplete deployment walkthroughNew Users

πŸ“š User Guides

DocumentDescription
CLI ReferenceComplete command reference
Workspace ManagementWorkspace creation and management
Workspace SwitchingSwitch between workspaces
Infrastructure ManagementServer, taskserv, cluster operations
Mode SystemSolo, Multi-user, CI/CD, Enterprise modes
Service ManagementPlatform service lifecycle management
OCI RegistryOCI artifact management
Gitea IntegrationGit workflow and collaboration
CoreDNS GuideDNS management
Test EnvironmentsContainerized testing
Extension DevelopmentCreate custom extensions

πŸ—οΈ Architecture

DocumentDescription
System OverviewHigh-level architecture
Multi-Repo ArchitectureRepository structure and OCI distribution
Design PrinciplesArchitectural philosophy
Integration PatternsSystem integration patterns
KCL Import PatternsKCL module organization
Orchestrator ModelHybrid orchestration architecture

πŸ“‹ Architecture Decision Records (ADRs)

ADRTitleStatus
ADR-001Project Structure DecisionAccepted
ADR-002Distribution StrategyAccepted
ADR-003Workspace IsolationAccepted
ADR-004Hybrid ArchitectureAccepted
ADR-005Extension FrameworkAccepted
ADR-006CLI RefactoringAccepted

πŸ”Œ API Documentation

DocumentDescription
REST APIHTTP API endpoints
WebSocket APIReal-time event streams
Extensions APIExtension integration APIs
SDKsClient libraries
Integration ExamplesAPI usage examples

πŸ› οΈ Development

DocumentDescription
Development READMEDeveloper overview
Implementation GuideImplementation details
KCL Module SystemKCL organization
KCL Quick ReferenceKCL syntax and patterns
Provider DevelopmentCreate cloud providers
Taskserv DevelopmentCreate task services
Extension FrameworkExtension system
Command HandlersCLI command development

πŸ› Troubleshooting

DocumentDescription
Troubleshooting GuideCommon issues and solutions
CTRL-C HandlingSignal and sudo handling

πŸ“– How-To Guides

DocumentDescription
From ScratchComplete deployment from zero
Update InfrastructureSafe update procedures
Customize InfrastructureLayer and template customization

πŸ” Configuration

DocumentDescription
Configuration GuideConfiguration system overview
Workspace Config ArchitectureConfiguration architecture
Target-Based ConfigConfiguration targeting

πŸ“¦ Quick References

DocumentDescription
Quickstart CheatsheetCommand shortcuts
OCI Quick ReferenceOCI operations
Mode System Quick ReferenceMode commands
CoreDNS Quick ReferenceDNS commands
Service Management Quick ReferenceService commands

Documentation Structure

docs/
β”œβ”€β”€ README.md (this file)          # Documentation hub
β”œβ”€β”€ architecture/                  # System architecture
β”‚   β”œβ”€β”€ ADR/                       # Architecture Decision Records
β”‚   β”œβ”€β”€ design-principles.md
β”‚   β”œβ”€β”€ integration-patterns.md
β”‚   └── system-overview.md
β”œβ”€β”€ user/                          # User guides
β”‚   β”œβ”€β”€ getting-started.md
β”‚   β”œβ”€β”€ cli-reference.md
β”‚   β”œβ”€β”€ installation-guide.md
β”‚   └── troubleshooting-guide.md
β”œβ”€β”€ api/                           # API documentation
β”‚   β”œβ”€β”€ rest-api.md
β”‚   β”œβ”€β”€ websocket.md
β”‚   └── extensions.md
β”œβ”€β”€ development/                   # Developer guides
β”‚   β”œβ”€β”€ README.md
β”‚   β”œβ”€β”€ implementation-guide.md
β”‚   └── kcl/                       # KCL documentation
β”œβ”€β”€ guides/                        # How-to guides
β”‚   β”œβ”€β”€ from-scratch.md
β”‚   β”œβ”€β”€ update-infrastructure.md
β”‚   └── customize-infrastructure.md
β”œβ”€β”€ configuration/                 # Configuration docs
β”‚   └── workspace-config-architecture.md
β”œβ”€β”€ troubleshooting/               # Troubleshooting
β”‚   └── CTRL-C_SUDO_HANDLING.md
└── quick-reference/               # Quick refs
    └── SUDO_PASSWORD_HANDLING.md

Key Concepts

Infrastructure as Code (IaC)

The provisioning platform uses declarative configuration to manage infrastructure. Instead of manually creating resources, you define what you want in KCL configuration files, and the system makes it happen.

Mode-Based Architecture

The system supports four operational modes:

  • Solo: Single developer local development
  • Multi-user: Team collaboration with shared services
  • CI/CD: Automated pipeline execution
  • Enterprise: Production deployment with strict compliance

Extension System

Extensibility through:

  • Providers: Cloud platform integrations (AWS, UpCloud, Local)
  • Task Services: Infrastructure components (Kubernetes, databases, etc.)
  • Clusters: Complete deployment configurations

OCI-Native Distribution

Extensions and packages distributed as OCI artifacts, enabling:

  • Industry-standard packaging
  • Efficient caching and bandwidth
  • Version pinning and rollback
  • Air-gapped deployments

Documentation by Role

For New Users

  1. Start with Installation Guide
  2. Read Getting Started
  3. Follow From Scratch Guide
  4. Reference Quickstart Cheatsheet

For Developers

  1. Review System Overview
  2. Study Design Principles
  3. Read relevant ADRs
  4. Follow Development Guide
  5. Reference KCL Quick Reference

For Operators

  1. Understand Mode System
  2. Learn Service Management
  3. Review Infrastructure Management
  4. Study OCI Registry

For Architects

  1. Read System Overview
  2. Study all ADRs
  3. Review Integration Patterns
  4. Understand Multi-Repo Architecture

System Capabilities

βœ… Infrastructure Automation

  • Multi-cloud support (AWS, UpCloud, Local)
  • Declarative configuration with KCL
  • Automated dependency resolution
  • Batch operations with rollback

βœ… Workflow Orchestration

  • Hybrid Rust/Nushell orchestration
  • Checkpoint-based recovery
  • Parallel execution with limits
  • Real-time monitoring

βœ… Test Environments

  • Containerized testing
  • Multi-node cluster simulation
  • Topology templates
  • Automated cleanup

βœ… Mode-Based Operation

  • Solo: Local development
  • Multi-user: Team collaboration
  • CI/CD: Automated pipelines
  • Enterprise: Production deployment

βœ… Extension Management

  • OCI-native distribution
  • Automatic dependency resolution
  • Version management
  • Local and remote sources

Key Achievements

πŸš€ Batch Workflow System (v3.1.0)

  • Provider-agnostic batch operations
  • Mixed provider support (UpCloud + AWS + local)
  • Dependency resolution with soft/hard dependencies
  • Real-time monitoring and rollback

πŸ—οΈ Hybrid Orchestrator (v3.0.0)

  • Solves Nushell deep call stack limitations
  • Preserves all business logic
  • REST API for external integration
  • Checkpoint-based state management

βš™οΈ Configuration System (v2.0.0)

  • Migrated from ENV to config-driven
  • Hierarchical configuration loading
  • Variable interpolation
  • True IaC without hardcoded fallbacks

🎯 Modular CLI (v3.2.0)

  • 84% reduction in main file size
  • Domain-driven handlers
  • 80+ shortcuts
  • Bi-directional help system

πŸ§ͺ Test Environment Service (v3.4.0)

  • Automated containerized testing
  • Multi-node cluster topologies
  • CI/CD integration ready
  • Template-based configurations

πŸ”„ Workspace Switching (v2.0.5)

  • Centralized workspace management
  • Single-command workspace switching
  • Active workspace tracking
  • User preference system

Technology Stack

ComponentTechnologyPurpose
Core CLINushell 0.107.1Shell and scripting
ConfigurationKCL 0.11.2Type-safe IaC
OrchestratorRustHigh-performance coordination
TemplatesJinja2 (nu_plugin_tera)Code generation
SecretsSOPS 3.10.2 + Age 1.2.1Encryption
DistributionOCI (skopeo/crane/oras)Artifact management

Support

Getting Help

  • Documentation: You’re reading it!
  • Quick Reference: Run provisioning sc or provisioning guide quickstart
  • Help System: Run provisioning help or provisioning <command> help
  • Interactive Shell: Run provisioning nu for Nushell REPL

Reporting Issues

  • Check Troubleshooting Guide
  • Review FAQ
  • Enable debug mode: provisioning --debug <command>
  • Check logs: provisioning platform logs <service>

Contributing

This project welcomes contributions! See Development Guide for:

  • Development setup
  • Code style guidelines
  • Testing requirements
  • Pull request process

License

[Add license information]


Version History

VersionDateMajor Changes
3.5.02025-10-06Mode system, OCI registry, comprehensive documentation
3.4.02025-10-06Test environment service
3.3.02025-09-30Interactive guides system
3.2.02025-09-30Modular CLI refactoring
3.1.02025-09-25Batch workflow system
3.0.02025-09-25Hybrid orchestrator architecture
2.0.52025-10-02Workspace switching system
2.0.02025-09-23Configuration system migration

Maintained By: Provisioning Team Last Review: 2025-10-06 Next Review: 2026-01-06