Skip to content

Commit 9d77f18

Browse files
authored
Merge pull request #5191 from cici37/nsDeletion
[KEP5080]Promot OrderedNamespaceDeletion to GA in 1.34
2 parents 2cd9e56 + f8c7a78 commit 9d77f18

File tree

3 files changed

+36
-40
lines changed

3 files changed

+36
-40
lines changed
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
kep-number: 5080
2-
alpha:
2+
beta:
3+
approver: "@jpbetz"
4+
stable:
35
approver: "@jpbetz"

keps/sig-api-machinery/5080-ordered-namespace-deletion/README.md

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
- [Goals](#goals)
88
- [Non-Goals](#non-goals)
99
- [Proposal](#proposal)
10+
- [Feature Gate handling](#feature-gate-handling)
1011
- [User Stories (Optional)](#user-stories-optional)
1112
- [Story 1 - Pod VS NetworkPolicy](#story-1---pod-vs-networkpolicy)
1213
- [Story 2 - having finalizer conflicts with deletion order](#story-2---having-finalizer-conflicts-with-deletion-order)
@@ -24,7 +25,6 @@
2425
- [Integration tests](#integration-tests)
2526
- [e2e tests](#e2e-tests)
2627
- [Graduation Criteria](#graduation-criteria)
27-
- [Alpha](#alpha)
2828
- [Beta](#beta)
2929
- [GA](#ga)
3030
- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
@@ -140,6 +140,12 @@ the resources associated with this namespace should be deleted in order:
140140
- Wait for all the pods to be stopped or deleted.
141141
- Delete all the other resources in the namespace (in an undefined order).
142142

143+
### Feature Gate handling
144+
145+
Due to this KEP is addressing the security concern and we do wanna give options to close security gaps in the past,
146+
the feature gate will be introduced as beta and on by default in 1.33 release. We will backport the feature gate with off-by-default
147+
configuration to all supported releases. See [the detailed discussion on slack](https://kubernetes.slack.com/archives/CJH2GBF7Y/p1741258168683299)
148+
143149
### User Stories (Optional)
144150

145151
#### Story 1 - Pod VS NetworkPolicy
@@ -348,24 +354,17 @@ in back-to-back releases.
348354
- Address feedback on usage/changed behavior, provided on GitHub issues
349355
- Deprecate the flag
350356
-->
351-
#### Alpha
357+
#### Beta
352358

353359
- Feature implemented behind a feature flag
354360
- Initial e2e tests completed and enabled
355-
356-
#### Beta
357-
358-
- Gather feedback from developers and surveys
359361
- Complete features specified in the KEP
360362
- Proper metrics added
361363
- Additional tests are in Testgrid and linked in KEP
362364

363365
#### GA
364366

365-
- N examples of real-world usage
366-
- N installs
367-
- More rigorous forms of testing—e.g., downgrade tests and scalability tests
368-
- Allowing time for feedback
367+
- Related [CVE](https://github.com/kubernetes/kubernetes/issues/126587) has been mitigated
369368
- Conformance tests
370369

371370
**Note:** Generally we also wait at least two releases between beta and
@@ -444,13 +443,15 @@ feature flags will be enabled on some API servers and not others during the
444443
rollout. Similarly, consider large clusters and how enablement/disablement
445444
will rollout across nodes.
446445
-->
446+
This feature should not impact rollout.
447447

448448
###### What specific metrics should inform a rollback?
449449

450450
<!--
451451
What signals should users be paying attention to when the feature is young
452452
that might indicate a serious problem?
453453
-->
454+
N/A
454455

455456
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
456457

@@ -459,12 +460,14 @@ Describe manual testing that was done and the outcomes.
459460
Longer term, we may want to require automated upgrade/rollback tests, but we
460461
are missing a bunch of machinery and tooling and can't do that now.
461462
-->
463+
N/A
462464

463465
###### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?
464466

465467
<!--
466468
Even if applying deprecation policies, they may still surprise some users.
467469
-->
470+
No.
468471

469472
### Monitoring Requirements
470473

@@ -482,6 +485,7 @@ Ideally, this should be a metric. Operations against the Kubernetes API (e.g.,
482485
checking if there are objects with field X set) may be a last resort. Avoid
483486
logs or events for this purpose.
484487
-->
488+
Check if the feature gate is enabled. The feature is a security fix which should not be user detectable.
485489

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

@@ -494,13 +498,7 @@ and operation of this feature.
494498
Recall that end users cannot usually observe component logs or access metrics.
495499
-->
496500

497-
- [ ] Events
498-
- Event Reason:
499-
- [ ] API .status
500-
- Condition name:
501-
- Other field:
502-
- [ ] Other (treat as last resort)
503-
- Details:
501+
N/A
504502

505503
###### What are the reasonable SLOs (Service Level Objectives) for the enhancement?
506504

@@ -518,26 +516,22 @@ high level (needs more precise definitions) those may be things like:
518516
These goals will help you determine what you need to measure (SLIs) in the next
519517
question.
520518
-->
519+
The feature only affect namespace deletion and should not affect existing SLOs.
521520

522521
###### What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?
523522

524523
<!--
525524
Pick one more of these and delete the rest.
526525
-->
527-
528-
- [ ] Metrics
529-
- Metric name:
530-
- [Optional] Aggregation method:
531-
- Components exposing the metric:
532-
- [ ] Other (treat as last resort)
533-
- Details:
526+
The error or blocker will be updated to namespace status subresource to follow the existing pattern.
534527

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

537530
<!--
538531
Describe the metrics themselves and the reasons why they weren't added (e.g., cost,
539532
implementation difficulties, etc.).
540533
-->
534+
Namespace status will be used to capture the possible error or blockers while deletion.
541535

542536
### Dependencies
543537

@@ -561,7 +555,7 @@ and creating new ones, as well as about cluster-level services (e.g. DNS):
561555
- Impact of its outage on the feature:
562556
- Impact of its degraded performance or high-error rates on the feature:
563557
-->
564-
558+
No.
565559
### Scalability
566560

567561
<!--
@@ -588,6 +582,7 @@ Focusing mostly on:
588582
- periodic API calls to reconcile state (e.g. periodic fetching state,
589583
heartbeats, leader election, etc.)
590584
-->
585+
No.
591586

592587
###### Will enabling / using this feature result in introducing new API types?
593588

@@ -597,15 +592,15 @@ Describe them, providing:
597592
- Supported number of objects per cluster
598593
- Supported number of objects per namespace (for namespace-scoped objects)
599594
-->
600-
595+
No.
601596
###### Will enabling / using this feature result in any new calls to the cloud provider?
602597

603598
<!--
604599
Describe them, providing:
605600
- Which API(s):
606601
- Estimated increase:
607602
-->
608-
603+
No.
609604
###### Will enabling / using this feature result in increasing size or count of the existing API objects?
610605

611606
<!--
@@ -614,7 +609,7 @@ Describe them, providing:
614609
- Estimated increase in size: (e.g., new annotation of size 32B)
615610
- Estimated amount of new objects: (e.g., new Object X for every existing Pod)
616611
-->
617-
612+
No.
618613
###### Will enabling / using this feature result in increasing time taken by any operations covered by existing SLIs/SLOs?
619614

620615
<!--
@@ -625,7 +620,7 @@ Think about adding additional work or introducing new steps in between
625620
626621
[existing SLIs/SLOs]: https://git.k8s.io/community/sig-scalability/slos/slos.md#kubernetes-slisslos
627622
-->
628-
623+
No.
629624
###### Will enabling / using this feature result in non-negligible increase of resource usage (CPU, RAM, disk, IO, ...) in any components?
630625

631626
<!--
@@ -637,7 +632,7 @@ This through this both in small and large cases, again with respect to the
637632
638633
[supported limits]: https://git.k8s.io/community//sig-scalability/configs-and-limits/thresholds.md
639634
-->
640-
635+
No.
641636
###### Can enabling / using this feature result in resource exhaustion of some node resources (PIDs, sockets, inodes, etc.)?
642637

643638
<!--
@@ -649,7 +644,7 @@ If any of the resources can be exhausted, how this is mitigated with the existin
649644
Are there any tests that were run/should be run to understand performance characteristics better
650645
and validate the declared limits?
651646
-->
652-
647+
No.
653648
### Troubleshooting
654649

655650
<!--
@@ -664,7 +659,7 @@ details). For now, we leave it here.
664659
-->
665660

666661
###### How does this feature react if the API server and/or etcd is unavailable?
667-
662+
The namespace controller will act exactly the same with/without this feature.
668663
###### What are other known failure modes?
669664

670665
<!--
@@ -679,9 +674,9 @@ For each of them, fill in the following information by copying the below templat
679674
Not required until feature graduated to beta.
680675
- Testing: Are there any tests for failure mode? If not, describe why.
681676
-->
682-
677+
Namespace deletion might hang if pod resources deletion running into issues with the feature gate enabled.
683678
###### What steps should be taken if SLOs are not being met to determine the problem?
684-
679+
Delete the blocking resources manually.
685680
## Implementation History
686681

687682
<!--

keps/sig-api-machinery/5080-ordered-namespace-deletion/kep.yaml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,17 @@ see-also: []
2020
replaces: []
2121

2222
# The target maturity stage in the current dev cycle for this KEP.
23-
stage: alpha
23+
stage: stable
2424

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

3030
# The milestone at which this feature was, or is targeted to be, at each stage.
3131
milestone:
32-
alpha: "v1.33"
33-
beta: ""
34-
stable: ""
32+
beta: "1.30"
33+
stable: "1.34"
3534

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

0 commit comments

Comments
 (0)