浏览代码

[bitnami/redis-cluster] fix: Use rollout restart in ginkgo tests (#28814)

* [bitnami/redis-cluster] fix: Use rollout restart in ginkgo tests

---------

Signed-off-by: Fran Mulero <fmulero@vmware.com>
Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com>
Co-authored-by: Bitnami Containers <bitnami-bot@vmware.com>
Fran Mulero 1 年之前
父节点
当前提交
8eea194121

+ 3 - 0
.vib/redis-cluster/ginkgo/redis_suite_test.go

@@ -38,6 +38,8 @@ func TestRedis(t *testing.T) {
 }
 
 func createJob(ctx context.Context, c kubernetes.Interface, name, port, image, stmt string) error {
+	// Default job TTL in seconds
+	ttl := int32(10)
 	securityContext := &v1.SecurityContext{
 		Privileged:               &[]bool{false}[0],
 		AllowPrivilegeEscalation: &[]bool{false}[0],
@@ -57,6 +59,7 @@ func createJob(ctx context.Context, c kubernetes.Interface, name, port, image, s
 			Kind: "Job",
 		},
 		Spec: batchv1.JobSpec{
+			TTLSecondsAfterFinished: &ttl,
 			Template: v1.PodTemplateSpec{
 				Spec: v1.PodSpec{
 					RestartPolicy: "Never",

+ 13 - 9
.vib/redis-cluster/ginkgo/redis_test.go

@@ -10,6 +10,7 @@ import (
 	. "github.com/onsi/gomega"
 	appsv1 "k8s.io/api/apps/v1"
 	batchv1 "k8s.io/api/batch/v1"
+	v1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/client-go/kubernetes"
 )
@@ -36,6 +37,9 @@ var _ = Describe("Redis Cluster", Ordered, func() {
 			getAvailableReplicas := func(ss *appsv1.StatefulSet) int32 { return ss.Status.AvailableReplicas }
 			getSucceededJobs := func(j *batchv1.Job) int32 { return j.Status.Succeeded }
 			getOpts := metav1.GetOptions{}
+			restartKey := "kubectl.kubernetes.io/restartedAt"
+			restartAnnotation := map[string]string{restartKey: time.Now().Format(time.RFC3339)}
+			getRestartedAtAnnotation := func(pod *v1.Pod) string { return pod.Annotations[restartKey] }
 
 			By("checking all the replicas are available")
 			ss, err := c.AppsV1().StatefulSets(namespace).Get(ctx, stsName, getOpts)
@@ -71,17 +75,17 @@ var _ = Describe("Redis Cluster", Ordered, func() {
 				return c.BatchV1().Jobs(namespace).Get(ctx, createKEYJobName, getOpts)
 			}, timeout, PollingInterval).Should(WithTransform(getSucceededJobs, Equal(int32(1))))
 
-			By("scaling down to 0 replicas")
-			ss, err = utils.StsScale(ctx, c, ss, 0)
+			By("running rollout restart")
+			// Annotate pods to force a rollout restart
+			ss, err = utils.StsAnnotateTemplate(ctx, c, ss, restartAnnotation)
 			Expect(err).NotTo(HaveOccurred())
 
-			Eventually(func() (*appsv1.StatefulSet, error) {
-				return c.AppsV1().StatefulSets(namespace).Get(ctx, stsName, getOpts)
-			}, timeout, PollingInterval).Should(WithTransform(getAvailableReplicas, BeZero()))
-
-			By("scaling up to the original replicas")
-			ss, err = utils.StsScale(ctx, c, ss, origReplicas)
-			Expect(err).NotTo(HaveOccurred())
+			// Wait for the new annotation in the existing pods
+			for i := int(origReplicas) - 1; i >= 0; i-- {
+				Eventually(func() (*v1.Pod, error) {
+					return c.CoreV1().Pods(namespace).Get(ctx, fmt.Sprintf("%s-%d", stsName, i), getOpts)
+				}, timeout, PollingInterval).Should(WithTransform(getRestartedAtAnnotation, Equal(restartAnnotation[restartKey])))
+			}
 
 			Eventually(func() (*appsv1.StatefulSet, error) {
 				return c.AppsV1().StatefulSets(namespace).Get(ctx, stsName, getOpts)

+ 5 - 1
bitnami/redis-cluster/CHANGELOG.md

@@ -1,8 +1,12 @@
 # Changelog
 
+## 11.0.1 (2024-08-09)
+
+* [bitnami/redis-cluster] fix: Use rollout restart in ginkgo tests ([#28814](https://github.com/bitnami/charts/pull/28814))
+
 ## 11.0.0 (2024-08-09)
 
-* [bitnami/redis-cluster] Release 11.0.0 ([#28806](https://github.com/bitnami/charts/pull/28806))
+* [bitnami/redis-cluster] Release 11.0.0 (#28806) ([6dcde75](https://github.com/bitnami/charts/commit/6dcde759edb811d3b59211b7d18fe1cd8010bb6f)), closes [#28806](https://github.com/bitnami/charts/issues/28806)
 
 ## 10.3.0 (2024-08-01)
 

+ 1 - 1
bitnami/redis-cluster/Chart.yaml

@@ -32,4 +32,4 @@ maintainers:
 name: redis-cluster
 sources:
 - https://github.com/bitnami/charts/tree/main/bitnami/redis-cluster
-version: 11.0.0
+version: 11.0.1