Part of #552.
Problem
docs/adr/0005-nic-config-cli-surface.md is status Proposed, Decision Outcome "Deferred", dated 2026-06-03. It enumerates four options for config bootstrapping (nic config init with reflection-driven flags, a full nic config surface, status quo, or replacing examples/ with schemas/) and five open questions, then explicitly says "A decision should follow team discussion".
This epic proceeds on a specific answer, so the ADR should record it rather than leaving the deferred options live.
Proposed decision to record
Status quo for the CLI surface (no nic config init, no nic config schema), plus the generated JSON Schema for editor support (#562), plus generated Nebi starter workspaces as the config-bootstrap mechanism (#560). The reasoning:
- The starter workspace does what
nic config init would do, and additionally pins the toolchain and ships the deploy tasks
- Because starters are versioned OCI artifacts,
nebi diff starter-aws:v0.11.0 starter-aws:v0.12.0 shows what config changed between Nebari versions. A generator cannot offer that.
- It avoids the reflection complexity the ADR itself lists as Option 1's main cost (maps, slices, pointers, tri-state
*bool, and semantic requirements like Hetzner's "exactly one node group must have master: true" that cannot be expressed structurally)
- The config surface is small enough that copy-and-edit is not the real bottleneck: stripping comments, the examples are 51 effective lines for AWS, 39 for GCP, 16 for Hetzner, 15 for existing-cluster
The five open questions resolve as: 1 and 2 become moot without flag generation; 3 becomes moot; 4 is answered by the published schema plus editor modeline (#562); 5 is answered by the task-graph gate in #560 (deploy depends on validate) together with #561.
Also to record
The distribution decision (prefix.dev github-releases channel, #579) and the package name nebari-infrastructure-core (#556). Worth a short discussion on whether distribution belongs in an ADR about config surface, or wants its own.
Definition of Done
Part of #552.
Problem
docs/adr/0005-nic-config-cli-surface.mdis status Proposed, Decision Outcome "Deferred", dated 2026-06-03. It enumerates four options for config bootstrapping (nic config initwith reflection-driven flags, a fullnic configsurface, status quo, or replacingexamples/withschemas/) and five open questions, then explicitly says "A decision should follow team discussion".This epic proceeds on a specific answer, so the ADR should record it rather than leaving the deferred options live.
Proposed decision to record
Status quo for the CLI surface (no
nic config init, nonic config schema), plus the generated JSON Schema for editor support (#562), plus generated Nebi starter workspaces as the config-bootstrap mechanism (#560). The reasoning:nic config initwould do, and additionally pins the toolchain and ships the deploy tasksnebi diff starter-aws:v0.11.0 starter-aws:v0.12.0shows what config changed between Nebari versions. A generator cannot offer that.*bool, and semantic requirements like Hetzner's "exactly one node group must havemaster: true" that cannot be expressed structurally)The five open questions resolve as: 1 and 2 become moot without flag generation; 3 becomes moot; 4 is answered by the published schema plus editor modeline (#562); 5 is answered by the task-graph gate in #560 (
deploydepends onvalidate) together with #561.Also to record
The distribution decision (prefix.dev
github-releaseschannel, #579) and the package namenebari-infrastructure-core(#556). Worth a short discussion on whether distribution belongs in an ADR about config surface, or wants its own.Definition of Done
docs/adr/README.mdupdated if a new ADR is added