Skip to content

Commit 32203b7

Browse files
committed
promote size memory backed volumes to stable
1 parent 48f928a commit 32203b7

File tree

3 files changed

+75
-42
lines changed

3 files changed

+75
-42
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
kep-number: 1967
22
beta:
3+
approver: "@johnbelamaric"
4+
stable:
35
approver: "@johnbelamaric"

keps/sig-node/1967-size-memory-backed-volumes/README.md

Lines changed: 70 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,14 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
3535
- [x] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
3636
- [x] (R) KEP approvers have approved the KEP status as `implementable`
3737
- [x] (R) Design details are appropriately documented
38-
- [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
38+
- [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
39+
- [x] e2e Tests for all Beta API Operations (endpoints)
40+
- [x] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
41+
- [x] (R) Minimum Two Week Window for GA e2e tests to prove flake free
3942
- [x] (R) Graduation criteria is in place
43+
- [x] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
4044
- [x] (R) Production readiness review completed
41-
- [x] Production readiness review approved
45+
- [x] (R) Production readiness review approved
4246
- [x] "Implementation History" section is up-to-date for milestone
4347
- [x] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
4448
- [x] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
@@ -141,115 +145,141 @@ potentially inaccurate volume size based on node configuration.
141145

142146
### Feature Enablement and Rollback
143147

144-
_This section must be completed when targeting alpha to a release._
148+
#### How can this feature be enabled / disabled in a live cluster?
145149

146-
* **How can this feature be enabled / disabled in a live cluster?**
147-
- [x] Feature gate (also fill in values in `kep.yaml`)
148-
- Feature gate name: SizeMemoryBackedVolumes
149-
- Components depending on the feature gate: kubelet
150-
- Will enabling / disabling the feature require downtime or reprovisioning
151-
of a node? No
150+
- [x] Feature gate (also fill in values in `kep.yaml`)
151+
- Feature gate name: SizeMemoryBackedVolumes
152+
- Components depending on the feature gate: kubelet
153+
- Will enabling / disabling the feature require downtime or reprovisioning
154+
of a node? No
155+
156+
#### Does enabling the feature change any default behavior?
152157

153-
* **Does enabling the feature change any default behavior?**
154158
Yes, the kubelet will size the empty dir volume to match the precise
155159
amount of memory the pod is able to write rather than over or undersizing.
156160
Prior behavior is node dependent, and so pod authors had no mechanism
157161
to control this behavior properly.
158162

159-
* **Can the feature be disabled once it has been enabled (i.e. can we roll back
160-
the enablement)?** Yes
163+
#### Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement?
164+
165+
Yes
166+
167+
#### What happens if we reenable the feature if it was previously rolled back?
161168

162-
* **What happens if we reenable the feature if it was previously rolled back?**
163169
Pods that run on that node will have memory backed volumes sized based on Linux
164170
host default. The sizing may not align with actual available memory for an app.
165171

166-
* **Are there any tests for feature enablement/disablement?**
172+
#### Are there any tests for feature enablement/disablement?
173+
167174
No, testing behavior with the feature disabled is dependent on node operating
168175
system configuration. The point of this KEP is to address that coupling.
169176

170177
### Rollout, Upgrade and Rollback Planning
171178

172-
* **How can a rollout fail? Can it impact already running workloads?**
179+
#### How can a rollout fail? Can it impact already running workloads?
180+
173181
If a pod has more allocatable memory than the default node instance behavior
174182
of taking 50% node instance memory for sizing emptyDir, a pod could potentially
175183
write more content to the empty dir volume than previously. This should have
176184
no impact on rollout of the cluster or workload. In practice, applications
177185
that did exhaust the size of the memory backed volume were not portable across
178186
instance types or would have had to handle running out of room in that volume.
179187

180-
* **What specific metrics should inform a rollback?**
188+
#### What specific metrics should inform a rollback?
189+
181190
None.
182191

183-
* **Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?**
192+
#### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
193+
184194
I do not believe this is applicable.
185195

186-
* **Is the rollout accompanied by any deprecations and/or removals of features, APIs,
187-
fields of API types, flags, etc.?**
188-
Even if applying deprecation policies, they may still surprise some users.
196+
#### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?
197+
189198
No.
190199

191200
### Monitoring Requirements
192201

193-
* **How can an operator determine if the feature is in use by workloads?**
202+
#### How can an operator determine if the feature is in use by workloads?
203+
194204
An operator can audit for pods whose emptyDir medium is memory and a size limit
195205
is specified. It's not clear there is a benefit to track this because it only
196206
impacts how the kubelet better enforces an existing API.
197207

198-
* **What are the SLIs (Service Level Indicators) an operator can use to determine
199-
the health of the service?**
208+
#### What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?
209+
200210
This does not seem relevant to this feature.
201211

202-
* **What are the reasonable SLOs (Service Level Objectives) for the above SLIs?**
212+
#### How can someone using this feature know that it is working for their instance?
213+
214+
- [x] Other
215+
- Details: An operator can audit for pods whose emptyDir medium is memory and a size limit
216+
is specified.
217+
218+
#### What are the reasonable SLOs (Service Level Objectives) for the above SLIs?
219+
203220
This does not seem relevant to this feature.
204221

205-
* **Are there any missing metrics that would be useful to have to improve observability
206-
of this feature?**
222+
#### Are there any missing metrics that would be useful to have to improve observability of this feature?
223+
207224
No.
208225

209226
### Dependencies
210227

211-
* **Does this feature depend on any specific services running in the cluster?**
228+
#### Does this feature depend on any specific services running in the cluster?
229+
212230
No
213231

214232
### Scalability
215233

216-
* **Will enabling / using this feature result in any new API calls?**
234+
#### Will enabling / using this feature result in any new API calls?
235+
217236
No.
218237

219-
* **Will enabling / using this feature result in introducing new API types?**
238+
#### Will enabling / using this feature result in introducing new API types?
239+
240+
No
241+
242+
#### Will enabling / using this feature result in any new calls to the cloud?
243+
244+
provider?
245+
220246
No
221247

222-
* **Will enabling / using this feature result in any new calls to the cloud
223-
provider?**
248+
#### Will enabling / using this feature result in increasing size or count of the existing API objects?
249+
224250
No
225251

226-
* **Will enabling / using this feature result in increasing size or count of
227-
the existing API objects?**
252+
#### Will enabling / using this feature result in increasing time taken by any operations covered by [existing SLIs/SLOs]?
253+
228254
No
229255

230-
* **Will enabling / using this feature result in increasing time taken by any
231-
operations covered by [existing SLIs/SLOs]?**
256+
#### Will enabling / using this feature result in non-negligible increase of resource usage (CPU, RAM, disk, IO, ...) in any components?
257+
232258
No
233259

234-
* **Will enabling / using this feature result in non-negligible increase of
235-
resource usage (CPU, RAM, disk, IO, ...) in any components?**
260+
#### Can enabling / using this feature result in resource exhaustion of some node resources (PIDs, sockets, inodes, etc.)?
261+
236262
No
237263

238264
### Troubleshooting
239265

240-
* **How does this feature react if the API server and/or etcd is unavailable?**
266+
#### How does this feature react if the API server and/or etcd is unavailable?
267+
241268
No impact.
242269

243-
* **What are other known failure modes?**
270+
#### What are other known failure modes?
271+
244272
Not applicable.
245273

246-
* **What steps should be taken if SLOs are not being met to determine the problem?**
274+
#### What steps should be taken if SLOs are not being met to determine the problem?
275+
247276
Not applicable
248277

249278
## Implementation History
250279

251280
v1.20: Launched to `Alpha`
252281
v1.22: Moved to `Beta`
282+
v1.32: Moved to `Stable`
253283

254284
## Drawbacks
255285

keps/sig-node/1967-size-memory-backed-volumes/kep.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ title: Size memory backed volumes
22
kep-number: 1967
33
authors:
44
- "@derekwaynecarr"
5+
- "@kannon92" #for stable promotion
56
owning-sig: sig-node
67
participating-sigs:
78
- sig-storage
@@ -20,13 +21,13 @@ stage: beta
2021
# The most recent milestone for which work toward delivery of this KEP has been
2122
# done. This can be the current (upcoming) milestone, if it is being actively
2223
# worked on.
23-
latest-milestone: "v1.22"
24+
latest-milestone: "v1.32"
2425

2526
# The milestone at which this feature was, or is targeted to be, at each stage.
2627
milestone:
2728
alpha: "v1.20"
2829
beta: "v1.22"
29-
stable: "v1.23"
30+
stable: "v1.32"
3031

3132
# The following PRR answers are required at alpha release
3233
# List the feature gate name and the components for which it must be enabled

0 commit comments

Comments
 (0)