summaryrefslogtreecommitdiff
path: root/keps/sig-node
diff options
context:
space:
mode:
authorTim Allclair <tallclair@google.com>2018-06-21 15:40:41 -0700
committerTim Allclair <tallclair@google.com>2018-06-21 16:49:44 -0700
commit2a3e21fe6b9a82604792bd4d292377b01979ac35 (patch)
treefff20e1b3c13c678bd87edc14afa5f938f460839 /keps/sig-node
parenta185256c070c7fc52eb82ad9caab56512ad2f7c1 (diff)
Revisit upgrade section, spec is immutable
Diffstat (limited to 'keps/sig-node')
-rw-r--r--keps/sig-node/0014-runtime-class.md21
1 files changed, 10 insertions, 11 deletions
diff --git a/keps/sig-node/0014-runtime-class.md b/keps/sig-node/0014-runtime-class.md
index 6c2a9461..e5b9f1cf 100644
--- a/keps/sig-node/0014-runtime-class.md
+++ b/keps/sig-node/0014-runtime-class.md
@@ -263,17 +263,15 @@ message RunPodSandboxRequest {
### Versioning, Updates, and Rollouts
-_Axiom: Rerunning a pod on a different node in the same cluster with the same RuntimeClassName should
-not change its behavior._
+Getting upgrades and rollouts right is a very nuanced and complicated problem. For the initial alpha
+implementation, we will kick the can down the road by making the `RuntimeClassSpec` **immutable**,
+thereby requiring changes to be pushed as a newly named RuntimeClass instance. This means that pods
+must be updated to reference the new RuntimeClass, and comes with the advantage of native support
+for rolling updates through the same mechanisms as any other application update.
-This means that if a runtime is updated in a fully backwards-compatible way, then the RuntimeClass
-does not _need_ to change. It also means that if the updated runtime breaks backwards compatibility,
-then it **MUST** be renamed. RuntimeClass does not provide a predefined versioning or naming scheme,
-so versioned upgrades are left to the cluster operator to handle.
-
-Since breaking runtime changes require a new RuntimeClass definition, it means that pods must be
-updated to reference the new RuntimeClass. This comes with the advantage of native support for
-rolling updates through the same mechanisms as any other application update.
+This conservative approach is preferred since it's much easier to relax constraints in a backwards
+compatible way than tighten them. We should revisit this decision prior to graduating RuntimeClass
+to beta.
### Implementation Details
@@ -327,7 +325,8 @@ Beta:
- Major runtimes support RuntimeClass
- RuntimeClasses are configured in the E2E environment with test coverage of a non-legacy RuntimeClass
-- TBD
+- The update & upgrade story is revisited, and a longer-term approach is implemented as necessary.
+- Additional requirements TBD
## Implementation History