Skip to content

Update ADR-0005 with the config-surface and distribution decision #565

Description

@dcmcand

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    architecture 🏛Architectural design concerns (patterns, boundaries, layering)area: documentation 📖Improvements or additions to documentationneeds: discussion 💬Needs discussion with the rest of the team

    Type

    Fields

    Priority

    High

    Start date

    Sep 1, 2026

    Target date

    Sep 3, 2026

    Size

    S

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions