====== FR-IMG-003 — Immutable Infrastructure Workflows ======
[[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-02-image-management:start|Go to Crucible Image Management Requirements]]
===== Statement =====
[[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] SHALL apply changes to deployed images by replacing the images rather than modifying them in place.
===== Derived From =====
This requirement derives from:
* Crucible System Requirements Specification, Version 1.1 Draft, Functional Requirements, FR-IMG-003
The Original Requirement states:
> //The system shall support immutable infrastructure workflows.//[[dido:02-crusible:99-annexes:annex-b:cr-001|[C1]]]
FR-IMG-003:
* Replaces **The system** with the defined system name [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]]
* Changes **shall** to the established uppercase normative form **SHALL**
* Replaces the weak verb **support** with the observable behavior **apply**
* Expresses immutable image management as replacement rather than in-place modification
===== Rationale =====
An immutable infrastructure workflow applies a change by replacing a deployed image with a newly built image rather than modifying the deployed image in place.
Replacement preserves the relationship between a deployed subject and the image [[dido:99_annexes:annex-b-terms-and-definitions:a:artifact|Artifact]] from which the subject was created.
This approach reduces configuration drift and supports repeatable deployment of [[dido:99_annexes:annex-b-terms-and-definitions:m:machine_image|Machine Images]] and [[dido:99_annexes:annex-b-terms-and-definitions:c:container_image|Container Images]].
===== Applies To =====
This requirement applies to:
* [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]]
* [[dido:99_annexes:annex-b-terms-and-definitions:m:machine_image|Machine Images]]
* [[dido:99_annexes:annex-b-terms-and-definitions:c:container_image|Container Images]]
* Deployed images
* Image replacement operations
===== Verification =====
Verification confirms that:
- A change to a tested deployed image produces a replacement image
- [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] replaces the tested deployed image with the replacement image
- Crucible does not apply the tested change by modifying the deployed image in place
- The replacement image can be identified as distinct from the image it replaces
===== Referenced By =====
The following pages reference this requirement:
{{backlinks>.#dido:02-crusible}}
===== Implementation Status =====
Implemented and Verified
===== Requirement Status =====
Review and approve FR-IMG-003 as a leaf requirement.
----
===== Issues =====
Determine whether Immutable Infrastructure Workflow requires a controlled definition in the shared Terms and Definitions corpus.
Determine whether separate requirements define replacement failure and recovery behavior.
----
===== Notes for Editors =====
This requirement page retains the stable requirement identifier ''FR-IMG-003''.
This page is a leaf requirement page and omits a trailing '':start'' from its namespace.
The Statement preserves the approved source intent by requiring image changes to use replacement rather than in-place modification.
Do not add image building, signing, verification, promotion, deployment validation, rollback, or recovery obligations to the Statement unless the controlling requirement changes through an approved requirements process.
To reference this requirement Statement from another wiki page, insert:
{{section>dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-02-image-management:fr-img-003#Statement&noheader&nofooter&noeditbtn}}
----
© 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.