|
21 | 21 | package storage
|
22 | 22 |
|
23 | 23 | import (
|
24 |
| - "context" |
25 | 24 | "testing"
|
26 | 25 |
|
27 | 26 | api "github.com/arangodb/kube-arangodb/pkg/apis/storage/v1alpha"
|
28 |
| - "github.com/arangodb/kube-arangodb/pkg/util/kclient" |
29 |
| - |
30 | 27 | "github.com/stretchr/testify/require"
|
31 |
| - v1 "k8s.io/api/core/v1" |
32 |
| - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" |
| 28 | + core "k8s.io/api/core/v1" |
33 | 29 | )
|
34 | 30 |
|
35 | 31 | // TestEnsureDaemonSet tests ensureDaemonSet() method
|
36 | 32 | func TestEnsureDaemonSet(t *testing.T) {
|
37 |
| - testNamespace := "testNs" |
38 |
| - testLsName := "testDsName" |
39 |
| - |
40 |
| - testPodName := "testPodName" |
41 | 33 | testImage := "test-image"
|
42 | 34 |
|
43 |
| - testPullSecrets := []v1.LocalObjectReference{ |
| 35 | + tps := []core.LocalObjectReference{ |
44 | 36 | {
|
45 | 37 | Name: "custom-docker",
|
46 | 38 | },
|
47 | 39 | }
|
48 | 40 |
|
49 |
| - ls := &LocalStorage{ |
50 |
| - apiObject: &api.ArangoLocalStorage{ |
51 |
| - ObjectMeta: metav1.ObjectMeta{ |
52 |
| - Name: testLsName, |
53 |
| - Namespace: testNamespace, |
| 41 | + ls, ds := generateDaemonSet(t, core.PodSpec{ |
| 42 | + ImagePullSecrets: tps, |
| 43 | + Containers: []core.Container{ |
| 44 | + { |
| 45 | + Name: testImage, |
| 46 | + ImagePullPolicy: core.PullAlways, |
| 47 | + Image: testImage, |
54 | 48 | },
|
55 |
| - Spec: api.LocalStorageSpec{}, |
56 |
| - }, |
57 |
| - deps: Dependencies{ |
58 |
| - Client: kclient.NewFakeClient(), |
59 | 49 | },
|
60 |
| - config: Config{ |
61 |
| - Namespace: testNamespace, |
62 |
| - PodName: testPodName, |
63 |
| - }, |
64 |
| - image: testImage, |
65 |
| - imagePullSecrets: testPullSecrets, |
66 |
| - imagePullPolicy: v1.PullAlways, |
67 |
| - } |
| 50 | + }, api.LocalStorageSpec{}) |
| 51 | + |
| 52 | + require.Equal(t, ds.GetName(), ls.apiObject.GetName()) |
| 53 | + require.Equal(t, ds.Spec.Template.Spec.ImagePullSecrets, tps) |
| 54 | + require.Equal(t, len(ds.Spec.Template.Spec.Containers), 1) |
| 55 | + |
| 56 | + c := ds.Spec.Template.Spec.Containers[0] |
| 57 | + require.Equal(t, c.Image, testImage) |
| 58 | + require.Equal(t, c.ImagePullPolicy, core.PullAlways) |
| 59 | + require.Nil(t, ds.Spec.Template.Spec.Priority) |
| 60 | +} |
68 | 61 |
|
69 |
| - err := ls.ensureDaemonSet(ls.apiObject) |
70 |
| - require.NoError(t, err) |
| 62 | +// TestEnsureDaemonSet tests ensureDaemonSet() method |
| 63 | +func TestEnsureDaemonSet_WithPriority(t *testing.T) { |
| 64 | + testImage := "test-image" |
| 65 | + var priority int32 = 555 |
71 | 66 |
|
72 |
| - // verify if DaemonSet has been created with correct values |
73 |
| - ds, err := ls.deps.Client.Kubernetes().AppsV1().DaemonSets(testNamespace).Get(context.Background(), testLsName, metav1.GetOptions{}) |
74 |
| - require.NoError(t, err) |
| 67 | + tps := []core.LocalObjectReference{ |
| 68 | + { |
| 69 | + Name: "custom-docker", |
| 70 | + }, |
| 71 | + } |
75 | 72 |
|
76 |
| - pod := ds.Spec.Template.Spec |
| 73 | + ls, ds := generateDaemonSet(t, core.PodSpec{ |
| 74 | + ImagePullSecrets: tps, |
| 75 | + Containers: []core.Container{ |
| 76 | + { |
| 77 | + Name: testImage, |
| 78 | + ImagePullPolicy: core.PullAlways, |
| 79 | + Image: testImage, |
| 80 | + }, |
| 81 | + }, |
| 82 | + }, api.LocalStorageSpec{ |
| 83 | + PodCustomization: &api.LocalStoragePodCustomization{ |
| 84 | + Priority: &priority, |
| 85 | + }, |
| 86 | + }) |
77 | 87 |
|
78 |
| - require.Equal(t, ds.GetName(), testLsName) |
79 |
| - require.Equal(t, pod.ImagePullSecrets, testPullSecrets) |
80 |
| - require.Equal(t, len(pod.Containers), 1) |
| 88 | + require.Equal(t, ds.GetName(), ls.apiObject.GetName()) |
| 89 | + require.Equal(t, ds.Spec.Template.Spec.ImagePullSecrets, tps) |
| 90 | + require.Equal(t, len(ds.Spec.Template.Spec.Containers), 1) |
81 | 91 |
|
82 |
| - c := pod.Containers[0] |
| 92 | + c := ds.Spec.Template.Spec.Containers[0] |
83 | 93 | require.Equal(t, c.Image, testImage)
|
84 |
| - require.Equal(t, c.ImagePullPolicy, v1.PullAlways) |
| 94 | + require.Equal(t, c.ImagePullPolicy, core.PullAlways) |
| 95 | + require.NotNil(t, ds.Spec.Template.Spec.Priority) |
| 96 | + require.Equal(t, priority, *ds.Spec.Template.Spec.Priority) |
85 | 97 | }
|
0 commit comments