provisioning/CHANGELOG.md

2 lines
5.0 KiB
Markdown
Raw Normal View History

# Provisioning Repository - Changes\n\n**Date**: 2026-01-08\n**Repository**: provisioning (standalone, nickel branch)\n**Changes**: Nickel IaC migration complete - Legacy KCL and config cleanup\n\n---\n\n## 📋 Summary\n\nComplete migration to Nickel-based infrastructure-as-code with consolidated configuration strategy. Legacy KCL schemas, deprecated config files, and redundant documentation removed. New project structure with `.cargo/`, `.github/`, and schema-driven configuration system.\n\n---\n\n## 📁 Changes by Directory\n\n### ✅ REMOVED (Legacy KCL Ecosystem)\n\n- **config/** - Deprecated TOML configs (config.defaults.toml, kms.toml, plugins.toml, etc.)\n- **config/cedar-policies/** - Legacy Cedar policies (moved to Nickel schemas)\n- **config/templates/** - Old Jinja2 templates (replaced by Nickel generator/)\n- **config/installer-examples/** - KCL-based examples\n- **docs/src/** - Legacy documentation (full migration to provisioning/docs/src/)\n- **kcl/** - Complete removal (all workspaces migrated to Nickel)\n- **tools/kcl-packager.nu** - KCL packaging system\n\n### ✅ ADDED (Nickel IaC & New Structure)\n\n- **.cargo/** - Rust build configuration (clippy settings, rustfmt.toml)\n- **.github/** - GitHub Actions CI/CD workflows\n- **schemas/** - Nickel schema definitions (primary IaC format)\n - main.ncl, provider-aws.ncl, provider-local.ncl, provider-upcloud.ncl\n - Infrastructure, deployment, services, operations schemas\n- **docs/src/architecture/adr/** - ADR updates for Nickel migration\n - adr-010-configuration-format-strategy.md\n - adr-011-nickel-migration.md\n - adr-012-nushell-nickel-plugin-cli-wrapper.md\n\n### 📝 UPDATED (Core System)\n\n- **provisioning/docs/src/** - Comprehensive product documentation\n - API reference, architecture, guides, operations, security, testing\n - Nickel configuration guide with examples\n - Migrated from legacy KCL documentation\n\n- **core/** - Updated with Nickel integration\n - Scripts, plugins, CLI updated for Nickel schema parsing\n\n- **justfiles/** - Added ci.just for Nickel-aware CI/CD\n- **README.md** - Complete restructure for Nickel-first approach\n- **.gitignore** - Updated to ignore Nickel build artifacts\n\n---\n\n## 📊 Change Statistics\n\n| Category | Removed | Added | Modified |\n| ---------- | --------- | ------- | ---------- |\n| Configuration | 50+ | 10+ | 3 |\n| Documentation | 150+ | 200+ | 40+ |\n| Infrastructure | 1 (kcl/) | - | - |\n| Plugins | 1 | - | 5+ |\n| Build System | 5 | 8+ | 3 |\n| **Total** | **~220 files** | **~250 files** | **50+ files** |\n\n## ⚠️ Breaking Changes\n\n1. **KCL Sunset**: All KCL infrastructure code removed. Migrate workspaces using `nickel-kcl-bridge` or rewrite directly in Nickel.\n2. **Config Format**: TOML configuration files moved to schema-driven Nickel system. Legacy config loading deprecated.\n3. **Documentation**: Old KCL/legacy docs removed. Use `provisioning/docs/` for current product documentation.\n4. **Plugin System**: Updated to Nickel-aware plugin API. Legacy Nushell plugins require recompilation.\n\n## 🔧 Migration Path\n\n```\n# For existing workspaces:\nprovisioning workspace migrate --from-kcl <workspace-name>\n\n# For custom configs:\nnickel eval --format json <your-config.ncl> | jq '.'\n```\n\n## ✨ Key Features\n\n- **Type-Safe**: Nickel schemas eliminate silent config errors\n- **Composable**: Modular infrastructure definitions with lazy evaluation\n- **Documented**: Schema validation built-in, IDE support via LSP\n- **Validated**: All imports pre-checked, circular dependencies prevented\n- **Bridge Available**: `nickel-kcl-bridge` for gradual KCL→Nickel migration\n\n---\n\n## 📝 Implementation Details\n\n### Nickel Schema System\n\n- **Three-tier architecture**: infrastructure, operations, deployment\n- **Lazy evaluation**: Efficient resource binding and composition\n- **Record merging**: Clean override patterns without duplication\n- **Type validation**: LSP-aware with IDE auto-completion\n- **Generator system**: Nickel-based dynamic configuration at runtime\n\n### D