Provisioning Platform Documentation
Last Updated: 2025-01-02 (Phase 3.A Cleanup Complete) Status: β Primary documentation source (145 files consolidated)
Welcome to the comprehensive documentation for the Provisioning Platform - a modern, cloud-native infrastructure automation system built with Nushell, KCL, and Rust.
Note: Architecture Decision Records (ADRs) and high-level design documentation are in
docs/directory. This location contains all user-facing, operational, and product documentation.
Quick Navigation
π Getting Started
| Document | Description | Audience |
|---|---|---|
| Installation Guide | Install and configure the system | New Users |
| Getting Started | First steps and basic concepts | New Users |
| Quick Reference | Command cheat sheet | All Users |
| From Scratch Guide | Complete deployment walkthrough | New Users |
π User Guides
| Document | Description |
|---|---|
| CLI Reference | Complete command reference |
| Workspace Management | Workspace creation and management |
| Workspace Switching | Switch between workspaces |
| Infrastructure Management | Server, taskserv, cluster operations |
| Service Management | Platform service lifecycle management |
| OCI Registry | OCI artifact management |
| Gitea Integration | Git workflow and collaboration |
| CoreDNS Guide | DNS management |
| Test Environments | Containerized testing |
| Extension Development | Create custom extensions |
ποΈ Architecture
| Document | Description |
|---|---|
| System Overview | High-level architecture |
| Multi-Repo Architecture | Repository structure and OCI distribution |
| Design Principles | Architectural philosophy |
| Integration Patterns | System integration patterns |
| Orchestrator Model | Hybrid orchestration architecture |
π Architecture Decision Records (ADRs)
| ADR | Title | Status |
|---|---|---|
| ADR-001 | Project Structure Decision | Accepted |
| ADR-002 | Distribution Strategy | Accepted |
| ADR-003 | Workspace Isolation | Accepted |
| ADR-004 | Hybrid Architecture | Accepted |
| ADR-005 | Extension Framework | Accepted |
| ADR-006 | CLI Refactoring | Accepted |
π API Documentation
| Document | Description |
|---|---|
| REST API | HTTP API endpoints |
| WebSocket API | Real-time event streams |
| Extensions API | Extension integration APIs |
| SDKs | Client libraries |
| Integration Examples | API usage examples |
π οΈ Development
| Document | Description |
|---|---|
| Development README | Developer overview |
| Implementation Guide | Implementation details |
| Provider Development | Create cloud providers |
| Taskserv Development | Create task services |
| Extension Framework | Extension system |
| Command Handlers | CLI command development |
π Troubleshooting
| Document | Description |
|---|---|
| Troubleshooting Guide | Common issues and solutions |
π How-To Guides
| Document | Description |
|---|---|
| From Scratch | Complete deployment from zero |
| Update Infrastructure | Safe update procedures |
| Customize Infrastructure | Layer and template customization |
π Configuration
| Document | Description |
|---|---|
| Workspace Config Architecture | Configuration architecture |
π¦ Quick References
| Document | Description |
|---|---|
| Quickstart Cheatsheet | Command shortcuts |
| OCI Quick Reference | OCI operations |
Documentation Structure
provisioning/docs/src/
βββ README.md (this file) # Documentation hub
βββ getting-started/ # Getting started guides
β βββ installation-guide.md
β βββ getting-started.md
β βββ quickstart-cheatsheet.md
βββ architecture/ # System architecture
β βββ adr/ # Architecture Decision Records
β βββ design-principles.md
β βββ integration-patterns.md
β βββ system-overview.md
β βββ ... (and 10+ more architecture docs)
βββ infrastructure/ # Infrastructure guides
β βββ cli-reference.md
β βββ workspace-setup.md
β βββ workspace-switching-guide.md
β βββ infrastructure-management.md
βββ api-reference/ # API documentation
β βββ rest-api.md
β βββ websocket.md
β βββ integration-examples.md
β βββ sdks.md
βββ development/ # Developer guides
β βββ README.md
β βββ implementation-guide.md
β βββ quick-provider-guide.md
β βββ taskserv-developer-guide.md
β βββ ... (15+ more developer docs)
βββ guides/ # How-to guides
β βββ from-scratch.md
β βββ update-infrastructure.md
β βββ customize-infrastructure.md
βββ operations/ # Operations guides
β βββ service-management-guide.md
β βββ coredns-guide.md
β βββ ... (more operations docs)
βββ security/ # Security docs
βββ integration/ # Integration guides
βββ testing/ # Testing docs
βββ configuration/ # Configuration docs
βββ troubleshooting/ # Troubleshooting guides
βββ quick-reference/ # Quick references
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 Nickel 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
- Start with Installation Guide
- Read Getting Started
- Follow From Scratch Guide
- Reference Quickstart Cheatsheet
For Developers
- Review System Overview
- Study Design Principles
- Read relevant ADRs
- Follow Development Guide
- Reference KCL Quick Reference
For Operators
- Understand Mode System
- Learn Service Management
- Review Infrastructure Management
- Study OCI Registry
For Architects
- Read System Overview
- Study all ADRs
- Review Integration Patterns
- 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
| Component | Technology | Purpose |
|---|---|---|
| Core CLI | Nushell 0.107.1 | Shell and scripting |
| Configuration | KCL 0.11.2 | Type-safe IaC |
| Orchestrator | Rust | High-performance coordination |
| Templates | Jinja2 (nu_plugin_tera) | Code generation |
| Secrets | SOPS 3.10.2 + Age 1.2.1 | Encryption |
| Distribution | OCI (skopeo/crane/oras) | Artifact management |
Support
Getting Help
- Documentation: Youβre reading it!
- Quick Reference: Run
provisioning scorprovisioning guide quickstart - Help System: Run
provisioning helporprovisioning <command> help - Interactive Shell: Run
provisioning nufor 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
| Version | Date | Major Changes |
|---|---|---|
| 3.5.0 | 2025-10-06 | Mode system, OCI registry, comprehensive documentation |
| 3.4.0 | 2025-10-06 | Test environment service |
| 3.3.0 | 2025-09-30 | Interactive guides system |
| 3.2.0 | 2025-09-30 | Modular CLI refactoring |
| 3.1.0 | 2025-09-25 | Batch workflow system |
| 3.0.0 | 2025-09-25 | Hybrid orchestrator architecture |
| 2.0.5 | 2025-10-02 | Workspace switching system |
| 2.0.0 | 2025-09-23 | Configuration system migration |
Maintained By: Provisioning Team Last Review: 2025-10-06 Next Review: 2026-01-06