diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index fdcf4740f33..60ff51c12f4 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -2182,6 +2182,7 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate zpagesfeatures.ComponentFlagz: { {Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Alpha}, + {Version: version.MustParse("1.36"), Default: true, PreRelease: featuregate.Beta}, }, zpagesfeatures.ComponentStatusz: { diff --git a/pkg/kubelet/server/server_test.go b/pkg/kubelet/server/server_test.go index 8529e0b0fb6..f8b1c0d65f0 100644 --- a/pkg/kubelet/server/server_test.go +++ b/pkg/kubelet/server/server_test.go @@ -569,9 +569,9 @@ func TestStatusz(t *testing.T) { t.Fatalf("Got error reading response body: %v", err) } - reg := regexp.MustCompile(`Paths([:=\s]+)/configz /debug /healthz /metrics\n$`) + reg := regexp.MustCompile(`Paths([:=\s]+)/configz /debug /flagz /healthz /metrics\n$`) if reg.FindStringSubmatch(string(resBody)) == nil { - t.Errorf("statusz paths missing: %s\n\nExpected: %q", string(resBody), "Paths /configz /debug /healthz /metrics") + t.Errorf("statusz paths missing: %s\n\nExpected: %q", string(resBody), "Paths /configz /debug /flagz /healthz /metrics") } } diff --git a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml index afe2f682bbd..bd7c3d8afb3 100644 --- a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml +++ b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml @@ -1001,6 +1001,7 @@ items: name: system:monitoring rules: - nonResourceURLs: + - /flagz - /healthz - /healthz/* - /livez diff --git a/staging/src/k8s.io/component-base/zpages/features/kube_features.go b/staging/src/k8s.io/component-base/zpages/features/kube_features.go index e09b89f0865..91b45dfeed1 100644 --- a/staging/src/k8s.io/component-base/zpages/features/kube_features.go +++ b/staging/src/k8s.io/component-base/zpages/features/kube_features.go @@ -40,6 +40,7 @@ func featureGates() map[featuregate.Feature]featuregate.VersionedSpecs { return map[featuregate.Feature]featuregate.VersionedSpecs{ ComponentFlagz: { {Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Alpha}, + {Version: version.MustParse("1.36"), Default: true, PreRelease: featuregate.Beta}, }, ComponentStatusz: { {Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Alpha}, diff --git a/test/compatibility_lifecycle/reference/feature_list.md b/test/compatibility_lifecycle/reference/feature_list.md index 8b51d9798b2..5ca82d1be72 100644 --- a/test/compatibility_lifecycle/reference/feature_list.md +++ b/test/compatibility_lifecycle/reference/feature_list.md @@ -39,7 +39,7 @@ | CloudControllerManagerWebhook | | | 1.27– | | | | | [code](https://cs.k8s.io/?q=%5CbCloudControllerManagerWebhook%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbCloudControllerManagerWebhook%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | ClusterTrustBundle | | | 1.27–1.32 | 1.33– | | | | [code](https://cs.k8s.io/?q=%5CbClusterTrustBundle%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbClusterTrustBundle%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | ClusterTrustBundleProjection | | | 1.29–1.32 | 1.33– | | | ClusterTrustBundle | [code](https://cs.k8s.io/?q=%5CbClusterTrustBundleProjection%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbClusterTrustBundleProjection%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | -| ComponentFlagz | | | 1.32– | | | | | [code](https://cs.k8s.io/?q=%5CbComponentFlagz%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbComponentFlagz%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | +| ComponentFlagz | :ballot_box_with_check: 1.36+ | | 1.32–1.35 | 1.36– | | | | [code](https://cs.k8s.io/?q=%5CbComponentFlagz%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbComponentFlagz%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | ComponentStatusz | :ballot_box_with_check: 1.36+ | | 1.32–1.35 | 1.36– | | | | [code](https://cs.k8s.io/?q=%5CbComponentStatusz%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbComponentStatusz%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | ConcurrentWatchObjectDecode | | | | 1.31– | | | | [code](https://cs.k8s.io/?q=%5CbConcurrentWatchObjectDecode%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbConcurrentWatchObjectDecode%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | | ConsistentListFromCache | :ballot_box_with_check: 1.31+ | :closed_lock_with_key: 1.34+ | 1.28–1.30 | 1.31–1.33 | 1.34– | | | [code](https://cs.k8s.io/?q=%5CbConsistentListFromCache%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/kubernetes) [KEPs](https://cs.k8s.io/?q=%5CbConsistentListFromCache%5Cb&i=nope&files=&excludeFiles=CHANGELOG&repos=kubernetes/enhancements) | diff --git a/test/compatibility_lifecycle/reference/versioned_feature_list.yaml b/test/compatibility_lifecycle/reference/versioned_feature_list.yaml index 0de481753db..7673fe9909a 100644 --- a/test/compatibility_lifecycle/reference/versioned_feature_list.yaml +++ b/test/compatibility_lifecycle/reference/versioned_feature_list.yaml @@ -237,6 +237,10 @@ lockToDefault: false preRelease: Alpha version: "1.32" + - default: true + lockToDefault: false + preRelease: Beta + version: "1.36" - name: ComponentStatusz versionedSpecs: - default: false diff --git a/test/integration/controlplane/kube_apiserver_test.go b/test/integration/controlplane/kube_apiserver_test.go index c994b7cdf32..8d73a216f14 100644 --- a/test/integration/controlplane/kube_apiserver_test.go +++ b/test/integration/controlplane/kube_apiserver_test.go @@ -309,7 +309,7 @@ func TestStatusz(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "apiserver", }, - Paths: []string{"/healthz", "/livez", "/metrics", "/readyz", "/statusz", "/version"}, + Paths: []string{"/flagz", "/healthz", "/livez", "/metrics", "/readyz", "/statusz", "/version"}, } wantBodyBeta := &statuszv1beta1.Statusz{ TypeMeta: metav1.TypeMeta{ @@ -319,7 +319,7 @@ func TestStatusz(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "apiserver", }, - Paths: []string{"/healthz", "/livez", "/metrics", "/readyz", "/statusz", "/version"}, + Paths: []string{"/flagz", "/healthz", "/livez", "/metrics", "/readyz", "/statusz", "/version"}, } for _, tc := range []struct {