Skip to content

feat: per-stage runtime configuration#56

Merged
markhedleyjones merged 3 commits intomainfrom
feat/per-stage-runtime
Mar 26, 2026
Merged

feat: per-stage runtime configuration#56
markhedleyjones merged 3 commits intomainfrom
feat/per-stage-runtime

Conversation

@markhedleyjones
Copy link
Copy Markdown
Owner

Stages can now override or extend the global runtime block by adding a runtime section within the stage definition. Scalar fields (network_mode, privileged, ipc, shell) are overridden by the stage value. List fields (volumes, devices, features) are appended.

This allows development-only volumes, network modes, and features without affecting production. cm run resolves the effective runtime for the development stage; run.sh resolves for the production stage.

Stages can now override or extend the global runtime block by adding
a runtime section within the stage definition. Scalar fields (network_mode,
privileged, ipc, shell) are overridden by the stage value. List fields
(volumes, devices, features) are appended.

This allows development-only volumes, network modes, and features
without affecting production. cm run resolves the effective runtime
for the development stage; run.sh resolves for the production stage.
Changed privileged from bool (default False) to Optional[bool] (default
None) so that a stage-level privileged: false can override a global
privileged: true. Previously the truthiness check skipped False values.
@markhedleyjones markhedleyjones merged commit c2bf9a7 into main Mar 26, 2026
8 checks passed
@markhedleyjones markhedleyjones deleted the feat/per-stage-runtime branch March 26, 2026 09:37
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