Skip to content
This repository was archived by the owner on Jun 24, 2020. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 10 additions & 7 deletions pkg/reconciler/knativeserving/common/gateway_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -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
}
25 changes: 9 additions & 16 deletions pkg/reconciler/knativeserving/common/images.go
Original file line number Diff line number Diff line change
Expand Up @@ -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}"
Expand Down Expand Up @@ -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
Expand All @@ -67,7 +70,7 @@ func updateDeployment(instance *servingv1alpha1.KnativeServing, u *unstructured.

updateDeploymentImage(deployment, &registry, log)
updatePodImagePullSecrets(deployment, &registry, log)
err = updateUnstructured(u, deployment, log)
err = scheme.Scheme.Convert(deployment, u, nil)
if err != nil {
return err
}
Expand All @@ -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
Expand All @@ -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
Expand All @@ -111,7 +104,7 @@ func updateCachingImage(instance *servingv1alpha1.KnativeServing, u *unstructure
log.Debugw("Updating Image", "name", u.GetName(), "registry", registry)

updateImageSpec(image, &registry, log)
err = updateUnstructured(u, image, log)
err = scheme.Scheme.Convert(image, u, nil)
if err != nil {
return err
}
Expand Down
17 changes: 8 additions & 9 deletions pkg/reconciler/knativeserving/common/images_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down Expand Up @@ -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)
Expand All @@ -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 {
Expand Down Expand Up @@ -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)
}
Expand Down Expand Up @@ -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)
Expand Down