- Remove KCL ecosystem (~220 files deleted) - Migrate all infrastructure to Nickel schema system - Consolidate documentation: legacy docs → provisioning/docs/src/ - Add CI/CD workflows (.github/) and Rust build config (.cargo/) - Update core system for Nickel schema parsing - Update README.md and CHANGES.md for v5.0.0 release - Fix pre-commit hooks: end-of-file, trailing-whitespace - Breaking changes: KCL workspaces require migration - Migration bridge available in docs/src/development/
65 lines
2.8 KiB
Plaintext
65 lines
2.8 KiB
Plaintext
# | Core lib instances (defaults only)
|
|
# | Migrated from: provisioning/kcl/lib.k
|
|
# | Pattern: Hybrid - defaults + makers + direct access (contracts available via import)
|
|
|
|
let contracts_lib = import "./contracts.ncl" in
|
|
let defaults_lib = import "./defaults.ncl" in
|
|
|
|
{
|
|
# ============================================================================
|
|
# SECTION 0: Contracts (schema definitions)
|
|
# Use when: Validating and type-checking records
|
|
# Exported: YES - for contract application via `| contracts.Storage`
|
|
# ============================================================================
|
|
Storage = contracts_lib.Storage,
|
|
StorageVol = contracts_lib.StorageVol,
|
|
TaskServDef = contracts_lib.TaskServDef,
|
|
ClusterDef = contracts_lib.ClusterDef,
|
|
ScaleData = contracts_lib.ScaleData,
|
|
ScaleResource = contracts_lib.ScaleResource,
|
|
|
|
# ============================================================================
|
|
# SECTION 1: Direct access to defaults (for reference)
|
|
# Use when: Understanding default values, building custom instances manually
|
|
# Exported: YES - for inspection and custom building
|
|
# ============================================================================
|
|
defaults = defaults_lib,
|
|
|
|
# ============================================================================
|
|
# SECTION 2: Convenience makers (90% of use cases)
|
|
# Use when: Creating instances with overrides, simple customization
|
|
# Note: Not exported to TOML/JSON (functions aren't serializable)
|
|
# Import lib.ncl in Nickel code and use these functions
|
|
# ============================================================================
|
|
|
|
make_storage_vol | not_exported = fun overrides =>
|
|
defaults_lib.storage_vol & overrides,
|
|
|
|
make_storage | not_exported = fun overrides =>
|
|
defaults_lib.storage & overrides,
|
|
|
|
make_taskserv_def | not_exported = fun overrides =>
|
|
defaults_lib.taskserv_def & overrides,
|
|
|
|
make_cluster_def | not_exported = fun overrides =>
|
|
defaults_lib.cluster_def & overrides,
|
|
|
|
make_scale_data | not_exported = fun overrides =>
|
|
defaults_lib.scale_data & overrides,
|
|
|
|
make_scale_resource | not_exported = fun overrides =>
|
|
defaults_lib.scale_resource & overrides,
|
|
|
|
# ============================================================================
|
|
# SECTION 3: Default instances (bare defaults)
|
|
# Use when: Need unmodified default values
|
|
# Exported: YES - for direct use without customization
|
|
# ============================================================================
|
|
DefaultStorageVol = defaults_lib.storage_vol,
|
|
DefaultStorage = defaults_lib.storage,
|
|
DefaultTaskServDef = defaults_lib.taskserv_def,
|
|
DefaultClusterDef = defaults_lib.cluster_def,
|
|
DefaultScaleData = defaults_lib.scale_data,
|
|
DefaultScaleResource = defaults_lib.scale_resource,
|
|
}
|