diff --git a/pkg/thanos/statefulset.go b/pkg/thanos/statefulset.go index d44120280d..9103e20bf4 100644 --- a/pkg/thanos/statefulset.go +++ b/pkg/thanos/statefulset.go @@ -38,7 +38,6 @@ const ( rulesDir = "/etc/thanos/rules" configDir = "/etc/thanos/config" storageDir = "/thanos/data" - governingServiceName = "thanos-ruler-operated" defaultPortName = "web" defaultRetention = "24h" defaultEvaluationInterval = "15s" @@ -410,7 +409,7 @@ func makeStatefulSetSpec(tr *monitoringv1.ThanosRuler, config Config, ruleConfig // PodManagementPolicy is set to Parallel to mitigate issues in kubernetes: https://github.com/kubernetes/kubernetes/issues/60164 // This is also mentioned as one of limitations of StatefulSets: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#limitations return &appsv1.StatefulSetSpec{ - ServiceName: governingServiceName, + ServiceName: serviceName(tr.Name), Replicas: tr.Spec.Replicas, MinReadySeconds: minReadySeconds, PodManagementPolicy: appsv1.ParallelPodManagement, @@ -473,7 +472,7 @@ func makeStatefulSetService(tr *monitoringv1.ThanosRuler, config Config) *v1.Ser operator.UpdateObject( svc, - operator.WithName(governingServiceName), + operator.WithName(serviceName(tr.Name)), operator.WithAnnotations(config.Annotations), operator.WithLabels(map[string]string{"operated-thanos-ruler": "true"}), operator.WithLabels(config.Labels), @@ -487,6 +486,10 @@ func prefixedName(name string) string { return fmt.Sprintf("thanos-ruler-%s", name) } +func serviceName(name string) string { + return fmt.Sprintf("%s-operated", prefixedName(name)) +} + func volumeName(name string) string { return fmt.Sprintf("%s-data", prefixedName(name)) } diff --git a/pkg/thanos/statefulset_test.go b/pkg/thanos/statefulset_test.go index 213ff0bf3a..d5053a3809 100644 --- a/pkg/thanos/statefulset_test.go +++ b/pkg/thanos/statefulset_test.go @@ -932,9 +932,10 @@ func TestStatefulSetServiceName(t *testing.T) { QueryEndpoints: emptyQueryEndpoints, }, } + tr.Name = "test" // assert set correctly - expect := governingServiceName + expect := serviceName(tr.Name) spec, err := makeStatefulSetSpec(&tr, defaultTestConfig, nil) if err != nil { t.Fatal(err) diff --git a/test/e2e/thanosruler_test.go b/test/e2e/thanosruler_test.go index c07819c3a6..9a047aa754 100644 --- a/test/e2e/thanosruler_test.go +++ b/test/e2e/thanosruler_test.go @@ -199,9 +199,9 @@ func testTRPreserveUserAddedMetadata(t *testing.T) { update func(object metav1.Object) (metav1.Object, error) }{ { - name: "thanos-ruler-operated service", + name: "thanos-ruler operated service", get: func() (metav1.Object, error) { - return svcClient.Get(context.Background(), "thanos-ruler-operated", metav1.GetOptions{}) + return svcClient.Get(context.Background(), "thanos-ruler-test-operated", metav1.GetOptions{}) }, update: func(object metav1.Object) (metav1.Object, error) { return svcClient.Update(context.Background(), asService(t, object), metav1.UpdateOptions{})