mirror of
https://github.com/open-cluster-management-io/ocm.git
synced 2026-02-14 10:00:11 +00:00
⚠️ 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
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:
@@ -11,7 +11,6 @@ import (
|
||||
appsv1 "k8s.io/api/apps/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/serializer"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
@@ -32,7 +31,6 @@ var chartScheme = runtime.NewScheme()
|
||||
func init() {
|
||||
_ = scheme.AddToScheme(chartScheme)
|
||||
_ = apiextensionsv1.AddToScheme(chartScheme)
|
||||
_ = apiextensionsv1beta1.AddToScheme(chartScheme)
|
||||
_ = operatorv1.AddToScheme(chartScheme)
|
||||
|
||||
decoder = serializer.NewCodecFactory(chartScheme).UniversalDeserializer()
|
||||
|
||||
@@ -19,7 +19,6 @@ import (
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
rbacv1 "k8s.io/api/rbac/v1"
|
||||
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
|
||||
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
|
||||
apiextensionsclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
|
||||
"k8s.io/apimachinery/pkg/api/equality"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
@@ -87,7 +86,6 @@ var (
|
||||
|
||||
func init() {
|
||||
utilruntime.Must(api.InstallKube(genericScheme))
|
||||
utilruntime.Must(apiextensionsv1beta1.AddToScheme(genericScheme))
|
||||
utilruntime.Must(apiextensionsv1.AddToScheme(genericScheme))
|
||||
utilruntime.Must(apiregistrationv1.AddToScheme(genericScheme))
|
||||
utilruntime.Must(admissionv1.AddToScheme(genericScheme))
|
||||
@@ -137,12 +135,6 @@ func CleanUpStaticObject(
|
||||
} else {
|
||||
err = apiExtensionClient.ApiextensionsV1().CustomResourceDefinitions().Delete(ctx, t.Name, metav1.DeleteOptions{})
|
||||
}
|
||||
case *apiextensionsv1beta1.CustomResourceDefinition:
|
||||
if apiExtensionClient == nil {
|
||||
err = fmt.Errorf("apiExtensionClient is nil")
|
||||
} else {
|
||||
err = apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Delete(ctx, t.Name, metav1.DeleteOptions{})
|
||||
}
|
||||
case *apiregistrationv1.APIService:
|
||||
if apiRegistrationClient == nil {
|
||||
err = fmt.Errorf("apiRegistrationClient is nil")
|
||||
@@ -516,8 +508,6 @@ func GenerateRelatedResource(objBytes []byte) (operatorapiv1.RelatedResourceMeta
|
||||
relatedResource = newRelatedResource(rbacv1.SchemeGroupVersion.WithResource("roles"), requiredObj)
|
||||
case *rbacv1.RoleBinding:
|
||||
relatedResource = newRelatedResource(rbacv1.SchemeGroupVersion.WithResource("rolebindings"), requiredObj)
|
||||
case *apiextensionsv1beta1.CustomResourceDefinition:
|
||||
relatedResource = newRelatedResource(apiextensionsv1beta1.SchemeGroupVersion.WithResource("customresourcedefinitions"), requiredObj)
|
||||
case *apiextensionsv1.CustomResourceDefinition:
|
||||
relatedResource = newRelatedResource(apiextensionsv1.SchemeGroupVersion.WithResource("customresourcedefinitions"), requiredObj)
|
||||
default:
|
||||
|
||||
@@ -304,7 +304,7 @@ func TestDeleteStaticObject(t *testing.T) {
|
||||
"secret": newUnstructured(
|
||||
"v1", "Secret", "ns1", "n1", map[string]interface{}{"data": map[string]interface{}{"key1": []byte("key1")}}),
|
||||
"crd": newUnstructured(
|
||||
"apiextensions.k8s.io/v1beta1", "CustomResourceDefinition", "", "", map[string]interface{}{}),
|
||||
"apiextensions.k8s.io/v1", "CustomResourceDefinition", "", "", map[string]interface{}{}),
|
||||
"kind1": newUnstructured(
|
||||
"v1", "Kind1", "ns1", "n1", map[string]interface{}{"spec": map[string]interface{}{"key1": []byte("key1")}}),
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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{
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/openshift/library-go/pkg/operator/resource/resourcehelper"
|
||||
"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"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/api/meta"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
@@ -45,8 +44,6 @@ var (
|
||||
)
|
||||
|
||||
func init() {
|
||||
// add apiextensions v1beta1 to scheme to support CustomResourceDefinition v1beta1
|
||||
_ = apiextensionsv1beta1.AddToScheme(genericScheme)
|
||||
_ = apiextensionsv1.AddToScheme(genericScheme)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user