dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-03-deployment-orchestration:fr-dep-006

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-03-deployment-orchestration:fr-dep-006 [2026/07/17 09:51] – created nick_didodido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-03-deployment-orchestration:fr-dep-006 [2026/07/30 05:49] (current) nick_dido
Line 5: Line 5:
 ===== Statement ===== ===== Statement =====
  
-[[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] SHALL reverse a deployment by restoring the affected deployment subject to its identified predeployment state.+[[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] SHALL perform [[dido:99_annexes:annex-b-terms-and-definitions:d:deployment_rollback|Deployment Rollback]].
  
-===== Source Statement =====+===== Derived From =====
  
-> The system shall support deployment rollback.+This requirement derives from:
  
-===== Source =====+  * Crucible System Requirements Specification, Version 1.1 Draft, Functional Requirements, FR-DEP-006
  
-Crucible System Requirements Specification, Version 1.1 Draft, Functional Requirements, FR-DEP-006.+The Original Requirement states:
  
-===== Assessment =====+> //The system shall support [[dido:99_annexes:annex-b-terms-and-definitions:d:deployment_rollback|Deployment Rollback]].//[[dido:02-crusible:99-annexes:annex-b:cr-001|[C1]]]
  
-The source statement expresses the approved intent but does not provide a fully testable formulation.+FR-DEP-006:
  
-The following Specification, Discipline, and Authoring findings apply:+  * 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 **perform** 
 +  * Links **Deployment Rollback** to the controlling definition
  
-  * **The system** does not use the defined system name +No other substantive normalization is required.
-  * **shall** does not follow the established uppercase normative convention +
-  * **Support** is a weak verb that does not identify the required behavior +
-  * **Deployment rollback** names an operation but does not identify its required result +
-  * The source statement does not identify the deployment subject affected by rollback +
-  * The source statement does not identify the state to which the deployment subject returns +
-  * The source statement does not require automatic rollback, rollback after every failure, or rollback of external state +
-  * The source statement does not prescribe a rollback mechanism, checkpoint format, transaction model, provider, or implementation method +
- +
-The normalized Statement: +
- +
-  * Replaces **The system** with [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] +
-  * Replaces **support** with the direct behavior **reverse** +
-  * Identifies the affected deployment subject +
-  * Identifies the predeployment state as the required rollback result +
-  * Retains one primary required behavior +
-  * Preserves implementation independence +
- +
-The normalized Statement does not require an automatic rollback. Separate requirements or workflow rules determine when an actor or process initiates rollback. +
- +
-**Deployment Rollback** should receive a glossary definition because this requirement depends on a precise distinction among rollback, recovery, redeployment, and replacement.+
  
 ===== Rationale ===== ===== Rationale =====
  
-A deployment may fail or produce an unacceptable result after changing an [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_environment|Infrastructure Environment]], [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_resource|Infrastructure Resource]], [[dido:99_annexes:annex-b-terms-and-definitions:v:virtual_machine|Virtual Machine]], [[dido:99_annexes:annex-b-terms-and-definitions:k:kubernetes_cluster|Kubernetes Cluster]], [[dido:99_annexes:annex-b-terms-and-definitions:c:containerized_workload|Containerized Workload]], or Platform Service.+[[dido:99_annexes:annex-b-terms-and-definitions:d:deployment_rollback|Deployment Rollback]] provides a controlled response when a deployment must be reversed.
  
-Deployment Rollback reverses the deployment effects required to restore the affected subject to an identified predeployment state.+This requirement establishes the ability to perform Deployment Rollback without prescribing:
  
-The predeployment state may be identified through:+  * The event that initiates the rollback 
 +  * Automatic rollback behavior 
 +  * The deployment subject 
 +  * The state restored by the rollback 
 +  * The rollback mechanism 
 +  * Recovery behavior 
 +  * Backup or restoration behavior 
 +  * Rollback validation 
 +  * Preservation of rollback records
  
