2025-12-11 21:50:42 +00:00
<!DOCTYPE HTML>
< html lang = "en" class = "ayu sidebar-visible" dir = "ltr" >
< head >
<!-- Book generated using mdBook -->
< meta charset = "UTF-8" >
< title > Project Structure - Provisioning Platform Documentation< / title >
<!-- Custom HTML head -->
2026-01-14 01:56:30 +00:00
< meta name = "description" content = "Complete documentation for the Provisioning Platform - Infrastructure automation with Nushell, Nickel, and Rust" >
2025-12-11 21:50:42 +00:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< meta name = "theme-color" content = "#ffffff" >
< link rel = "icon" href = "../favicon.svg" >
< link rel = "shortcut icon" href = "../favicon.png" >
< link rel = "stylesheet" href = "../css/variables.css" >
< link rel = "stylesheet" href = "../css/general.css" >
< link rel = "stylesheet" href = "../css/chrome.css" >
< link rel = "stylesheet" href = "../css/print.css" media = "print" >
<!-- Fonts -->
< link rel = "stylesheet" href = "../FontAwesome/css/font-awesome.css" >
< link rel = "stylesheet" href = "../fonts/fonts.css" >
<!-- Highlight.js Stylesheets -->
< link rel = "stylesheet" id = "highlight-css" href = "../highlight.css" >
< link rel = "stylesheet" id = "tomorrow-night-css" href = "../tomorrow-night.css" >
< link rel = "stylesheet" id = "ayu-highlight-css" href = "../ayu-highlight.css" >
<!-- Custom theme stylesheets -->
<!-- Provide site root and default themes to javascript -->
< script >
const path_to_root = "../";
const default_light_theme = "ayu";
const default_dark_theme = "navy";
< / script >
<!-- Start loading toc.js asap -->
< script src = "../toc.js" > < / script >
< / head >
< body >
< div id = "mdbook-help-container" >
< div id = "mdbook-help-popup" >
< h2 class = "mdbook-help-title" > Keyboard shortcuts< / h2 >
< div >
< p > Press < kbd > ←< / kbd > or < kbd > →< / kbd > to navigate between chapters< / p >
< p > Press < kbd > S< / kbd > or < kbd > /< / kbd > to search in the book< / p >
< p > Press < kbd > ?< / kbd > to show this help< / p >
< p > Press < kbd > Esc< / kbd > to hide this help< / p >
< / div >
< / div >
< / div >
< div id = "body-container" >
<!-- Work around some values being stored in localStorage wrapped in quotes -->
< script >
try {
let theme = localStorage.getItem('mdbook-theme');
let sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') & & theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') & & sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
< / script >
<!-- Set the theme before any content is loaded, prevents flash -->
< script >
const default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? default_dark_theme : default_light_theme;
let theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
const html = document.documentElement;
html.classList.remove('ayu')
html.classList.add(theme);
html.classList.add("js");
< / script >
< input type = "checkbox" id = "sidebar-toggle-anchor" class = "hidden" >
<!-- Hide / unhide sidebar before it is displayed -->
< script >
let sidebar = null;
const sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
html.classList.remove('sidebar-visible');
html.classList.add("sidebar-" + sidebar);
< / script >
< nav id = "sidebar" class = "sidebar" aria-label = "Table of contents" >
<!-- populated by js -->
< mdbook-sidebar-scrollbox class = "sidebar-scrollbox" > < / mdbook-sidebar-scrollbox >
< noscript >
< iframe class = "sidebar-iframe-outer" src = "../toc.html" > < / iframe >
< / noscript >
< div id = "sidebar-resize-handle" class = "sidebar-resize-handle" >
< div class = "sidebar-resize-indicator" > < / div >
< / div >
< / nav >
< div id = "page-wrapper" class = "page-wrapper" >
< div class = "page" >
< div id = "menu-bar-hover-placeholder" > < / div >
< div id = "menu-bar" class = "menu-bar sticky" >
< div class = "left-buttons" >
< label id = "sidebar-toggle" class = "icon-button" for = "sidebar-toggle-anchor" title = "Toggle Table of Contents" aria-label = "Toggle Table of Contents" aria-controls = "sidebar" >
< i class = "fa fa-bars" > < / i >
< / label >
< button id = "theme-toggle" class = "icon-button" type = "button" title = "Change theme" aria-label = "Change theme" aria-haspopup = "true" aria-expanded = "false" aria-controls = "theme-list" >
< i class = "fa fa-paint-brush" > < / i >
< / button >
< ul id = "theme-list" class = "theme-popup" aria-label = "Themes" role = "menu" >
< li role = "none" > < button role = "menuitem" class = "theme" id = "default_theme" > Auto< / button > < / li >
< li role = "none" > < button role = "menuitem" class = "theme" id = "light" > Light< / button > < / li >
< li role = "none" > < button role = "menuitem" class = "theme" id = "rust" > Rust< / button > < / li >
< li role = "none" > < button role = "menuitem" class = "theme" id = "coal" > Coal< / button > < / li >
< li role = "none" > < button role = "menuitem" class = "theme" id = "navy" > Navy< / button > < / li >
< li role = "none" > < button role = "menuitem" class = "theme" id = "ayu" > Ayu< / button > < / li >
< / ul >
< button id = "search-toggle" class = "icon-button" type = "button" title = "Search (`/`)" aria-label = "Toggle Searchbar" aria-expanded = "false" aria-keyshortcuts = "/ s" aria-controls = "searchbar" >
< i class = "fa fa-search" > < / i >
< / button >
< / div >
< h1 class = "menu-title" > Provisioning Platform Documentation< / h1 >
< div class = "right-buttons" >
< a href = "../print.html" title = "Print this book" aria-label = "Print this book" >
< i id = "print-button" class = "fa fa-print" > < / i >
< / a >
< a href = "https://github.com/provisioning/provisioning-platform" title = "Git repository" aria-label = "Git repository" >
< i id = "git-repository-button" class = "fa fa-github" > < / i >
< / a >
< a href = "https://github.com/provisioning/provisioning-platform/edit/main/provisioning/docs/src/development/project-structure.md" title = "Suggest an edit" aria-label = "Suggest an edit" >
< i id = "git-edit-button" class = "fa fa-edit" > < / i >
< / a >
< / div >
< / div >
< div id = "search-wrapper" class = "hidden" >
< form id = "searchbar-outer" class = "searchbar-outer" >
< input type = "search" id = "searchbar" name = "searchbar" placeholder = "Search this book ..." aria-controls = "searchresults-outer" aria-describedby = "searchresults-header" >
< / form >
< div id = "searchresults-outer" class = "searchresults-outer hidden" >
< div id = "searchresults-header" class = "searchresults-header" > < / div >
< ul id = "searchresults" >
< / ul >
< / div >
< / div >
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
< script >
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
< / script >
< div id = "content" class = "content" >
< main >
< h1 id = "project-structure-guide" > < a class = "header" href = "#project-structure-guide" > Project Structure Guide< / a > < / h1 >
2026-01-14 01:56:30 +00:00
< p > This document provides a comprehensive overview of the provisioning project’ s structure after the major reorganization, explaining both the new
development-focused organization and the preserved existing functionality.< / p >
2025-12-11 21:50:42 +00:00
< h2 id = "table-of-contents" > < a class = "header" href = "#table-of-contents" > Table of Contents< / a > < / h2 >
< ol >
< li > < a href = "#overview" > Overview< / a > < / li >
< li > < a href = "#new-structure-vs-legacy" > New Structure vs Legacy< / a > < / li >
< li > < a href = "#core-directories" > Core Directories< / a > < / li >
< li > < a href = "#development-workspace" > Development Workspace< / a > < / li >
< li > < a href = "#file-naming-conventions" > File Naming Conventions< / a > < / li >
< li > < a href = "#navigation-guide" > Navigation Guide< / a > < / li >
< li > < a href = "#migration-path" > Migration Path< / a > < / li >
< / ol >
< h2 id = "overview" > < a class = "header" href = "#overview" > Overview< / a > < / h2 >
< p > The provisioning project has been restructured to support a dual-organization approach:< / p >
< ul >
< li > < strong > < code > src/< / code > < / strong > : Development-focused structure with build tools, distribution system, and core components< / li >
< li > < strong > Legacy directories< / strong > : Preserved in their original locations for backward compatibility< / li >
< li > < strong > < code > workspace/< / code > < / strong > : Development workspace with tools and runtime management< / li >
< / ul >
< p > This reorganization enables efficient development workflows while maintaining full backward compatibility with existing deployments.< / p >
< h2 id = "new-structure-vs-legacy" > < a class = "header" href = "#new-structure-vs-legacy" > New Structure vs Legacy< / a > < / h2 >
< h3 id = "new-development-structure-src" > < a class = "header" href = "#new-development-structure-src" > New Development Structure (< code > /src/< / code > )< / a > < / h3 >
2026-01-08 09:55:37 +00:00
< pre > < code class = "language-plaintext" > src/
2025-12-11 21:50:42 +00:00
├── config/ # System configuration
├── control-center/ # Control center application
├── control-center-ui/ # Web UI for control center
├── core/ # Core system libraries
├── docs/ # Documentation (new)
├── extensions/ # Extension framework
├── generators/ # Code generation tools
2026-01-12 04:42:18 +00:00
├── schemas/ # Nickel configuration schemas (migrated from kcl/)
2025-12-11 21:50:42 +00:00
├── orchestrator/ # Hybrid Rust/Nushell orchestrator
├── platform/ # Platform-specific code
├── provisioning/ # Main provisioning
├── templates/ # Template files
├── tools/ # Build and development tools
└── utils/ # Utility scripts
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< h3 id = "legacy-structure-preserved" > < a class = "header" href = "#legacy-structure-preserved" > Legacy Structure (Preserved)< / a > < / h3 >
< pre > < code class = "language-plaintext" > repo-cnz/
2025-12-11 21:50:42 +00:00
├── cluster/ # Cluster configurations (preserved)
├── core/ # Core system (preserved)
├── generate/ # Generation scripts (preserved)
2026-01-12 04:42:18 +00:00
├── schemas/ # Nickel schemas (migrated from kcl/)
2025-12-11 21:50:42 +00:00
├── klab/ # Development lab (preserved)
├── nushell-plugins/ # Plugin development (preserved)
├── providers/ # Cloud providers (preserved)
├── taskservs/ # Task services (preserved)
└── templates/ # Template files (preserved)
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< h3 id = "development-workspace-workspace" > < a class = "header" href = "#development-workspace-workspace" > Development Workspace (< code > /workspace/< / code > )< / a > < / h3 >
< pre > < code class = "language-plaintext" > workspace/
2025-12-11 21:50:42 +00:00
├── config/ # Development configuration
├── extensions/ # Extension development
├── infra/ # Development infrastructure
├── lib/ # Workspace libraries
├── runtime/ # Runtime data
└── tools/ # Workspace management tools
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< h2 id = "core-directories" > < a class = "header" href = "#core-directories" > Core Directories< / a > < / h2 >
< h3 id = "srccore---core-development-libraries" > < a class = "header" href = "#srccore---core-development-libraries" > < code > /src/core/< / code > - Core Development Libraries< / a > < / h3 >
< p > < strong > Purpose< / strong > : Development-focused core libraries and entry points< / p >
< p > < strong > Key Files< / strong > :< / p >
< ul >
< li > < code > nulib/provisioning< / code > - Main CLI entry point (symlinks to legacy location)< / li >
< li > < code > nulib/lib_provisioning/< / code > - Core provisioning libraries< / li >
< li > < code > nulib/workflows/< / code > - Workflow management (orchestrator integration)< / li >
< / ul >
< p > < strong > Relationship to Legacy< / strong > : Preserves original < code > core/< / code > functionality while adding development enhancements< / p >
< h3 id = "srctools---build-and-development-tools" > < a class = "header" href = "#srctools---build-and-development-tools" > < code > /src/tools/< / code > - Build and Development Tools< / a > < / h3 >
< p > < strong > Purpose< / strong > : Complete build system for the provisioning project< / p >
< p > < strong > Key Components< / strong > :< / p >
< pre > < code class = "language-plaintext" > tools/
2025-12-11 21:50:42 +00:00
├── build/ # Build tools
│ ├── compile-platform.nu # Platform-specific compilation
│ ├── bundle-core.nu # Core library bundling
2026-01-12 04:42:18 +00:00
│ ├── validate-nickel.nu # Nickel schema validation
2025-12-11 21:50:42 +00:00
│ ├── clean-build.nu # Build cleanup
│ └── test-distribution.nu # Distribution testing
├── distribution/ # Distribution tools
│ ├── generate-distribution.nu # Main distribution generator
│ ├── prepare-platform-dist.nu # Platform-specific distribution
│ ├── prepare-core-dist.nu # Core distribution
│ ├── create-installer.nu # Installer creation
│ └── generate-docs.nu # Documentation generation
├── package/ # Packaging tools
│ ├── package-binaries.nu # Binary packaging
│ ├── build-containers.nu # Container image building
│ ├── create-tarball.nu # Archive creation
│ └── validate-package.nu # Package validation
├── release/ # Release management
│ ├── create-release.nu # Release creation
│ ├── upload-artifacts.nu # Artifact upload
│ ├── rollback-release.nu # Release rollback
│ ├── notify-users.nu # Release notifications
│ └── update-registry.nu # Package registry updates
└── Makefile # Main build system (40+ targets)
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< h3 id = "srcorchestrator---hybrid-orchestrator" > < a class = "header" href = "#srcorchestrator---hybrid-orchestrator" > < code > /src/orchestrator/< / code > - Hybrid Orchestrator< / a > < / h3 >
< p > < strong > Purpose< / strong > : Rust/Nushell hybrid orchestrator for solving deep call stack limitations< / p >
< p > < strong > Key Components< / strong > :< / p >
< ul >
< li > < code > src/< / code > - Rust orchestrator implementation< / li >
< li > < code > scripts/< / code > - Orchestrator management scripts< / li >
< li > < code > data/< / code > - File-based task queue and persistence< / li >
< / ul >
< p > < strong > Integration< / strong > : Provides REST API and workflow management while preserving all Nushell business logic< / p >
< h3 id = "srcprovisioning---enhanced-provisioning" > < a class = "header" href = "#srcprovisioning---enhanced-provisioning" > < code > /src/provisioning/< / code > - Enhanced Provisioning< / a > < / h3 >
< p > < strong > Purpose< / strong > : Enhanced version of the main provisioning with additional features< / p >
< p > < strong > Key Features< / strong > :< / p >
< ul >
< li > Batch workflow system (v3.1.0)< / li >
< li > Provider-agnostic design< / li >
< li > Configuration-driven architecture (v2.0.0)< / li >
< / ul >
< h3 id = "workspace---development-workspace" > < a class = "header" href = "#workspace---development-workspace" > < code > /workspace/< / code > - Development Workspace< / a > < / h3 >
< p > < strong > Purpose< / strong > : Complete development environment with tools and runtime management< / p >
< p > < strong > Key Components< / strong > :< / p >
< ul >
< li > < code > tools/workspace.nu< / code > - Unified workspace management interface< / li >
< li > < code > lib/path-resolver.nu< / code > - Smart path resolution system< / li >
< li > < code > config/< / code > - Environment-specific development configurations< / li >
< li > < code > extensions/< / code > - Extension development templates and examples< / li >
< li > < code > infra/< / code > - Development infrastructure examples< / li >
< li > < code > runtime/< / code > - Isolated runtime data per user< / li >
< / ul >
< h2 id = "development-workspace" > < a class = "header" href = "#development-workspace" > Development Workspace< / a > < / h2 >
< h3 id = "workspace-management" > < a class = "header" href = "#workspace-management" > Workspace Management< / a > < / h3 >
< p > The workspace provides a sophisticated development environment:< / p >
< p > < strong > Initialization< / strong > :< / p >
< pre > < code class = "language-bash" > cd workspace/tools
2025-12-11 21:50:42 +00:00
nu workspace.nu init --user-name developer --infra-name my-infra
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< p > < strong > Health Monitoring< / strong > :< / p >
< pre > < code class = "language-bash" > nu workspace.nu health --detailed --fix-issues
< / code > < / pre >
< p > < strong > Path Resolution< / strong > :< / p >
< pre > < code class = "language-nushell" > use lib/path-resolver.nu
2025-12-11 21:50:42 +00:00
let config = (path-resolver resolve_config "user" --workspace-user "john")
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< h3 id = "extension-development" > < a class = "header" href = "#extension-development" > Extension Development< / a > < / h3 >
< p > The workspace provides templates for developing:< / p >
< ul >
< li > < strong > Providers< / strong > : Custom cloud provider implementations< / li >
< li > < strong > Task Services< / strong > : Infrastructure service components< / li >
< li > < strong > Clusters< / strong > : Complete deployment solutions< / li >
< / ul >
< p > Templates are available in < code > workspace/extensions/{type}/template/< / code > < / p >
< h3 id = "configuration-hierarchy" > < a class = "header" href = "#configuration-hierarchy" > Configuration Hierarchy< / a > < / h3 >
< p > The workspace implements a sophisticated configuration cascade:< / p >
< ol >
< li > Workspace user configuration (< code > workspace/config/{user}.toml< / code > )< / li >
< li > Environment-specific defaults (< code > workspace/config/{env}-defaults.toml< / code > )< / li >
< li > Workspace defaults (< code > workspace/config/dev-defaults.toml< / code > )< / li >
< li > Core system defaults (< code > config.defaults.toml< / code > )< / li >
< / ol >
< h2 id = "file-naming-conventions" > < a class = "header" href = "#file-naming-conventions" > File Naming Conventions< / a > < / h2 >
< h3 id = "nushell-files-nu" > < a class = "header" href = "#nushell-files-nu" > Nushell Files (< code > .nu< / code > )< / a > < / h3 >
< ul >
< li > < strong > Commands< / strong > : < code > kebab-case< / code > - < code > create-server.nu< / code > , < code > validate-config.nu< / code > < / li >
< li > < strong > Modules< / strong > : < code > snake_case< / code > - < code > lib_provisioning< / code > , < code > path_resolver< / code > < / li >
< li > < strong > Scripts< / strong > : < code > kebab-case< / code > - < code > workspace-health.nu< / code > , < code > runtime-manager.nu< / code > < / li >
< / ul >
< h3 id = "configuration-files" > < a class = "header" href = "#configuration-files" > Configuration Files< / a > < / h3 >
< ul >
< li > < strong > TOML< / strong > : < code > kebab-case.toml< / code > - < code > config-defaults.toml< / code > , < code > user-settings.toml< / code > < / li >
< li > < strong > Environment< / strong > : < code > {env}-defaults.toml< / code > - < code > dev-defaults.toml< / code > , < code > prod-defaults.toml< / code > < / li >
< li > < strong > Examples< / strong > : < code > *.toml.example< / code > - < code > local-overrides.toml.example< / code > < / li >
< / ul >
< h3 id = "nickel-files-ncl" > < a class = "header" href = "#nickel-files-ncl" > Nickel Files (< code > .ncl< / code > )< / a > < / h3 >
< ul >
< li > < strong > Schemas< / strong > : < code > kebab-case.ncl< / code > - < code > server-config.ncl< / code > , < code > workflow-schema.ncl< / code > < / li >
< li > < strong > Configuration< / strong > : < code > manifest.toml< / code > - Package metadata< / li >
< li > < strong > Structure< / strong > : Organized in < code > schemas/< / code > directories per extension< / li >
< / ul >
< h3 id = "build-and-distribution" > < a class = "header" href = "#build-and-distribution" > Build and Distribution< / a > < / h3 >
< ul >
< li > < strong > Scripts< / strong > : < code > kebab-case.nu< / code > - < code > compile-platform.nu< / code > , < code > generate-distribution.nu< / code > < / li >
< li > < strong > Makefiles< / strong > : < code > Makefile< / code > - Standard naming< / li >
< li > < strong > Archives< / strong > : < code > {project}-{version}-{platform}-{variant}.{ext}< / code > < / li >
< / ul >
< h2 id = "navigation-guide" > < a class = "header" href = "#navigation-guide" > Navigation Guide< / a > < / h2 >
< h3 id = "finding-components" > < a class = "header" href = "#finding-components" > Finding Components< / a > < / h3 >
< p > < strong > Core System Entry Points< / strong > :< / p >
< pre > < code class = "language-bash" > # Main CLI (development version)
2025-12-11 21:50:42 +00:00
/src/core/nulib/provisioning
# Legacy CLI (production version)
/core/nulib/provisioning
# Workspace management
/workspace/tools/workspace.nu
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< p > < strong > Build System< / strong > :< / p >
< pre > < code class = "language-bash" > # Main build system
2025-12-11 21:50:42 +00:00
cd /src/tools & & make help
# Quick development build
make dev-build
# Complete distribution
make all
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< p > < strong > Configuration Files< / strong > :< / p >
< pre > < code class = "language-bash" > # System defaults
2025-12-11 21:50:42 +00:00
/config.defaults.toml
# User configuration (workspace)
/workspace/config/{user}.toml
# Environment-specific
/workspace/config/{env}-defaults.toml
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< p > < strong > Extension Development< / strong > :< / p >
< pre > < code class = "language-bash" > # Provider template
2025-12-11 21:50:42 +00:00
/workspace/extensions/providers/template/
# Task service template
/workspace/extensions/taskservs/template/
# Cluster template
/workspace/extensions/clusters/template/
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< h3 id = "common-workflows" > < a class = "header" href = "#common-workflows" > Common Workflows< / a > < / h3 >
< p > < strong > 1. Development Setup< / strong > :< / p >
< pre > < code class = "language-bash" > # Initialize workspace
2025-12-11 21:50:42 +00:00
cd workspace/tools
nu workspace.nu init --user-name $USER
# Check health
nu workspace.nu health --detailed
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< p > < strong > 2. Building Distribution< / strong > :< / p >
< pre > < code class = "language-bash" > # Complete build
2025-12-11 21:50:42 +00:00
cd src/tools
make all
# Platform-specific build
make linux
make macos
make windows
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< p > < strong > 3. Extension Development< / strong > :< / p >
< pre > < code class = "language-bash" > # Create new provider
2025-12-11 21:50:42 +00:00
cp -r workspace/extensions/providers/template workspace/extensions/providers/my-provider
# Test extension
nu workspace/extensions/providers/my-provider/nulib/provider.nu test
2026-01-12 04:42:18 +00:00
< / code > < / pre >
< h3 id = "legacy-compatibility" > < a class = "header" href = "#legacy-compatibility" > Legacy Compatibility< / a > < / h3 >
< p > < strong > Existing Commands Still Work< / strong > :< / p >
< pre > < code class = "language-bash" > # All existing commands preserved
2025-12-11 21:50:42 +00:00
./core/nulib/provisioning server create
./core/nulib/provisioning taskserv install kubernetes
./core/nulib/provisioning cluster create buildkit
< / code > < / pre >
2026-01-12 04:42:18 +00:00
< p > < strong > Configuration Migration< / strong > :< / p >
< ul >
< li > ENV variables still supported as fallbacks< / li >
< li > New configuration system provides better defaults< / li >
< li > Migration tools available in < code > src/tools/migration/< / code > < / li >
< / ul >
< h2 id = "migration-path" > < a class = "header" href = "#migration-path" > Migration Path< / a > < / h2 >
< h3 id = "for-users" > < a class = "header" href = "#for-users" > For Users< / a > < / h3 >
< p > < strong > No Changes Required< / strong > :< / p >
< ul >
< li > All existing commands continue to work< / li >
< li > Configuration files remain compatible< / li >
< li > Existing infrastructure deployments unaffected< / li >
< / ul >
< p > < strong > Optional Enhancements< / strong > :< / p >
< ul >
< li > Migrate to new configuration system for better defaults< / li >
< li > Use workspace for development environments< / li >
< li > Leverage new build system for custom distributions< / li >
< / ul >
< h3 id = "for-developers" > < a class = "header" href = "#for-developers" > For Developers< / a > < / h3 >
< p > < strong > Development Environment< / strong > :< / p >
< ol >
< li > Initialize development workspace: < code > nu workspace/tools/workspace.nu init< / code > < / li >
< li > Use new build system: < code > cd src/tools & & make dev-build< / code > < / li >
< li > Leverage extension templates for custom development< / li >
< / ol >
< p > < strong > Build System< / strong > :< / p >
< ol >
< li > Use new Makefile for comprehensive build management< / li >
< li > Leverage distribution tools for packaging< / li >
< li > Use release management for version control< / li >
< / ol >
< p > < strong > Orchestrator Integration< / strong > :< / p >
< ol >
< li > Start orchestrator for workflow management: < code > cd src/orchestrator & & ./scripts/start-orchestrator.nu< / code > < / li >
< li > Use workflow APIs for complex operations< / li >
< li > Leverage batch operations for efficiency< / li >
< / ol >
< h3 id = "migration-tools" > < a class = "header" href = "#migration-tools" > Migration Tools< / a > < / h3 >
< p > < strong > Available Migration Scripts< / strong > :< / p >
< ul >
< li > < code > src/tools/migration/config-migration.nu< / code > - Configuration migration< / li >
< li > < code > src/tools/migration/workspace-setup.nu< / code > - Workspace initialization< / li >
< li > < code > src/tools/migration/path-resolver.nu< / code > - Path resolution migration< / li >
< / ul >
< p > < strong > Validation Tools< / strong > :< / p >
< ul >
< li > < code > src/tools/validation/system-health.nu< / code > - System health validation< / li >
< li > < code > src/tools/validation/compatibility-check.nu< / code > - Compatibility verification< / li >
< li > < code > src/tools/validation/migration-status.nu< / code > - Migration status tracking< / li >
< / ul >
< h2 id = "architecture-benefits" > < a class = "header" href = "#architecture-benefits" > Architecture Benefits< / a > < / h2 >
< h3 id = "development-efficiency" > < a class = "header" href = "#development-efficiency" > Development Efficiency< / a > < / h3 >
< ul >
< li > < strong > Build System< / strong > : Comprehensive 40+ target Makefile system< / li >
< li > < strong > Workspace Isolation< / strong > : Per-user development environments< / li >
< li > < strong > Extension Framework< / strong > : Template-based extension development< / li >
< / ul >
< h3 id = "production-reliability" > < a class = "header" href = "#production-reliability" > Production Reliability< / a > < / h3 >
< ul >
< li > < strong > Backward Compatibility< / strong > : All existing functionality preserved< / li >
< li > < strong > Configuration Migration< / strong > : Gradual migration from ENV to config-driven< / li >
< li > < strong > Orchestrator Architecture< / strong > : Hybrid Rust/Nushell for performance and flexibility< / li >
< li > < strong > Workflow Management< / strong > : Batch operations with rollback capabilities< / li >
< / ul >
< h3 id = "maintenance-benefits" > < a class = "header" href = "#maintenance-benefits" > Maintenance Benefits< / a > < / h3 >
< ul >
< li > < strong > Clean Separation< / strong > : Development tools separate from production code< / li >
< li > < strong > Organized Structure< / strong > : Logical grouping of related functionality< / li >
< li > < strong > Documentation< / strong > : Comprehensive documentation and examples< / li >
< li > < strong > Testing Framework< / strong > : Built-in testing and validation tools< / li >
< / ul >
2026-01-14 01:56:30 +00:00
< p > This structure represents a significant evolution in the project’ s organization while maintaining complete backward compatibility and providing
powerful new development capabilities.< / p >
2025-12-11 21:50:42 +00:00
< / main >
< nav class = "nav-wrapper" aria-label = "Page navigation" >
<!-- Mobile navigation buttons -->
2026-01-14 01:56:30 +00:00
< a rel = "prev" href = "../development/implementation-guide.html" class = "mobile-nav-chapters previous" title = "Previous chapter" aria-label = "Previous chapter" aria-keyshortcuts = "Left" >
2025-12-11 21:50:42 +00:00
< i class = "fa fa-angle-left" > < / i >
< / a >
2026-01-14 01:56:30 +00:00
< a rel = "next prefetch" href = "../development/ctrl-c-implementation-notes.html" class = "mobile-nav-chapters next" title = "Next chapter" aria-label = "Next chapter" aria-keyshortcuts = "Right" >
2025-12-11 21:50:42 +00:00
< i class = "fa fa-angle-right" > < / i >
< / a >
< div style = "clear: both" > < / div >
< / nav >
< / div >
< / div >
< nav class = "nav-wide-wrapper" aria-label = "Page navigation" >
2026-01-14 01:56:30 +00:00
< a rel = "prev" href = "../development/implementation-guide.html" class = "nav-chapters previous" title = "Previous chapter" aria-label = "Previous chapter" aria-keyshortcuts = "Left" >
2025-12-11 21:50:42 +00:00
< i class = "fa fa-angle-left" > < / i >
< / a >
2026-01-14 01:56:30 +00:00
< a rel = "next prefetch" href = "../development/ctrl-c-implementation-notes.html" class = "nav-chapters next" title = "Next chapter" aria-label = "Next chapter" aria-keyshortcuts = "Right" >
2025-12-11 21:50:42 +00:00
< i class = "fa fa-angle-right" > < / i >
< / a >
< / nav >
< / div >
< script >
window.playground_copyable = true;
< / script >
< script src = "../elasticlunr.min.js" > < / script >
< script src = "../mark.min.js" > < / script >
< script src = "../searcher.js" > < / script >
< script src = "../clipboard.min.js" > < / script >
< script src = "../highlight.js" > < / script >
< script src = "../book.js" > < / script >
<!-- Custom JS scripts -->
< / div >
< / body >
< / html >