⚠️ Remove crd apiextensions v1beta1 (#1095)
Some checks failed
Post / coverage (push) Failing after 39m34s
Post / images (amd64) (push) Failing after 8m31s
Post / images (arm64) (push) Failing after 7m55s
Post / image manifest (push) Has been skipped
Post / trigger clusteradm e2e (push) Has been skipped
Scorecard supply-chain security / Scorecard analysis (push) Failing after 1m53s
Close stale issues and PRs / stale (push) Successful in 56s

* Remove crd apiextensions v1beta1

Signed-off-by: zhujian <jiazhu@redhat.com>

* fix unit test

Signed-off-by: zhujian <jiazhu@redhat.com>

---------

Signed-off-by: zhujian <jiazhu@redhat.com>
This commit is contained in:
Jian Zhu
2025-07-30 09:59:42 +08:00
committed by GitHub
parent 9311ed7abf
commit aa660678a4
6 changed files with 2 additions and 118 deletions

View File

@@ -9,7 +9,6 @@ import (
"github.com/openshift/library-go/pkg/operator/resource/resourceapply"
"github.com/openshift/library-go/pkg/operator/resource/resourcemerge"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -41,11 +40,10 @@ var (
func init() {
utilruntime.Must(apiextensionsv1.AddToScheme(genericScheme))
utilruntime.Must(apiextensionsv1beta1.AddToScheme(genericScheme))
}
type CRD interface {
*apiextensionsv1.CustomResourceDefinition | *apiextensionsv1beta1.CustomResourceDefinition
*apiextensionsv1.CustomResourceDefinition
}
type Manager[T CRD] struct {
@@ -284,10 +282,3 @@ func EqualV1(old, new *apiextensionsv1.CustomResourceDefinition) bool {
resourcemerge.EnsureCustomResourceDefinitionV1(modified, old, *new)
return !*modified
}
func EqualV1Beta1(old, new *apiextensionsv1beta1.CustomResourceDefinition) bool {
modified := pointer.Bool(false)
resourcemerge.EnsureCustomResourceDefinitionV1Beta1(modified, old, *new)
return !*modified
}

View File

@@ -12,7 +12,6 @@ import (
"testing"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
fakeapiextensions "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake"
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -106,80 +105,6 @@ func TestApplyV1CRD(t *testing.T) {
}
}
func TestApplyV1Beta1CRD(t *testing.T) {
cases := []struct {
name string
desiredVersion string
requiredCRDs []runtime.Object
existingCRDs []runtime.Object
verify func(t *testing.T, actions []clienttesting.Action)
}{
{
name: "create crd",
desiredVersion: "v0.9.0",
requiredCRDs: []runtime.Object{newV1Beta1CRD("foo", "")},
existingCRDs: []runtime.Object{},
verify: func(t *testing.T, actions []clienttesting.Action) {
testingcommon.AssertActions(t, actions, "get", "create")
},
},
{
name: "update crd",
desiredVersion: "v0.9.0-16-g889bd8b",
requiredCRDs: []runtime.Object{newV1Beta1CRD("foo", "")},
existingCRDs: []runtime.Object{newV1Beta1CRD("foo", "v0.8.0")},
verify: func(t *testing.T, actions []clienttesting.Action) {
testingcommon.AssertActions(t, actions, "get", "update")
obj := actions[1].(clienttesting.UpdateActionImpl).Object
assertCRDVersion(t, obj, "0.9.0-16-g889bd8b")
},
},
{
name: "update crd from none",
desiredVersion: "v0.9.0-16-g889bd8b",
requiredCRDs: []runtime.Object{newV1Beta1CRD("foo", "")},
existingCRDs: []runtime.Object{newV1Beta1CRD("foo", "")},
verify: func(t *testing.T, actions []clienttesting.Action) {
testingcommon.AssertActions(t, actions, "get", "update")
obj := actions[1].(clienttesting.UpdateActionImpl).Object
assertCRDVersion(t, obj, "0.9.0-16-g889bd8b")
},
},
{
name: "noop crd",
desiredVersion: "v0.8.0-16-g889bd8b",
requiredCRDs: []runtime.Object{newV1Beta1CRD("foo", "")},
existingCRDs: []runtime.Object{newV1Beta1CRD("foo", "v0.9.0")},
verify: func(t *testing.T, actions []clienttesting.Action) {
testingcommon.AssertActions(t, actions, "get")
},
},
}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
client := fakeapiextensions.NewSimpleClientset(c.existingCRDs...)
manager := NewManager[*apiextensionsv1beta1.CustomResourceDefinition](client.ApiextensionsV1beta1().CustomResourceDefinitions(), EqualV1Beta1)
v, _ := versionutil.ParseSemantic(c.desiredVersion)
manager.version = v
var indices []string
for i := range c.requiredCRDs {
indices = append(indices, fmt.Sprintf("%d", i))
}
err := manager.Apply(context.TODO(), func(index string) ([]byte, error) {
i, _ := strconv.Atoi(index)
return json.Marshal(c.requiredCRDs[i])
}, indices...)
if err != nil {
t.Errorf("apply error: %v", err)
}
c.verify(t, client.Actions())
})
}
}
func TestClean(t *testing.T) {
cases := []struct {
name string
@@ -263,23 +188,6 @@ func TestClean(t *testing.T) {
}
}
func newV1Beta1CRD(name, version string) *apiextensionsv1beta1.CustomResourceDefinition {
crd := &apiextensionsv1beta1.CustomResourceDefinition{
TypeMeta: metav1.TypeMeta{
APIVersion: "apiextensions.k8s.io/v1beta1",
Kind: "CustomResourceDefinition",
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
}
if len(version) > 0 {
crd.Annotations = map[string]string{versionAnnotationKey: version}
}
return crd
}
func newV1CRD(name, version string) *apiextensionsv1.CustomResourceDefinition {
crd := &apiextensionsv1.CustomResourceDefinition{
TypeMeta: metav1.TypeMeta{