Open table of contents
Conclusion
Verify reproducible configuration separately from safe cluster upgrades.
Context
Pinning versions does not pin cluster state or persistent data. Separate declarative configuration from stateful upgrade procedures.
Design and verification scope
Assess the following responsibilities and boundaries when designing and verifying a configuration.
- NixOS
- Version pinning
- etcd
- Kubernetes version skew
- Rollout
- Rollback
- Testing
Decision rationale
Use the relationship between NixOS and Testing to compare the responsibilities of the selected approach and alternatives. Separate retained constraints from what the new boundary can change.
Trade-offs
Compare the implementation, maintenance and review work introduced by Version pinning with the control it provides. Include failure paths, operator effort and conditions in which the approach should not be adopted.
Limitations
Review locks, binary versions, etcd snapshots, upgrade order and recovery. Configuration rollback does not guarantee reversible data formats.
Related case context
These cases provide attributed design context. They do not establish that the proposed experiments or configurations were delivered in those engagements.