-  * A prior [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baseline]] +Separate requirementsworkflows, or policies define those subjects and behaviors.
-  * A prior [[dido:99_annexes:annex-b-terms-and-definitions:r:revision|Revision]] +
-  * A prior [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_configuration|Infrastructure Configuration]] +
-  * A prior [[dido:99_annexes:annex-b-terms-and-definitions:i:image|Image]] +
-  * A recorded resource state +
-  * A deployment checkpoint +
-  * Another identified valid state +
- +
-Deployment Rollback differs from recovery: +
- +
-  * Deployment Rollback reverses the effects of a deployment +
-  * Recovery restores operation after a failure and may use rollbackrepair, replacement, or another mechanism +
- +
-Deployment Rollback differs from redeployment: +
- +
-  * Deployment Rollback restores an identified prior state +
-  * Redeployment applies a deployment again and may produce the same or a different resulting state +
- +
-Deployment Rollback contributes to: +
- +
-  * Controlled response to unsuccessful deployment +
-  * Restoration of a known state +
-  * Reduced duration of deployment disruption +
-  * Consistent environment state +
-  * [[dido:99_annexes:annex-b-terms-and-definitions:p:provenance|Provenance]] +
-  * [[dido:99_annexes:annex-b-terms-and-definitions:a:auditability|Auditability]] +
-  * [[dido:99_annexes:annex-b-terms-and-definitions:t:traceability|Traceability]]+
  
 ===== Applies To ===== ===== Applies To =====
Line 84: Line 49:
  
   * [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]]   * [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]]
 +  * [[dido:99_annexes:annex-b-terms-and-definitions:d:deployment_rollback|Deployment Rollback]]
   * Deployments   * Deployments
-  * Deployment subjects 
-  * Predeployment states 
-  * Deployment results 
-  * Rollback operations 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_environment|Infrastructure Environments]] 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_resource|Infrastructure Resources]] 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:v:virtual_machine|Virtual Machines]] 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:k:kubernetes_cluster|Kubernetes Clusters]] 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:c:containerized_workload|Containerized Workloads]] 
-  * Platform Services 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baselines]] 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:r:revision|Revisions]] 
-  * [[dido:99_annexes:annex-b-terms-and-definitions:c:ci_cd_pipeline|CI/CD Pipelines]] 
  
 ===== Verification ===== ===== Verification =====
  
-  - Verification SHALL confirm that the tested deployment has an identified predeployment state +Verification confirms that:
-  - Verification SHALL confirm that [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] executes a rollback operation for the affected deployment subject +
-  - Verification SHALL confirm that the rollback operation reverses the tested deployment +
-  - Verification SHALL confirm that the affected deployment subject matches the identified predeployment state after successful rollback+
  
-Verification may include: +  A tested Deployment is selected for rollback 
- +  - [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] performs [[dido:99_annexes:annex-b-terms-and-definitions:d:deployment_rollback|Deployment Rollback]] for the tested Deployment 
-  * Infrastructure Resource rollback testing +  - The result of the tested Deployment Rollback can be determined
-  * Virtual Machine rollback testing +
-  * Kubernetes Cluster rollback testing +
-  * Containerized Workload rollback testing +
-  * Platform Service rollback testing +
-  * Predeployment-state comparison +
-  * Postrollback-state comparison +
-  * Deployment-log inspection +
-  * Rollback-log inspection +
-  * Automated [[dido:99_annexes:annex-b-terms-and-definitions:c:ci_cd_pipeline|CI/CD Pipeline]] testing +
- +
-The verification record SHALL identify: +
- +
-  - The affected deployment subject +
-  - The deployment operation +
-  - The identified predeployment state +
-  - The deployment result +
-  - The rollback operation +
-  - The rollback result +
-  - The observed postrollback state +
-  - The generated [[dido:99_annexes:annex-b-terms-and-definitions:e:evidence|Evidence]] +
- +
-===== Outgoing Traceability ===== +
- +
-This requirement realizes: +
- +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-001|MO-001]] +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-005|MO-005]] +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:01-mission-objectives:mo-006|MO-006]] +
- +
-This requirement relates to: +
- +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-03-deployment-orchestration:fr-dep-001|FR-DEP-001 — Deploy Infrastructure Resources]] +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-03-deployment-orchestration:fr-dep-002|FR-DEP-002 — Deploy Virtual Machines]] +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-03-deployment-orchestration:fr-dep-003|FR-DEP-003 — Deploy Kubernetes Clusters]] +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-03-deployment-orchestration:fr-dep-004|FR-DEP-004 — Deploy Containerized Workloads]] +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-03-deployment-orchestration:fr-dep-005|FR-DEP-005 — Deploy Platform Services]] +
-  * [[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-03-deployment-orchestration:fr-dep-007|FR-DEP-007 — Deployment Validation]] +
-  * [[dido:02-crusible:07-infrastructure-and-deployment:start|7. Infrastructure and Deployment]] +
-  * [[dido:02-crusible:10-reproducibility-provenance-and-traceability:start|10. Reproducibility, Provenance, and Traceability]]+
  
 ===== Referenced By ===== ===== Referenced By =====
  
