Skip to content

Use Environment-Scoped Blueprint Overlays as the Operator Configuration

Status

Accepted: An initialised blueprint under the selected runtime environment is the normal operator configuration. Shipped blueprints remain immutable release defaults.

Context

An environment must resolve the same intent throughout validation, execution, access, recovery, and release. Image sources, access policy, network selection, recovery behaviour, and target metadata therefore need an environment-owned configuration identity. Editing the installed release makes that identity difficult to audit, loses it during updates, and couples environments together.

Decision

hyops blueprint init copies a shipped blueprint into the selected environment. Later blueprint commands resolve that overlay automatically. hyops blueprint edit opens the environment copy. An explicit --file remains available for an intentional override, but it is not the normal operating path.

The runtime enforces the selected environment boundary when resolving an overlay. A missing overlay produces an actionable error rather than falling back to an unrelated local file.

Consequences

Positive

  • Release updates do not replace operator configuration.
  • Each environment has an explicit, reviewable intent source.
  • Validate, preflight, deploy, access, rebuild, and destroy resolve the same environment contract.

Negative

  • Operators must manage changes to the environment overlay deliberately.
  • Reinitialising with --force can replace local settings and therefore requires an explicit action.

Alternatives considered

  • Edit the installed blueprint: rejected because updates replace the install tree and several environments would share one mutable file.
  • Require --file for every command: rejected because repeated path selection is error-prone and weakens environment identity.

Operational impact

Initialise once, edit the environment copy, then run normal blueprint commands with --env and --ref.

References