diff --git a/pkg/reconciler/knativeserving/common/gateway_test.go b/pkg/reconciler/knativeserving/common/gateway_test.go index 9a6399e1..7cc5248e 100644 --- a/pkg/reconciler/knativeserving/common/gateway_test.go +++ b/pkg/reconciler/knativeserving/common/gateway_test.go @@ -19,12 +19,16 @@ import ( "testing" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/client-go/kubernetes/scheme" - "k8s.io/apimachinery/pkg/runtime" "knative.dev/pkg/apis/istio/v1alpha3" servingv1alpha1 "knative.dev/serving-operator/pkg/apis/serving/v1alpha1" ) +func init() { + v1alpha3.AddToScheme(scheme.Scheme) +} + type updateGatewayTest struct { name string gatewayName string @@ -119,7 +123,7 @@ func runGatewayTransformTest(t *testing.T, tt *updateGatewayTest) { func validateUnstructedGatewayChanged(t *testing.T, tt *updateGatewayTest, u *unstructured.Unstructured) { var gateway = &v1alpha3.Gateway{} - err := runtime.DefaultUnstructuredConverter.FromUnstructured(u.Object, gateway) + err := scheme.Scheme.Convert(u, gateway, nil) assertEqual(t, err, nil) for expectedKey, expectedValue := range tt.expected { assertEqual(t, gateway.Spec.Selector[expectedKey], expectedValue) @@ -135,11 +139,10 @@ func makeUnstructuredGateway(t *testing.T, tt *updateGatewayTest) unstructured.U gateway.APIVersion = "networking.istio.io/v1alpha3" gateway.Kind = "Gateway" gateway.Name = tt.gatewayName - unstructuredDeployment, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&gateway) + result := unstructured.Unstructured{} + err := scheme.Scheme.Convert(&gateway, &result, nil) if err != nil { - t.Fatalf("Could not create unstructured deployment object: %v, err: %v", unstructuredDeployment, err) - } - return unstructured.Unstructured{ - Object: unstructuredDeployment, + t.Fatalf("Could not create unstructured deployment object: %v, err: %v", result, err) } + return result } diff --git a/pkg/reconciler/knativeserving/common/images.go b/pkg/reconciler/knativeserving/common/images.go index 43af04fb..b24024df 100644 --- a/pkg/reconciler/knativeserving/common/images.go +++ b/pkg/reconciler/knativeserving/common/images.go @@ -20,15 +20,18 @@ import ( mf "github.com/jcrossley3/manifestival" "go.uber.org/zap" - appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/kubernetes/scheme" caching "knative.dev/caching/pkg/apis/caching/v1alpha1" servingv1alpha1 "knative.dev/serving-operator/pkg/apis/serving/v1alpha1" ) +func init() { + caching.AddToScheme(scheme.Scheme) +} + var ( // The string to be replaced by the container name containerNameVariable = "${NAME}" @@ -56,7 +59,7 @@ func ImageTransform(instance *servingv1alpha1.KnativeServing, log *zap.SugaredLo func updateDeployment(instance *servingv1alpha1.KnativeServing, u *unstructured.Unstructured, log *zap.SugaredLogger) error { var deployment = &appsv1.Deployment{} - err := runtime.DefaultUnstructuredConverter.FromUnstructured(u.Object, deployment) + err := scheme.Scheme.Convert(u, deployment, nil) if err != nil { log.Error(err, "Error converting Unstructured to Deployment", "unstructured", u, "deployment", deployment) return err @@ -67,7 +70,7 @@ func updateDeployment(instance *servingv1alpha1.KnativeServing, u *unstructured. updateDeploymentImage(deployment, ®istry, log) updatePodImagePullSecrets(deployment, ®istry, log) - err = updateUnstructured(u, deployment, log) + err = scheme.Scheme.Convert(deployment, u, nil) if err != nil { return err } @@ -76,16 +79,6 @@ func updateDeployment(instance *servingv1alpha1.KnativeServing, u *unstructured. return nil } -func updateUnstructured(u *unstructured.Unstructured, obj interface{}, log *zap.SugaredLogger) error { - unstructuredObj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&obj) - if err != nil { - log.Error(err, "Error converting obj to Unstructured", "unstructured", u, "obj", obj) - return err - } - u.SetUnstructuredContent(unstructuredObj) - return nil -} - // updateDeploymentImage updates the image of the deployment with a new registry and tag func updateDeploymentImage(deployment *appsv1.Deployment, registry *servingv1alpha1.Registry, log *zap.SugaredLogger) { containers := deployment.Spec.Template.Spec.Containers @@ -101,7 +94,7 @@ func updateDeploymentImage(deployment *appsv1.Deployment, registry *servingv1alp func updateCachingImage(instance *servingv1alpha1.KnativeServing, u *unstructured.Unstructured) error { var image = &caching.Image{} - err := runtime.DefaultUnstructuredConverter.FromUnstructured(u.Object, image) + err := scheme.Scheme.Convert(u, image, nil) if err != nil { log.Error(err, "Error converting Unstructured to Image", "unstructured", u, "image", image) return err @@ -111,7 +104,7 @@ func updateCachingImage(instance *servingv1alpha1.KnativeServing, u *unstructure log.Debugw("Updating Image", "name", u.GetName(), "registry", registry) updateImageSpec(image, ®istry, log) - err = updateUnstructured(u, image, log) + err = scheme.Scheme.Convert(image, u, nil) if err != nil { return err } diff --git a/pkg/reconciler/knativeserving/common/images_test.go b/pkg/reconciler/knativeserving/common/images_test.go index b2f95aca..74ea1843 100644 --- a/pkg/reconciler/knativeserving/common/images_test.go +++ b/pkg/reconciler/knativeserving/common/images_test.go @@ -23,7 +23,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/kubernetes/scheme" caching "knative.dev/caching/pkg/apis/caching/v1alpha1" servingv1alpha1 "knative.dev/serving-operator/pkg/apis/serving/v1alpha1" @@ -131,7 +131,7 @@ func runDeploymentTransformTest(t *testing.T, tt *updateDeploymentImageTest) { func validateUnstructedDeploymentChanged(t *testing.T, tt *updateDeploymentImageTest, u *unstructured.Unstructured) { var deployment = &appsv1.Deployment{} - err := runtime.DefaultUnstructuredConverter.FromUnstructured(u.Object, deployment) + err := scheme.Scheme.Convert(u, deployment, nil) assertEqual(t, err, nil) for i, expected := range tt.expected { assertEqual(t, deployment.Spec.Template.Spec.Containers[i].Image, expected) @@ -155,13 +155,12 @@ func makeDeployment(t *testing.T, name string, podSpec corev1.PodSpec) *appsv1.D } func makeUnstructured(t *testing.T, obj interface{}) unstructured.Unstructured { - unstructuredObject, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&obj) + var result = unstructured.Unstructured{} + err := scheme.Scheme.Convert(obj, &result, nil) if err != nil { - t.Fatalf("Could not create unstructured object: %v, err: %v", unstructuredObject, err) - } - return unstructured.Unstructured{ - Object: unstructuredObject, + t.Fatalf("Could not create unstructured object: %v, err: %v", result, err) } + return result } type updateImageSpecTest struct { @@ -203,7 +202,7 @@ func runImageTransformTest(t *testing.T, tt *updateImageSpecTest) { func validateUnstructedImageChanged(t *testing.T, tt *updateImageSpecTest, u *unstructured.Unstructured) { var image = &caching.Image{} - err := runtime.DefaultUnstructuredConverter.FromUnstructured(u.Object, image) + err := scheme.Scheme.Convert(u, image, nil) assertEqual(t, err, nil) assertEqual(t, image.Spec.Image, tt.expected) } @@ -293,7 +292,7 @@ func runImagePullSecretsTest(t *testing.T, tt *addImagePullSecretsTest) { deploymentTransform(&unstructuredDeployment) var deployment = &appsv1.Deployment{} - err := runtime.DefaultUnstructuredConverter.FromUnstructured(unstructuredDeployment.Object, deployment) + err := scheme.Scheme.Convert(&unstructuredDeployment, deployment, nil) assertEqual(t, err, nil) assertDeepEqual(t, deployment.Spec.Template.Spec.ImagePullSecrets, tt.expectedSecrets)