@@ -63,27 +63,6 @@ func StartK3sCluster(nodes []e2e.VagrantNode, serverYAML string, agentYAML strin
63
63
return nil
64
64
}
65
65
66
- func KillK3sCluster (nodes []e2e.VagrantNode ) error {
67
- for _ , node := range nodes {
68
- if _ , err := node .RunCmdOnNode ("k3s-killall.sh" ); err != nil {
69
- return err
70
- }
71
- if _ , err := node .RunCmdOnNode ("sh -c 'docker ps -qa | xargs -r docker rm -fv'" ); err != nil {
72
- return err
73
- }
74
- if _ , err := node .RunCmdOnNode ("rm -rf /etc/rancher/k3s/config.yaml.d /var/lib/kubelet/pods /var/lib/rancher/k3s/agent/etc /var/lib/rancher/k3s/agent/containerd /var/lib/rancher/k3s/server/db /var/log/pods /run/k3s /run/flannel" ); err != nil {
75
- return err
76
- }
77
- if _ , err := node .RunCmdOnNode ("systemctl restart containerd docker" ); err != nil {
78
- return err
79
- }
80
- if _ , err := node .RunCmdOnNode ("journalctl --flush --sync --rotate --vacuum-size=1" ); err != nil {
81
- return err
82
- }
83
- }
84
- return nil
85
- }
86
-
87
66
var _ = ReportAfterEach (e2e .GenReport )
88
67
89
68
var _ = BeforeSuite (func () {
@@ -157,10 +136,87 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
157
136
})
158
137
159
138
It ("Kills the cluster" , func () {
160
- err := KillK3sCluster (tc .AllNodes ())
139
+ err := e2e .KillK3sCluster (tc .AllNodes ())
140
+ Expect (err ).NotTo (HaveOccurred ())
141
+ })
142
+ })
143
+
144
+ Context ("Verify SQLite to Etcd migration" , func () {
145
+ It ("Starts up with SQLite and checks status" , func () {
146
+ err := StartK3sCluster (tc .AllNodes (), "" , "" )
147
+ Expect (err ).NotTo (HaveOccurred (), e2e .GetVagrantLog (err ))
148
+
149
+ By ("CLUSTER CONFIG" )
150
+ By ("OS:" + * nodeOS )
151
+ By (tc .Status ())
152
+ tc .KubeconfigFile , err = e2e .GenKubeconfigFile (tc .Servers [0 ].String ())
153
+ Expect (err ).NotTo (HaveOccurred ())
154
+
155
+ By ("Fetching node status" )
156
+ Eventually (func () error {
157
+ return tests .NodesReady (tc .KubeconfigFile , e2e .VagrantSlice (tc .AllNodes ()))
158
+ }, "600s" , "5s" ).Should (Succeed ())
159
+ Eventually (func () error {
160
+ return tests .AllPodsUp (tc .KubeconfigFile )
161
+ }, "600s" , "5s" ).Should (Succeed ())
162
+ Eventually (func () error {
163
+ return tests .CheckDefaultDeployments (tc .KubeconfigFile )
164
+ }, "480s" , "10s" ).Should (Succeed ())
165
+ e2e .DumpPods (tc .KubeconfigFile )
166
+ })
167
+
168
+ It ("Creates test resources before migration" , func () {
169
+ createCmd := "kubectl create configmap migration-test --from-literal=test=before-migration"
170
+ _ , err := tc .Servers [0 ].RunCmdOnNode (createCmd )
171
+ Expect (err ).NotTo (HaveOccurred ())
172
+
173
+ getCmd := "kubectl get configmap migration-test -o jsonpath='{.data.test}'"
174
+ result , err := tc .Servers [0 ].RunCmdOnNode (getCmd )
175
+ Expect (err ).NotTo (HaveOccurred ())
176
+ Expect (result ).To (ContainSubstring ("before-migration" ))
177
+ })
178
+
179
+ It ("Migrates from SQLite to etcd" , func () {
180
+ configCmd := "echo 'cluster-init: true' >> /etc/rancher/k3s/config.yaml"
181
+ _ , err := tc .Servers [0 ].RunCmdOnNode (configCmd )
182
+ Expect (err ).NotTo (HaveOccurred ())
183
+
184
+ Expect (e2e .RestartCluster (tc .Servers )).To (Succeed ())
185
+ Expect (e2e .RestartCluster (tc .Agents )).To (Succeed ())
186
+
187
+ Eventually (func () (string , error ) {
188
+ cmd := "kubectl get nodes -l node-role.kubernetes.io/etcd=true"
189
+ return tc .Servers [0 ].RunCmdOnNode (cmd )
190
+ }, "120s" , "5s" ).Should (ContainSubstring (tc .Servers [0 ].String ()))
191
+ })
192
+
193
+ It ("Checks node and pod status after migration" , func () {
194
+ By ("Fetching node status after migration" )
195
+ Eventually (func () error {
196
+ return tests .NodesReady (tc .KubeconfigFile , e2e .VagrantSlice (tc .AllNodes ()))
197
+ }, "600s" , "5s" ).Should (Succeed ())
198
+ Eventually (func () error {
199
+ return tests .AllPodsUp (tc .KubeconfigFile )
200
+ }, "600s" , "5s" ).Should (Succeed ())
201
+ Eventually (func () error {
202
+ return tests .CheckDefaultDeployments (tc .KubeconfigFile )
203
+ }, "480s" , "10s" ).Should (Succeed ())
204
+ e2e .DumpPods (tc .KubeconfigFile )
205
+ })
206
+
207
+ It ("Verifies data persistence after migration" , func () {
208
+ getCmd := "kubectl get configmap migration-test -o jsonpath='{.data.test}'"
209
+ result , err := tc .Servers [0 ].RunCmdOnNode (getCmd )
210
+ Expect (err ).NotTo (HaveOccurred ())
211
+ Expect (result ).To (ContainSubstring ("before-migration" ))
212
+ })
213
+
214
+ It ("Kills the cluster" , func () {
215
+ err := e2e .KillK3sCluster (tc .AllNodes ())
161
216
Expect (err ).NotTo (HaveOccurred ())
162
217
})
163
218
})
219
+
164
220
Context ("Verify kubelet config file" , func () {
165
221
It ("Starts K3s with no issues" , func () {
166
222
for _ , node := range tc .AllNodes () {
@@ -203,7 +259,7 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
203
259
})
204
260
205
261
It ("Kills the cluster" , func () {
206
- err := KillK3sCluster (tc .AllNodes ())
262
+ err := e2e . KillK3sCluster (tc .AllNodes ())
207
263
Expect (err ).NotTo (HaveOccurred ())
208
264
})
209
265
})
@@ -234,7 +290,7 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
234
290
e2e .DumpPods (tc .KubeconfigFile )
235
291
})
236
292
It ("Kills the cluster" , func () {
237
- err := KillK3sCluster (tc .AllNodes ())
293
+ err := e2e . KillK3sCluster (tc .AllNodes ())
238
294
Expect (err ).NotTo (HaveOccurred ())
239
295
})
240
296
})
@@ -306,7 +362,7 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
306
362
})
307
363
308
364
It ("Kills the cluster" , func () {
309
- err := KillK3sCluster (tc .AllNodes ())
365
+ err := e2e . KillK3sCluster (tc .AllNodes ())
310
366
Expect (err ).NotTo (HaveOccurred ())
311
367
})
312
368
})
@@ -338,7 +394,7 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
338
394
}, "120s" , "5s" ).Should (ContainSubstring ("rancher/shell" ))
339
395
})
340
396
It ("Kills the cluster" , func () {
341
- err := KillK3sCluster (tc .AllNodes ())
397
+ err := e2e . KillK3sCluster (tc .AllNodes ())
342
398
Expect (err ).NotTo (HaveOccurred ())
343
399
})
344
400
})
@@ -355,7 +411,7 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
355
411
356
412
})
357
413
It ("Kills the cluster" , func () {
358
- err := KillK3sCluster (tc .AllNodes ())
414
+ err := e2e . KillK3sCluster (tc .AllNodes ())
359
415
Expect (err ).NotTo (HaveOccurred ())
360
416
})
361
417
})
@@ -386,7 +442,7 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
386
442
e2e .DumpPods (tc .KubeconfigFile )
387
443
})
388
444
It ("Kills the cluster" , func () {
389
- err := KillK3sCluster (tc .AllNodes ())
445
+ err := e2e . KillK3sCluster (tc .AllNodes ())
390
446
Expect (err ).NotTo (HaveOccurred ())
391
447
})
392
448
})
0 commit comments