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 )
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
444443rollout. Similarly, consider large clusters and how enablement/disablement
445444will rollout across nodes.
446445-->
446+ This feature should not impact rollout.
447447
448448###### What specific metrics should inform a rollback?
449449
450450<!--
451451What signals should users be paying attention to when the feature is young
452452that 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.
459460Longer term, we may want to require automated upgrade/rollback tests, but we
460461are 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<!--
466468Even 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.,
482485checking if there are objects with field X set) may be a last resort. Avoid
483486logs 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.
494498Recall 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:
518516These goals will help you determine what you need to measure (SLIs) in the next
519517question.
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<!--
525524Pick 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<!--
538531Describe the metrics themselves and the reasons why they weren't added (e.g., cost,
539532implementation 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<!--
604599Describe 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
649644Are there any tests that were run/should be run to understand performance characteristics better
650645and 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<!--
0 commit comments