Skip to content

Commit fb983ea

Browse files
Merge pull request kubernetes-sigs#2 from jiayiwang7/br-test
Add unit test for generating user data from template
2 parents 4642447 + 1c94603 commit fb983ea

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package bottlerocket
2+
3+
import (
4+
"testing"
5+
6+
. "github.com/onsi/gomega"
7+
8+
bootstrapv1 "sigs.k8s.io/cluster-api/bootstrap/kubeadm/api/v1beta1"
9+
)
10+
11+
const userData = `
12+
[settings.host-containers.admin]
13+
enabled = true
14+
superpowered = true
15+
user-data = "B64USERDATA"
16+
[settings.host-containers.kubeadm-bootstrap]
17+
enabled = true
18+
superpowered = true
19+
source = "REPO:TAG"
20+
user-data = "B64USERDATA"
21+
22+
[settings.kubernetes]
23+
cluster-domain = "cluster.local"
24+
standalone-mode = true
25+
authentication-mode = "tls"
26+
server-tls-bootstrap = false
27+
pod-infra-container-image = "PAUSE"
28+
provider-id = "PROVIDERID"
29+
30+
[settings.bootstrap-containers.BOOTSTRAP]
31+
essential = false
32+
mode = "MODE"
33+
user-data = "B64USERDATA"
34+
[settings.network]
35+
https-proxy = "PROXY"
36+
no-proxy = []
37+
[settings.container-registry.mirrors]
38+
"public.ecr.aws" = ["https://REGISTRYENDPOINT"]
39+
[settings.pki.registry-mirror-ca]
40+
data = "REGISTRYCA"
41+
trusted=true
42+
[settings.kubernetes.node-labels]
43+
KEY=VAR
44+
[settings.kubernetes.node-taints]
45+
KEY=VAR`
46+
47+
func TestGenerateUserData(t *testing.T) {
48+
g := NewWithT(t)
49+
50+
testcases := []struct {
51+
name string
52+
input *BottlerocketSettingsInput
53+
output string
54+
}{
55+
{
56+
name: "full settings",
57+
input: &BottlerocketSettingsInput{
58+
PauseContainerSource: "PAUSE",
59+
HTTPSProxyEndpoint: "PROXY",
60+
RegistryMirrorEndpoint: "REGISTRYENDPOINT",
61+
RegistryMirrorCACert: "REGISTRYCA",
62+
NodeLabels: "KEY=VAR",
63+
Taints: "KEY=VAR",
64+
ProviderId: "PROVIDERID",
65+
HostContainers: []bootstrapv1.BottlerocketHostContainer{
66+
{
67+
Name: "admin",
68+
Superpowered: true,
69+
UserData: "B64USERDATA",
70+
},
71+
{
72+
Name: "kubeadm-bootstrap",
73+
Superpowered: true,
74+
ImageMeta: bootstrapv1.ImageMeta{
75+
ImageRepository: "REPO",
76+
ImageTag: "TAG",
77+
},
78+
UserData: "B64USERDATA",
79+
},
80+
},
81+
BootstrapContainers: []bootstrapv1.BottlerocketBootstrapContainer{
82+
{
83+
Name: "BOOTSTRAP",
84+
Mode: "MODE",
85+
UserData: "B64USERDATA",
86+
},
87+
},
88+
},
89+
output: userData,
90+
},
91+
}
92+
for _, testcase := range testcases {
93+
t.Run(testcase.name, func(t *testing.T) {
94+
b, err := generateNodeUserData("TestBottlerocketInit", bottlerocketNodeInitSettingsTemplate, testcase.input)
95+
g.Expect(err).NotTo(HaveOccurred())
96+
g.Expect(string(b)).To(Equal(testcase.output))
97+
})
98+
}
99+
}

0 commit comments

Comments
 (0)