|
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