Merge pull request #138281 from Jefftree/fix-map-sv

Pin MutatingAdmissionPolicy storage version to v1beta1
This commit is contained in:
Kubernetes Prow Robot
2026-04-09 19:14:23 +05:30
committed by GitHub
2 changed files with 7 additions and 8 deletions

View File

@@ -28,6 +28,7 @@ import (
"k8s.io/apiserver/pkg/util/compatibility"
basecompatibility "k8s.io/component-base/compatibility"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/apis/admissionregistration"
"k8s.io/kubernetes/pkg/apis/apps"
"k8s.io/kubernetes/pkg/apis/certificates"
"k8s.io/kubernetes/pkg/apis/coordination"
@@ -80,6 +81,8 @@ func NewStorageFactoryConfigEffectiveVersion(effectiveVersion basecompatibility.
// TODO (https://github.com/kubernetes/kubernetes/issues/108451): remove the override in 1.25.
// apisstorage.Resource("csistoragecapacities").WithVersion("v1beta1"),
coordination.Resource("leasecandidates").WithVersion("v1beta1"),
admissionregistration.Resource("mutatingadmissionpolicies").WithVersion("v1beta1"), // TODO: remove in 1.37.
admissionregistration.Resource("mutatingadmissionpolicybindings").WithVersion("v1beta1"), // TODO: remove in 1.37.
certificates.Resource("clustertrustbundles").WithVersion("v1beta1"),
certificates.Resource("podcertificaterequests").WithVersion("v1beta1"),
storagemigration.Resource("storagemigrations").WithVersion("v1beta1"),

View File

@@ -18,7 +18,6 @@ package etcd
import (
"fmt"
"maps"
"strings"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
@@ -493,14 +492,12 @@ func GetEtcdStorageDataForNamespaceServedAt(namespace string, v string, isEmulat
gvr("admissionregistration.k8s.io", "v1beta1", "mutatingadmissionpolicies"): {
Stub: `{"metadata":{"name":"map1b1"},"spec":{"paramKind":{"apiVersion":"test.example.com/v1","kind":"Example"},"matchConstraints":{"resourceRules": [{"resourceNames": ["fakeName"], "apiGroups":["apps"],"apiVersions":["v1"],"operations":["CREATE", "UPDATE"], "resources":["deployments"]}]},"reinvocationPolicy": "IfNeeded","mutations":[{"applyConfiguration": {"expression":"Object{metadata: Object.metadata{labels: {'example':'true'}}}"}, "patchType":"ApplyConfiguration"}]}}`,
ExpectedEtcdPath: "/registry/mutatingadmissionpolicies/map1b1",
ExpectedGVK: gvkP("admissionregistration.k8s.io", "v1beta1", "MutatingAdmissionPolicy"),
IntroducedVersion: "1.34",
RemovedVersion: "1.40",
},
gvr("admissionregistration.k8s.io", "v1beta1", "mutatingadmissionpolicybindings"): {
Stub: `{"metadata":{"name":"mpb1b1"},"spec":{"policyName":"replicalimit-policy.example.com","paramRef":{"name":"replica-limit-test.example.com", "parameterNotFoundAction": "Allow"}}}`,
ExpectedEtcdPath: "/registry/mutatingadmissionpolicybindings/mpb1b1",
ExpectedGVK: gvkP("admissionregistration.k8s.io", "v1beta1", "MutatingAdmissionPolicyBinding"),
IntroducedVersion: "1.34",
RemovedVersion: "1.40",
},
@@ -771,17 +768,16 @@ func GetEtcdStorageDataForNamespaceServedAt(namespace string, v string, isEmulat
}
if isEmulation {
fullEtcdStorageData := maps.Clone(etcdStorageData)
for key := range etcdStorageData {
if strings.Contains(key.Version, "alpha") {
delete(etcdStorageData, key)
}
}
// match the resource to the correct storage version for emulated version
}
// match the resource to the correct storage version for emulated version
if isEmulation {
for key, data := range etcdStorageData {
storageVersion := storageVersionAtEmulationVersion(key, data.ExpectedGVK, v, fullEtcdStorageData)
storageVersion := storageVersionAtEmulationVersion(key, data.ExpectedGVK, v, etcdStorageData)
if storageVersion == "" {
continue
}