Skip to content

Commit 94277fd

Browse files
authored
Merge pull request #5428 from andrewsykim/kep-4742
KEP-4742: promote PodTopologyLabelsAdmission to beta
2 parents 0653f14 + ce24499 commit 94277fd

File tree

3 files changed

+19
-15
lines changed

3 files changed

+19
-15
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
kep-number: 4742
22
alpha:
33
approver: "@johnbelamaric"
4+
beta:
5+
approver: "@johnbelamaric"

keps/sig-node/4742-node-topology-downward-api/README.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ we aim to simplify access to this information for Pods via the Downward API.
9898

9999
### Goals
100100

101-
* Values from Node labels `topology.k8s.io/zone`, `topology.k8s.io/region` and `kubernetes.io/hostname` are made
101+
* Values from Node labels `topology.kubernetes.io/zone`, `topology.kubernetes.io/region` and `kubernetes.io/hostname` are made
102102
available via downward API
103103
* Additional node labels can be made available via downward API using admission webhooks that mutate `pods/binding`.
104104

@@ -171,7 +171,7 @@ creation but not guaranteed to be immutable and thus should be treated as so.
171171

172172
* A built-in Kubernetes admission plugin, `PodTopologyLabels` will be introduced in kube-apiserver
173173
* The `PodTopologyLabels` admission plugin is responsible for mutating `pods/binding` subresource, adding topology labels matching the target Node.
174-
* `PodTopologyLabels` admission will overwrite `topology.k8s.io/*` labels on Pods.
174+
* `PodTopologyLabels` admission will overwrite `topology.kubernetes.io/*` labels on Pods.
175175
* A feature gate, `PodTopologyLabelsAdmission` will be introduced in v1.33. Alpha and disabled by default.
176176
The `PodTopologyLabels` admission plugin can only be set when this feature gate is enabled.
177177
* The Binding REST implementation will be updated to copy all labels from `pods/binding` subresource into Pods.
@@ -222,10 +222,11 @@ E2E tests will also ensure behavior is exercised when the feature gate is enable
222222
- All standard topology labels can be retrieved using downward API.
223223
- Behavior is implemented behind a feature gate that is off by default.
224224
- Initial unit, integration and e2e tests completed and enabled.
225+
- Fix standard topology label used in PodTopologyLabels admission controller (topology.k8s.io -> topology.kubernetes.io)
225226

226227
#### Beta
227228

228-
TODO after Alpha.
229+
- Unit, integration and e2e tests
229230

230231
#### GA
231232

@@ -290,7 +291,9 @@ Tests will be added to ensure feature gate works as expected.
290291

291292
### Rollout, Upgrade and Rollback Planning
292293

293-
TODO for Beta.
294+
Manual testing will be exercised to ensure that PodTopologyLabelsAdmission can be enabled and then disabled.
295+
When disabled, existing Pods with topology labels will continue to run with those labels and new Pods will no longer
296+
container topology labels.
294297

295298
###### How can a rollout or rollback fail? Can it impact already running workloads?
296299

@@ -311,11 +314,9 @@ No.
311314

312315
### Monitoring Requirements
313316

314-
TODO for GA.
315-
316317
###### How can an operator determine if the feature is in use by workloads?
317318

318-
N/A
319+
They can check if new Pods contain the `topology.kubernetes.io/*` labels.
319320

320321
###### How can someone using this feature know that it is working for their instance?
321322

@@ -335,15 +336,15 @@ N/A
335336

336337

337338
- [X] Metrics
338-
- Metric name: `pod_scheduling_attempts`
339+
- Metric name: `pod_scheduling_attempts`, `scheduler_scheduling_attempt_duration_seconds`
339340
- [Optional] Aggregation method:
340341
- Components exposing the metric: kube-scheduler
341342
- [] Other (treat as last resort)
342343
- Details: SLI are not necessary for this admission plugin
343344

344345
###### Are there any missing metrics that would be useful to have to improve observability of this feature?
345346

346-
No, we can use `pod_scheduling_attempts`.
347+
No, we can use `pod_scheduling_attempts` and `scheduler_scheduling_attempt_duration_seconds`.
347348

348349
### Dependencies
349350

@@ -391,9 +392,9 @@ Little impact as this feature is only relevant when scheduling and running Pods,
391392

392393
###### What are other known failure modes?
393394

394-
Not all Kubernetes clusters have nodes that have topology labels. Requesting topology information
395-
via downward API in these clusters will result in Pods failing to start or empty values returned
396-
via downward API.
395+
Not all Kubernetes clusters have Nodes with topology labels. Requesting topology information
396+
in these clusters will result in empty values returned via downward API and some
397+
applications failing to start if they rely on this information.
397398

398399
###### What steps should be taken if SLOs are not being met to determine the problem?
399400

@@ -402,6 +403,7 @@ Revert feature gate and stop consuming downward API.
402403
## Implementation History
403404

404405
- `v1.33`: initial KEP is accepeted and alpha implementation is complete
406+
- `v1.34`: fix topology labels from topology.k8s.io to topology.kubernetes.io.
405407

406408
## Drawbacks
407409

keps/sig-node/4742-node-topology-downward-api/kep.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ see-also:
2121
replaces:
2222

2323
# The target maturity stage in the current dev cycle for this KEP.
24-
stage: alpha
24+
stage: beta
2525

2626
# The most recent milestone for which work toward delivery of this KEP has been
2727
# done. This can be the current (upcoming) milestone, if it is being actively
2828
# worked on.
29-
latest-milestone: "v1.33"
29+
latest-milestone: "v1.35"
3030

3131
# The milestone at which this feature was, or is targeted to be, at each stage.
3232
milestone:
3333
alpha: "v1.33"
34-
# beta: "v1.34"
34+
beta: "v1.35"
3535
# stable: "v1.35"
3636

3737
# The following PRR answers are required at alpha release

0 commit comments

Comments
 (0)