@@ -46,11 +46,14 @@ kubectl apply -f examples/arango-local-storage.yaml
4646
4747The basis tests are executed on every platform with various images:
4848
49- Run the following tests for the following images:
49+ Run the following tests with the following images:
5050
5151- Community 3.3.10
5252- Enterprise 3.3.10
5353
54+ For every tests, one of these images can be chosen, as long as each image
55+ is used in a test at least once.
56+
5457### Test 1a: Create single server deployment
5558
5659Create an ` ArangoDeployment ` of mode ` Single ` .
@@ -87,6 +90,21 @@ Hint: Use `tests/acceptance/cluster.yaml`.
8790- [ ] The deployment must yield a ` Service ` named ` <deployment-name>-ea `
8891- [ ] The ` Service ` named ` <deployment-name>-ea ` must be accessible from outside (LoadBalancer or NodePort) and show WebUI
8992
93+ ### Test 1d: Create cluster deployment with dc2dc
94+
95+ This test requires the use of the enterprise image.
96+
97+ Create an ` ArangoDeployment ` of mode ` Cluster ` and dc2dc enabled.
98+
99+ Hint: Derive ` tests/acceptance/cluster.yaml ` .
100+
101+ - [ ] The deployment must start
102+ - [ ] The deployment must yield 15 ` Pods `
103+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name> `
104+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name>-ea `
105+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name>-sync `
106+ - [ ] The ` Service ` named ` <deployment-name>-ea ` must be accessible from outside (LoadBalancer or NodePort) and show WebUI
107+
90108### Test 2a: Scale an active failover deployment
91109
92110Create an ` ArangoDeployment ` of mode ` ActiveFailover ` .
@@ -290,7 +308,7 @@ Delete a `Pod` of the deployment that contains a single server.
290308
291309Create an ` ArangoDeployment ` of mode ` Cluster ` .
292310
293- Hint: Use from ` tests/acceptance/single .yaml ` .
311+ Hint: Use from ` tests/acceptance/cluster .yaml ` .
294312
295313- [ ] The deployment must start
296314- [ ] The deployment must yield 9 ` Pods `
@@ -315,13 +333,142 @@ Delete a `Pod` of the deployment that contains an coordinator.
315333 requests targeting the restarting coordinator.
316334- [ ] The ` Pod ` must be restarted
317335
318- ## Further ideas to be discussed
336+ ### Test 6a: Test ` Node ` reboot on single servers
337+
338+ Create an ` ArangoDeployment ` of mode ` Single ` .
339+
340+ Hint: Use from ` tests/acceptance/single.yaml ` .
341+
342+ - [ ] The deployment must start
343+ - [ ] The deployment must yield 1 ` Pod `
344+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name> `
345+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name>-ea `
346+ - [ ] The ` Service ` named ` <deployment-name>-ea ` must be accessible from outside (LoadBalancer or NodePort) and show WebUI
347+
348+ Reboot the ` Node ` of the deployment that contains the single server.
349+
350+ - [ ] The ` Pod ` running on the ` Node ` must be restarted
351+ - [ ] After the ` Pod ` has restarted, the server must have the same data and be responsive again
352+
353+ ### Test 6b: Test ` Node ` reboot on active failover
354+
355+ Create an ` ArangoDeployment ` of mode ` ActiveFailover ` with an environment of ` Production ` .
356+
357+ Hint: Use from ` tests/acceptance/activefailover.yaml ` .
358+
359+ - [ ] The deployment must start
360+ - [ ] The deployment must yield 5 ` Pods `
361+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name> `
362+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name>-ea `
363+ - [ ] The ` Service ` named ` <deployment-name>-ea ` must be accessible from outside (LoadBalancer or NodePort) and show WebUI
364+
365+ Reboot a ` Node ` .
366+
367+ - [ ] While the ` Node ` is restarting, the cluster must still respond to requests (R/W)
368+ - [ ] All ` Pods ` on the ` Node ` must be restarted
369+
370+ ### Test 6c: Test ` Node ` reboot on clusters
371+
372+ Create an ` ArangoDeployment ` of mode ` Cluster ` with an environment of ` Production ` .
373+
374+ Hint: Use from ` tests/acceptance/cluster.yaml ` .
375+
376+ - [ ] The deployment must start
377+ - [ ] The deployment must yield 9 ` Pods `
378+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name> `
379+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name>-ea `
380+ - [ ] The ` Service ` named ` <deployment-name>-ea ` must be accessible from outside (LoadBalancer or NodePort) and show WebUI
381+
382+ Reboot a ` Node ` .
383+
384+ - [ ] While the ` Node ` is restarting, the cluster must still respond to requests (R/W)
385+ - [ ] All ` Pods ` on the ` Node ` must be restarted
386+
387+ ### Test 6d: Test ` Node ` removal on single servers
388+
389+ This test is only valid when ` StorageClass ` is used that provides network attached ` PersistentVolumes ` .
390+
391+ Create an ` ArangoDeployment ` of mode ` Single ` .
392+
393+ Hint: Use from ` tests/acceptance/single.yaml ` .
394+
395+ - [ ] The deployment must start
396+ - [ ] The deployment must yield 1 ` Pod `
397+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name> `
398+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name>-ea `
399+ - [ ] The ` Service ` named ` <deployment-name>-ea ` must be accessible from outside (LoadBalancer or NodePort) and show WebUI
400+
401+ Remove the ` Node ` containing the deployment from the Kubernetes cluster.
402+
403+ - [ ] The ` Pod ` running on the ` Node ` must be restarted on another ` Node `
404+ - [ ] After the ` Pod ` has restarted, the server must have the same data and be responsive again
405+
406+ ### Test 6e: Test ` Node ` removal on active failover
407+
408+ Create an ` ArangoDeployment ` of mode ` ActiveFailover ` with an environment of ` Production ` .
409+
410+ Hint: Use from ` tests/acceptance/activefailover.yaml ` .
411+
412+ - [ ] The deployment must start
413+ - [ ] The deployment must yield 5 ` Pods `
414+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name> `
415+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name>-ea `
416+ - [ ] The ` Service ` named ` <deployment-name>-ea ` must be accessible from outside (LoadBalancer or NodePort) and show WebUI
417+
418+ Remove a ` Node ` containing the ` Pods ` of the deployment from the Kubernetes cluster.
419+
420+ - [ ] While the ` Pods ` are being restarted on new ` Nodes ` , the cluster must still respond to requests (R/W)
421+ - [ ] The ` Pods ` running on the ` Node ` must be restarted on another ` Node `
422+ - [ ] After the ` Pods ` have restarted, the server must have the same data and be responsive again
423+
424+ ### Test 6f: Test ` Node ` removal on clusters
425+
426+ This test is only valid when:
427+
428+ - A ` StorageClass ` is used that provides network attached ` PersistentVolumes `
429+ - or all collections have a replication factor of 2 or higher
430+
431+ Create an ` ArangoDeployment ` of mode ` Cluster ` with an environment of ` Production ` .
432+
433+ Hint: Use from ` tests/acceptance/cluster.yaml ` .
434+
435+ - [ ] The deployment must start
436+ - [ ] The deployment must yield 9 ` Pods `
437+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name> `
438+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name>-ea `
439+ - [ ] The ` Service ` named ` <deployment-name>-ea ` must be accessible from outside (LoadBalancer or NodePort) and show WebUI
440+
441+ Remove a ` Node ` containing the ` Pods ` of the deployment from the Kubernetes cluster.
442+
443+ - [ ] While the ` Pods ` are being restarted on new ` Nodes ` , the cluster must still respond to requests (R/W)
444+ - [ ] The ` Pods ` running on the ` Node ` must be restarted on another ` Node `
445+ - [ ] After the ` Pods ` have restarted, the server must have the same data and be responsive again
446+
447+ ### Test 6g: Test ` Node ` removal on clusters with replication factor 1
448+
449+ This test is only valid when:
450+
451+ - A ` StorageClass ` is used that provides ` Node ` local ` PersistentVolumes `
452+ - and at least some collections have a replication factor of 1
453+
454+ Create an ` ArangoDeployment ` of mode ` Cluster ` with an environment of ` Production ` .
455+
456+ Hint: Use from ` tests/acceptance/cluster.yaml ` .
457+
458+ - [ ] The deployment must start
459+ - [ ] The deployment must yield 9 ` Pods `
460+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name> `
461+ - [ ] The deployment must yield a ` Service ` named ` <deployment-name>-ea `
462+ - [ ] The ` Service ` named ` <deployment-name>-ea ` must be accessible from outside (LoadBalancer or NodePort) and show WebUI
463+
464+ Remove a ` Node ` , containing the dbserver ` Pod ` that holds a collection with replication factor 1,
465+ from the Kubernetes cluster.
466+
467+ - [ ] While the ` Pods ` are being restarted on new ` Nodes ` , the cluster must still respond to requests (R/W),
468+ except requests involving collections with a replication factor of 1
469+ - [ ] The ` Pod ` running the dbserver with a collection that has a replication factor of 1 must NOT be restarted on another ` Node `
319470
320- I just collect further things which I think are missing:
471+ Remove the collections with the replication factor of 1
321472
322- - add resilience tests:
323- - reboot a node, should come back, at least if nothing is ephemeral
324- - kill a node permanently with replicated data, should recover and repair
325- - kill a node if it contains non-replicated data
326- should hang and not recover, but dropping the collection should
327- alow it to recover and repair (obviously, without the data)
473+ - [ ] The remaining ` Pods ` running on the ` Node ` must be restarted on another ` Node `
474+ - [ ] After the ` Pods ` have restarted, the server must have the same data, except for the removed collections, and be responsive again
0 commit comments