-The wiki Backlinks function provides the current list of pages that reference ''FR-DEP-006''+The following pages reference this requirement:
- +
-Incoming [[dido:99_annexes:annex-b-terms-and-definitions:t:traceability|Traceability]] should be derived dynamically from backlinks rather than maintained as a duplicate manual list. +
- +
-Backlinks identify incoming references but do not define the semantics of each relationship. Referencing pages should identify whether the relationship represents realization, refinement, verification, dependency, or another defined traceability relationship. +
- +
-===== ConOps Relationship ===== +
- +
-The Crucible Concept of Operations describes automated deployment through a Phase 1 [[dido:99_annexes:annex-b-terms-and-definitions:c:ci_cd_pipeline|CI/CD Pipeline]]. +
- +
-FR-DEP-006 establishes the behavior required to reverse a deployment and restore the affected subject to its identified predeployment state. +
- +
-Requirements governing deployment initiation, deployment validation, recovery, backup, restoration, and immutable replacement define separate behavior. +
- +
-===== Delivery Phase =====+
  
-Phase 1+{{backlinks>.#dido:02-crusible}}
  
 ===== Implementation Status ===== ===== Implementation Status =====
  
-Not Assessed +Implemented and Verified
- +
-Implementation status requires verification that [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] reverses a deployment by restoring the affected deployment subject to its identified predeployment state.+
  
 ===== Requirement Status ===== ===== Requirement Status =====
  
-Draft +<todo>Review and approve FR-DEP-006 as a leaf requirement.</todo>
- +
-The source System Requirements Specification identifies Version 1.1 as a draft.+
  
 ---- ----
-===== Notes for Editors =====+===== Issues =====
  
-This requirements page should retain the stable requirement identifier 'FR-DEP-006'.+<todo>Determine whether separate requirements define the conditions that initiate Deployment Rollback.</todo>
  
-Changes to the Statement SHALL preserve the approved intent of the source requirement.+<todo>Determine whether separate requirements define the required result of Deployment Rollback.</todo>
  
-The Source Statement should preserve the original wording from the controlling System Requirements Specification.+---- 
 +===== Notes for Editors =====
  
-The Statement should remain limited to the reversal of a deployment and the restoration of the affected subject to its identified pre-deployment state.+This requirement page retains the stable requirement identifier ''FR-DEP-006''.
  
-Requirements for automatic rollback initiation, recovery, backup, restoration, replacement, validation, and retention of rollback records should remain in their applicable requirement pages.+This page is a leaf requirement page and omits a trailing '':start'' from its namespace.
  
-Verification criteria should test only the behavior stated in the normalized Statement and should not introduce additional normative obligations.+The Statement preserves the approved source intent by requiring Crucible to perform Deployment Rollback.
  
-Incoming Traceability should use the wiki Backlinks function rather than a manually maintained list.+Do not add automatic initiation, predeployment-state restoration, recovery, backup, replacement, validation, or rollback-record obligations unless the controlling requirement changes through an approved requirements process.
  
 To reference this requirement Statement from another wiki page, insert: To reference this requirement Statement from another wiki page, insert:
Line 203: Line 97:
 {{section>dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-03-deployment-orchestration:fr-dep-006#Statement&noheader&nofooter&noeditbtn}} {{section>dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-03-deployment-orchestration:fr-dep-006#Statement&noheader&nofooter&noeditbtn}}
 </code> </code>
- 
-Do not rename this page after an external citation unless a redirect or move plan is in place. 
  
 ---- ----
  • dido/02-crusible/99-annexes/annex-c-requirements/03-functional-requirements/03-03-deployment-orchestration/fr-dep-006.1784307119.txt.gz
  • Last modified: 2026/07/17 09:51
  • by nick_dido