forked from rancher/fleet
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig_test.go
More file actions
77 lines (60 loc) · 1.91 KB
/
config_test.go
File metadata and controls
77 lines (60 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package config_test
import (
"encoding/json"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
"github.com/rancher/fleet/internal/config"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
)
var _ = Describe("ConfigReconciler", func() {
var cm *corev1.ConfigMap
BeforeEach(func() {
cm = &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: config.ManagerConfigName,
Namespace: systemNamespace,
},
}
})
AfterEach(func() {
_ = k8sClient.Delete(ctx, cm)
})
It("loads config when ConfigMap is created", func() {
data, err := json.Marshal(config.Config{
AgentImage: "rancher/fleet-agent:test",
})
Expect(err).NotTo(HaveOccurred())
cm.Data = map[string]string{config.Key: string(data)}
Expect(k8sClient.Create(ctx, cm)).To(Succeed())
Eventually(func(g Gomega) {
g.Expect(config.Get().AgentImage).To(Equal("rancher/fleet-agent:test"))
}).Should(Succeed())
})
It("reloads config when ConfigMap is updated", func() {
data, err := json.Marshal(config.Config{
AgentImage: "rancher/fleet-agent:v1",
})
Expect(err).NotTo(HaveOccurred())
cm.Data = map[string]string{config.Key: string(data)}
Expect(k8sClient.Create(ctx, cm)).To(Succeed())
Eventually(func(g Gomega) {
g.Expect(config.Get().AgentImage).To(Equal("rancher/fleet-agent:v1"))
}).Should(Succeed())
// Update the ConfigMap to a new value
data, err = json.Marshal(config.Config{
AgentImage: "rancher/fleet-agent:v2",
})
Expect(err).NotTo(HaveOccurred())
Expect(k8sClient.Get(ctx, types.NamespacedName{
Namespace: systemNamespace,
Name: config.ManagerConfigName,
}, cm)).To(Succeed())
cm.Data = map[string]string{config.Key: string(data)}
Expect(k8sClient.Update(ctx, cm)).To(Succeed())
Eventually(func(g Gomega) {
g.Expect(config.Get().AgentImage).To(Equal("rancher/fleet-agent:v2"))
}).Should(Succeed())
})
})