@@ -32,7 +32,10 @@ type podID struct {
32
32
asdPID string
33
33
}
34
34
35
- const clName = "dynamic-config-test"
35
+ const (
36
+ clName = "dynamic-config-test"
37
+ noRestart = "noRestart"
38
+ )
36
39
37
40
var (
38
41
configWithMaxDefaultVal = mapset .NewSet ("info-max-ms" , "flush-max-ms" )
@@ -72,6 +75,8 @@ var _ = Describe(
72
75
aeroCluster := createDummyAerospikeCluster (
73
76
clusterNamespacedName , 2 ,
74
77
)
78
+ aeroCluster .Spec .AerospikeConfig .Value ["namespaces" ] = append (
79
+ aeroCluster .Spec .AerospikeConfig .Value ["namespaces" ].([]interface {}), getNonSCInMemoryNamespaceConfig ("mem" ))
75
80
aeroCluster .Spec .AerospikeConfig .Value ["xdr" ] = map [string ]interface {}{
76
81
"dcs" : []map [string ]interface {}{
77
82
{
@@ -169,7 +174,7 @@ var _ = Describe(
169
174
170
175
By ("Verify no warm/cold restarts in Pods" )
171
176
172
- validateServerRestart (ctx , aeroCluster , podPIDMap , false )
177
+ validateServerRestart (ctx , aeroCluster , podPIDMap , noRestart )
173
178
174
179
By ("Modify dynamic config by removing fields" )
175
180
@@ -215,14 +220,14 @@ var _ = Describe(
215
220
216
221
By ("Verify no warm/cold restarts in Pods" )
217
222
218
- validateServerRestart (ctx , aeroCluster , podPIDMap , false )
223
+ validateServerRestart (ctx , aeroCluster , podPIDMap , noRestart )
219
224
},
220
225
)
221
226
222
227
It (
223
228
"Should update config statically" , func () {
224
229
225
- By ("Modify static config" )
230
+ By ("Modify static config to do warm restart " )
226
231
227
232
aeroCluster , err := getCluster (
228
233
k8sClient , ctx , clusterNamespacedName ,
@@ -251,8 +256,41 @@ var _ = Describe(
251
256
Expect (enableQuotas ).To (BeTrue ())
252
257
253
258
By ("Verify warm restarts in Pods" )
259
+ validateServerRestart (ctx , aeroCluster , podPIDMap , asdbv1 .OperationWarmRestart )
260
+
261
+ By ("Modify static config to do pod restart" )
262
+
263
+ aeroCluster , err = getCluster (
264
+ k8sClient , ctx , clusterNamespacedName ,
265
+ )
266
+ Expect (err ).ToNot (HaveOccurred ())
267
+
268
+ podPIDMap , err = getPodIDs (ctx , aeroCluster )
269
+ Expect (err ).ToNot (HaveOccurred ())
270
+
271
+ nsList := aeroCluster .Spec .AerospikeConfig .Value ["namespaces" ].([]interface {})
272
+ nsList [1 ].(map [string ]interface {})["storage-engine" ].(map [string ]interface {})["data-size" ] = 2073741824
273
+
274
+ err = updateCluster (k8sClient , ctx , aeroCluster )
275
+ Expect (err ).ToNot (HaveOccurred ())
276
+
277
+ By ("Fetch and verify static configs" )
254
278
255
- validateServerRestart (ctx , aeroCluster , podPIDMap , true )
279
+ pod = aeroCluster .Status .Pods [aeroCluster .Name + "-0-0" ]
280
+
281
+ info , err := requestInfoFromNode (logger , k8sClient , ctx , clusterNamespacedName , "namespace/mem" , & pod )
282
+ Expect (err ).ToNot (HaveOccurred ())
283
+
284
+ confs := strings .Split (info ["namespace/mem" ], ";" )
285
+ for _ , conf := range confs {
286
+ if strings .Contains (conf , "data-size" ) {
287
+ keyValue := strings .Split (conf , "=" )
288
+ Expect (keyValue [1 ]).To (Equal ("2073741824" ))
289
+ }
290
+ }
291
+
292
+ By ("Verify pod restarts in Pods" )
293
+ validateServerRestart (ctx , aeroCluster , podPIDMap , asdbv1 .OperationPodRestart )
256
294
},
257
295
)
258
296
@@ -290,7 +328,7 @@ var _ = Describe(
290
328
Expect (cv ).To (Equal (int64 (19000 )))
291
329
292
330
By ("Verify warm restarts in Pods" )
293
- validateServerRestart (ctx , aeroCluster , podPIDMap , true )
331
+ validateServerRestart (ctx , aeroCluster , podPIDMap , asdbv1 . OperationWarmRestart )
294
332
},
295
333
)
296
334
},
@@ -357,8 +395,8 @@ var _ = Describe(
357
395
358
396
// As there was no full config update failure,
359
397
// expectation is that pods will not be restarted.
360
- By ("Verify cold restarts in Pods" )
361
- validateServerRestart (ctx , aeroCluster , podPIDMap , false )
398
+ By ("Verify no restarts in Pods" )
399
+ validateServerRestart (ctx , aeroCluster , podPIDMap , noRestart )
362
400
},
363
401
)
364
402
@@ -409,8 +447,14 @@ var _ = Describe(
409
447
Expect (err ).ToNot (HaveOccurred ())
410
448
411
449
// As pods were failed, expectation is that pods will be cold restarted.
412
- By ("Verify cold restarts in Pods" )
413
- validateServerRestart (ctx , aeroCluster , podPIDMap , true )
450
+ By ("Verify partial cold restart in Pods" )
451
+ operationTypeMap := map [string ]asdbv1.OperationKind {
452
+ aeroCluster .Name + "-0-0" : noRestart ,
453
+ aeroCluster .Name + "-0-1" : asdbv1 .OperationPodRestart ,
454
+ }
455
+
456
+ err = validateOperationTypes (ctx , aeroCluster , podPIDMap , operationTypeMap )
457
+ Expect (err ).ToNot (HaveOccurred ())
414
458
415
459
},
416
460
)
@@ -524,7 +568,7 @@ var _ = Describe(
524
568
Expect (err ).ToNot (HaveOccurred ())
525
569
526
570
By ("Verify no warm/cold restarts in Pods" )
527
- validateServerRestart (ctx , aeroCluster , podPIDMap , false )
571
+ validateServerRestart (ctx , aeroCluster , podPIDMap , noRestart )
528
572
529
573
By ("Verify Network Context configs dynamically" )
530
574
err = validateNetworkContextDynamically (ctx , flatServer , flatSpec , aeroCluster , dynamic )
@@ -536,7 +580,7 @@ var _ = Describe(
536
580
Expect (err ).ToNot (HaveOccurred ())
537
581
538
582
By ("Verify no warm/cold restarts in Pods" )
539
- validateServerRestart (ctx , aeroCluster , podPIDMap , false )
583
+ validateServerRestart (ctx , aeroCluster , podPIDMap , noRestart )
540
584
541
585
By ("Verify Namespace Context configs dynamically" )
542
586
err = validateNamespaceContextDynamically (ctx , flatServer , flatSpec , aeroCluster , dynamic )
@@ -548,7 +592,7 @@ var _ = Describe(
548
592
Expect (err ).ToNot (HaveOccurred ())
549
593
550
594
By ("Verify no warm/cold restarts in Pods" )
551
- validateServerRestart (ctx , aeroCluster , podPIDMap , false )
595
+ validateServerRestart (ctx , aeroCluster , podPIDMap , noRestart )
552
596
553
597
By ("Verify Security Context configs dynamically" )
554
598
err = validateSecurityContextDynamically (ctx , flatServer , flatSpec , aeroCluster , dynamic )
@@ -560,7 +604,7 @@ var _ = Describe(
560
604
Expect (err ).ToNot (HaveOccurred ())
561
605
562
606
By ("Verify no warm/cold restarts in Pods" )
563
- validateServerRestart (ctx , aeroCluster , podPIDMap , false )
607
+ validateServerRestart (ctx , aeroCluster , podPIDMap , noRestart )
564
608
565
609
By ("Verify XDR Context configs dynamically" )
566
610
err = validateXDRContextDynamically (clusterNamespacedName ,
@@ -573,7 +617,7 @@ var _ = Describe(
573
617
Expect (err ).ToNot (HaveOccurred ())
574
618
575
619
By ("Verify no warm/cold restarts in Pods" )
576
- validateServerRestart (ctx , aeroCluster , podPIDMap , false )
620
+ validateServerRestart (ctx , aeroCluster , podPIDMap , noRestart )
577
621
},
578
622
)
579
623
},
@@ -671,30 +715,24 @@ var _ = Describe(
671
715
}
672
716
673
717
By ("Verify no warm/cold restarts in Pods" )
674
-
675
- validateServerRestart (ctx , aeroCluster , podPIDMap , false )
718
+ validateServerRestart (ctx , aeroCluster , podPIDMap , noRestart )
676
719
},
677
720
)
678
721
},
679
722
)
680
723
},
681
724
)
682
725
683
- func validateServerRestart (ctx goctx.Context , cluster * asdbv1.AerospikeCluster , pidMap map [string ]podID ,
684
- shouldRestart bool ) {
685
- restarted := false
726
+ func validateServerRestart (ctx goctx.Context , aeroCluster * asdbv1.AerospikeCluster , pidMap map [string ]podID ,
727
+ restartType asdbv1. OperationKind ) {
728
+ operationTypeMap := make ( map [ string ]asdbv1. OperationKind )
686
729
687
- newPodPidMap , err := getPodIDs (ctx , cluster )
688
- Expect (err ).ToNot (HaveOccurred ())
689
-
690
- for podName , pid := range pidMap {
691
- if newPodPidMap [podName ].podUID != pid .podUID || newPodPidMap [podName ].asdPID != pid .asdPID {
692
- restarted = true
693
- break
694
- }
730
+ for podName := range pidMap {
731
+ operationTypeMap [podName ] = restartType
695
732
}
696
733
697
- Expect (restarted ).To (Equal (shouldRestart ))
734
+ err := validateOperationTypes (ctx , aeroCluster , pidMap , operationTypeMap )
735
+ Expect (err ).ToNot (HaveOccurred ())
698
736
}
699
737
700
738
func getPodIDs (ctx context.Context , aeroCluster * asdbv1.AerospikeCluster ) (map [string ]podID , error ) {
0 commit comments