Skip to content

config: name storage volumes explicitly - #205

Merged
Zariel merged 1 commit into
mainfrom
agent/storage-volume-surface
Aug 5, 2026
Merged

config: name storage volumes explicitly#205
Zariel merged 1 commit into
mainfrom
agent/storage-volume-surface

Conversation

@Zariel

@Zariel Zariel commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • rename the unshipped public storage.disks field to storage.volumes
  • require partition.byVolumeName: true for convention-labelled partitions
  • expose the explicit selector and derived label/path in schema and resolved output
  • document and test storage's deliberate field-level layering behavior

Why

Storage entries may be whole-disk or partition-backed, and the previous name and empty-object convention hid that distinction. The new source shape reads naturally and makes target selection visible to editors and operators without changing compiled runtime semantics.

The persistent katldev journey validated, resolved, applied, and reapplied the new shape against the preserved XFS data volume; the old spelling was refused and the existing filesystem identities and marker remained intact.

Replace the unshipped storage.disks surface with storage.volumes and
require byVolumeName: true for convention-derived partition selection.
Keep the compiler output stable while making schema, validation,
inspection, layering, and operator documentation reflect the public
intent.
@Zariel
Zariel enabled auto-merge (squash) August 5, 2026 22:47
@greptile-apps

greptile-apps Bot commented Aug 5, 2026

Copy link
Copy Markdown

Greptile Summary

The PR renames the unshipped public storage collection from disks to volumes, makes convention-based partition selection explicit, and exposes effective selectors and derived storage details during configuration inspection.

  • Updates source types, schema rules, diagnostics, layering, and resolved-output provenance for the new public shape.
  • Adds partition.byVolumeName: true for selecting the convention-derived u-<volume> partition label.
  • Updates tests and operator documentation to describe field-level storage layering and the renamed collection.

Confidence Score: 5/5

The PR appears safe to merge; no concrete changed-code-triggered defects remain in the reviewed storage parsing, layering, validation, schema, or inspection paths.

The renamed field and explicit partition selector are consistently propagated, selector-kind transitions discard incompatible inherited state, and effective volumes are validated before compilation or inspection.

Important Files Changed

Filename Overview
internal/installer/configbundle/bundle.go Renames the public storage collection and adds the explicit convention-based partition selector to source configuration types.
internal/installer/configbundle/source_layering.go Implements field-level volume inheritance, selector-kind replacement, presence-aware overrides, and validation for byVolumeName.
internal/installer/configbundle/schema_rules.go Updates generated schema descriptions and requires byVolumeName to be explicitly true when selected.
internal/installer/configbundle/inspect.go Reports effective public selectors, provenance, and convention-derived partition labels and mount sources.
internal/installer/configbundle/source_errors.go Translates internal storage diagnostic paths to the renamed public storage.volumes contract.
docs/internal/cluster-manifest-contract.md Documents the renamed storage shape and its deliberate field-level layering semantics.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
    A[ClusterConfig storage.volumes] --> B[Strict source decoding]
    B --> C[Defaults and node field-level layering]
    C --> D[Effective-volume validation]
    D --> E[Manifest storage target]
    D --> F[Resolved public selector]
    F --> G[Derived mount path and partition label]
    E --> H[Install and runtime reconciliation]
Loading

Reviews (1): Last reviewed commit: "config: name storage volumes explicitly" | Re-trigger Greptile

@Zariel
Zariel merged commit 3ed9774 into main Aug 5, 2026
6 checks passed
@Zariel
Zariel deleted the agent/storage-volume-surface branch August 5, 2026 22:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant