From 5240376d173bf5a869be96fcce47873740566a3a Mon Sep 17 00:00:00 2001 From: Travis Mattera Date: Mon, 6 Nov 2023 10:52:19 -0800 Subject: [PATCH] Added section for breaking changes related to version skew and suspend using cli. Signed-off-by: Travis Mattera --- rfcs/0006-alternative-suspend-control/README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/rfcs/0006-alternative-suspend-control/README.md b/rfcs/0006-alternative-suspend-control/README.md index bd0e2352..0743fa56 100644 --- a/rfcs/0006-alternative-suspend-control/README.md +++ b/rfcs/0006-alternative-suspend-control/README.md @@ -135,6 +135,22 @@ The suspend annotation would by default be set to a generic value. An optional cli flag (eg `--message`) would support setting the suspended annotation value to a user-specified string. +## Breaking Changes - Version Skew and Suspend Honoring + +An edge case exists under these proposed changes with regard to suspending +objects using a new version of the cli while the controllers are running older +versions. Specifically, the user suspends the object with the cli which adds +the suspend annotation but leaves the `.spec.suspend` field unmodified. The +user sees the object is suspended by the cli output. The controllers however do +not recognize the object is suspended. + +A potential scenario where this case becomes very damaging is during git repo +refactoring where users suspend objects, relocate the manifest sources and +related references, and resume. The operation is meant to be a no-op. However +with such a version skew and `Kustomizations` set with `.spec.prune` enabled +major workload disruption could occur. + + ## Implementation History tbd