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,
|
||
|
|
}
|