Skip to content

Commit be3c90d

Browse files
committed
Update CRI KEP with pinned Image requirement
This reflects the new requirement of CRI going to Beta that the CRI implementation must be able to indicate to the Kubelet an image should not be garbage collected. This functionality will be used in leu of the Kubelet's current behavior of keeping track of the pause image version to stop the pause image from being garbage collected. Signed-off-by: Peter Hunt <[email protected]>
1 parent dc66028 commit be3c90d

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

keps/sig-node/2040-kubelet-cri/README.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
# Kubelet CRI support
32

43
<!-- toc -->
@@ -13,6 +12,7 @@
1312
- [Identified Work Items](#identified-work-items)
1413
- [Changes from v1alpha2 to v1beta1](#changes-from-v1alpha2-to-v1beta1)
1514
- [Clean Up](#clean-up)
15+
- [Pinned Images](#pinned-images)
1616
- [Test Plan](#test-plan)
1717
- [Graduation Criteria](#graduation-criteria)
1818
- [Alpha -&gt; Beta Graduation](#alpha---beta-graduation)
@@ -81,6 +81,7 @@ Evolve the CRI API version as we address feedback in each milestone towards stab
8181
- No longer map the `container-runtime-endpoint` flag as experimental.
8282
- Keep the `image-service-endpoint` flag as experimental and evaluate if it makes sense to keep
8383
as a configurable or remove it.
84+
- Introduce field in the `Image` message to indicate an image should not be garbage collected (see #pinned-images)
8485

8586
#### Changes from v1alpha2 to v1beta1
8687

@@ -100,6 +101,26 @@ Need Sig-Node and Sig-Networking to help validate if / when kubenet is being dep
100101
- Removal of TODOs that are no longer valid should be done before v1beta. We have scraped the api specification once and have a small
101102
list of commits to file.
102103

104+
#### Pinned Images
105+
- Introduce field in the `Image` message to indicate an image should not be garbage collected:
106+
```golang
107+
message Image {
108+
...
109+
ImageSpec spec = 7;
110+
// Recommendation on whether this image should be exempt from garbage collection.
111+
// It must only be treated as a recommendation--the client can still request the image be deleted,
112+
// and the runtime must oblige.
113+
bool pinned = 8;
114+
115+
}
116+
...
117+
```
118+
- Rely on this behavior instead of having the Kubelet keep track of expected pause image.
119+
- In other words, have the runtime say the required pause image is pinned, indicating the Kubelet should not garbage collect it.
120+
- As a result, support for `pod-infra-container` option in Kubelet will be dropped (not part of this KEP, but worth mentioning).
121+
- See https://github.com/kubernetes/kubernetes/pull/101808 for more details.
122+
123+
103124
### Test Plan
104125
- Review of the existing test cases in critest and adding more if we find any gaps.
105126
- Make sure we have e2e node (and possibly selected e2e conformance) tests running on more than one CRI implementation.
@@ -113,6 +134,7 @@ list of commits to file.
113134
- Documentation is updated to reflect beta status.
114135
- Update the CI with containerd and CRI-O versions that support the v1 proto.
115136
- Ensure that the required CRI stats changes are included. See https://github.com/kubernetes/enhancements/issues/2371.
137+
- Introduce field in the `Image` message to indicate an image should not be garbage collected (see #pinned-images)
116138

117139
#### Beta -> GA Graduation
118140
- TBD

0 commit comments

Comments
 (0)