Skip to content

Commit

Permalink
instead of maintaining local maker utils on the test, move them up to…
Browse files Browse the repository at this point in the history
… existing util.go file. Make Daemon set was already there, but unused. (#1641)

Signed-off-by: Matthias Wessendorf <[email protected]>
Co-authored-by: Matthias Wessendorf <[email protected]>
  • Loading branch information
knative-prow-robot and matzew authored Nov 30, 2023
1 parent abb9d09 commit 4773038
Show file tree
Hide file tree
Showing 2 changed files with 91 additions and 105 deletions.
113 changes: 8 additions & 105 deletions pkg/reconciler/common/images_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import (

"go.uber.org/zap"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes/scheme"
caching "knative.dev/caching/pkg/apis/caching/v1alpha1"
"knative.dev/operator/pkg/apis/operator/base"
Expand Down Expand Up @@ -244,39 +243,39 @@ func TestResourceTransform(t *testing.T) {
util.AssertDeepEqual(t, deployment.Spec.Template.Spec.Containers, tt.expected)

// test for daemonSet
unstructuredDaemonSet := util.MakeUnstructured(t, makeDaemonSet(tt.name, podSpec))
unstructuredDaemonSet := util.MakeUnstructured(t, util.MakeDaemonSet(tt.name, podSpec))
transform(&unstructuredDaemonSet)
daemonSet := &appsv1.DaemonSet{}
err = scheme.Scheme.Convert(&unstructuredDaemonSet, daemonSet, nil)
util.AssertEqual(t, err, nil)
util.AssertDeepEqual(t, daemonSet.Spec.Template.Spec.Containers, tt.expected)

// test for job
unstructuredJob := util.MakeUnstructured(t, makeJob(tt.name, podSpec))
unstructuredJob := util.MakeUnstructured(t, util.MakeJob(tt.name, podSpec))
transform(&unstructuredJob)
job := &batchv1.Job{}
err = scheme.Scheme.Convert(&unstructuredJob, job, nil)
util.AssertEqual(t, err, nil)
util.AssertDeepEqual(t, job.Spec.Template.Spec.Containers, tt.expected)

// test for job with generated name
unstructuredJobGenerated := util.MakeUnstructured(t, makeJobGenerated(tt.name, podSpec))
unstructuredJobGenerated := util.MakeUnstructured(t, util.MakeJobGenerated(tt.name, podSpec))
transform(&unstructuredJobGenerated)
jobGenerated := &batchv1.Job{}
err = scheme.Scheme.Convert(&unstructuredJobGenerated, jobGenerated, nil)
util.AssertEqual(t, err, nil)
util.AssertDeepEqual(t, jobGenerated.Spec.Template.Spec.Containers, tt.expected)

// test for job with generated name and name
unstructuredJobGeneratedName := util.MakeUnstructured(t, makeJobNameGeneratedName(tt.name+"non-generated", tt.name, podSpec))
unstructuredJobGeneratedName := util.MakeUnstructured(t, util.MakeJobNameGeneratedName(tt.name+"non-generated", tt.name, podSpec))
transform(&unstructuredJobGeneratedName)
jobGeneratedName := &batchv1.Job{}
err = scheme.Scheme.Convert(&unstructuredJobGeneratedName, jobGeneratedName, nil)
util.AssertEqual(t, err, nil)
util.AssertDeepEqual(t, jobGeneratedName.Spec.Template.Spec.Containers, tt.expected)

// test for statefulset
unstructuredStatefulSet := util.MakeUnstructured(t, makeStatefulSet(tt.name, podSpec))
unstructuredStatefulSet := util.MakeUnstructured(t, util.MakeStatefulSet(tt.name, podSpec))
transform(&unstructuredStatefulSet)
statefulSet := &appsv1.StatefulSet{}
err = scheme.Scheme.Convert(&unstructuredStatefulSet, statefulSet, nil)
Expand Down Expand Up @@ -346,7 +345,7 @@ func TestImageTransform(t *testing.T) {
},
}} {
t.Run(tt.name, func(t *testing.T) {
unstructuredImage := util.MakeUnstructured(t, makeImage(tt.name, tt.in))
unstructuredImage := util.MakeUnstructured(t, util.MakeImage(tt.name, tt.in))
instance := &v1beta1.KnativeServing{
Spec: v1beta1.KnativeServingSpec{
CommonSpec: base.CommonSpec{
Expand Down Expand Up @@ -418,15 +417,15 @@ func TestImagePullSecrets(t *testing.T) {
util.AssertEqual(t, err, nil)
util.AssertDeepEqual(t, deployment.Spec.Template.Spec.ImagePullSecrets, tt.expectedSecrets)

unstructuredDaemonSet := util.MakeUnstructured(t, makeDaemonSet(tt.name, podSpec))
unstructuredDaemonSet := util.MakeUnstructured(t, util.MakeDaemonSet(tt.name, podSpec))
daemonSetTransform := ImageTransform(&tt.registry, log)
daemonSetTransform(&unstructuredDaemonSet)
daemonSet := &appsv1.DaemonSet{}
err = scheme.Scheme.Convert(&unstructuredDaemonSet, daemonSet, nil)
util.AssertEqual(t, err, nil)
util.AssertDeepEqual(t, daemonSet.Spec.Template.Spec.ImagePullSecrets, tt.expectedSecrets)

unstructuredStatefulSet := util.MakeUnstructured(t, makeStatefulSet(tt.name, podSpec))
unstructuredStatefulSet := util.MakeUnstructured(t, util.MakeStatefulSet(tt.name, podSpec))
statefulSetTransform := ImageTransform(&tt.registry, log)
statefulSetTransform(&unstructuredStatefulSet)
statefulSet := &appsv1.StatefulSet{}
Expand All @@ -436,99 +435,3 @@ func TestImagePullSecrets(t *testing.T) {
})
}
}

func makeDaemonSet(name string, podSpec corev1.PodSpec) *appsv1.DaemonSet {
return &appsv1.DaemonSet{
TypeMeta: metav1.TypeMeta{
Kind: "DaemonSet",
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
Spec: appsv1.DaemonSetSpec{
Template: corev1.PodTemplateSpec{
Spec: podSpec,
},
},
}
}

func makeStatefulSet(name string, podSpec corev1.PodSpec) *appsv1.StatefulSet {
return &appsv1.StatefulSet{
TypeMeta: metav1.TypeMeta{
Kind: "StatefulSet",
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
Spec: appsv1.StatefulSetSpec{
Template: corev1.PodTemplateSpec{
Spec: podSpec,
},
},
}
}

func makeJobNameGeneratedName(name, genaredtedName string, podSpec corev1.PodSpec) *batchv1.Job {
return &batchv1.Job{
TypeMeta: metav1.TypeMeta{
Kind: "Job",
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
GenerateName: genaredtedName,
},
Spec: batchv1.JobSpec{
Template: corev1.PodTemplateSpec{
Spec: podSpec,
},
},
}
}

func makeJob(name string, podSpec corev1.PodSpec) *batchv1.Job {
return &batchv1.Job{
TypeMeta: metav1.TypeMeta{
Kind: "Job",
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
Spec: batchv1.JobSpec{
Template: corev1.PodTemplateSpec{
Spec: podSpec,
},
},
}
}

func makeJobGenerated(name string, podSpec corev1.PodSpec) *batchv1.Job {
return &batchv1.Job{
TypeMeta: metav1.TypeMeta{
Kind: "Job",
},
ObjectMeta: metav1.ObjectMeta{
GenerateName: name,
},
Spec: batchv1.JobSpec{
Template: corev1.PodTemplateSpec{
Spec: podSpec,
},
},
}
}

func makeImage(name, image string) *caching.Image {
return &caching.Image{
TypeMeta: metav1.TypeMeta{
APIVersion: "caching.internal.knative.dev/v1alpha1",
Kind: "Image",
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
Spec: caching.ImageSpec{
Image: image,
},
}
}
83 changes: 83 additions & 0 deletions pkg/reconciler/common/testing/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ import (
"reflect"
"testing"

batchv1 "k8s.io/api/batch/v1"
caching "knative.dev/caching/pkg/apis/caching/v1alpha1"

mf "github.com/manifestival/manifestival"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
Expand Down Expand Up @@ -61,6 +64,86 @@ func MakeDaemonSet(name string, podSpec corev1.PodSpec) *appsv1.DaemonSet {
}
}

func MakeStatefulSet(name string, podSpec corev1.PodSpec) *appsv1.StatefulSet {
return &appsv1.StatefulSet{
TypeMeta: metav1.TypeMeta{
Kind: "StatefulSet",
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
Spec: appsv1.StatefulSetSpec{
Template: corev1.PodTemplateSpec{
Spec: podSpec,
},
},
}
}

func MakeJobNameGeneratedName(name, genaredtedName string, podSpec corev1.PodSpec) *batchv1.Job {
return &batchv1.Job{
TypeMeta: metav1.TypeMeta{
Kind: "Job",
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
GenerateName: genaredtedName,
},
Spec: batchv1.JobSpec{
Template: corev1.PodTemplateSpec{
Spec: podSpec,
},
},
}
}

func MakeJob(name string, podSpec corev1.PodSpec) *batchv1.Job {
return &batchv1.Job{
TypeMeta: metav1.TypeMeta{
Kind: "Job",
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
Spec: batchv1.JobSpec{
Template: corev1.PodTemplateSpec{
Spec: podSpec,
},
},
}
}

func MakeJobGenerated(name string, podSpec corev1.PodSpec) *batchv1.Job {
return &batchv1.Job{
TypeMeta: metav1.TypeMeta{
Kind: "Job",
},
ObjectMeta: metav1.ObjectMeta{
GenerateName: name,
},
Spec: batchv1.JobSpec{
Template: corev1.PodTemplateSpec{
Spec: podSpec,
},
},
}
}

func MakeImage(name, image string) *caching.Image {
return &caching.Image{
TypeMeta: metav1.TypeMeta{
APIVersion: "caching.internal.knative.dev/v1alpha1",
Kind: "Image",
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
Spec: caching.ImageSpec{
Image: image,
},
}
}

func MakeUnstructured(t *testing.T, obj interface{}) unstructured.Unstructured {
t.Helper()
var result = unstructured.Unstructured{}
Expand Down

0 comments on commit 4773038

Please sign in to comment.