mirror of
https://github.com/coreos/prometheus-operator.git
synced 2026-02-05 06:45:27 +01:00
feat: add serviceName option to ThanosRuler and AlertManager CRD (#7325)
This commit is contained in:
@@ -2622,3 +2622,51 @@ templates: []
|
||||
err = framework.DeleteAlertmanagerAndWaitUntilGone(context.Background(), ns, amName)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func testAlertManagerServiceName(t *testing.T) {
|
||||
t.Parallel()
|
||||
ctx := context.Background()
|
||||
testCtx := framework.NewTestCtx(t)
|
||||
defer testCtx.Cleanup(t)
|
||||
ns := framework.CreateNamespace(ctx, t, testCtx)
|
||||
name := "test-servicename"
|
||||
|
||||
svc := &v1.Service{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: fmt.Sprintf("%s-service", name),
|
||||
Namespace: ns,
|
||||
},
|
||||
Spec: v1.ServiceSpec{
|
||||
Type: v1.ServiceTypeLoadBalancer,
|
||||
Ports: []v1.ServicePort{
|
||||
{
|
||||
Name: "web",
|
||||
Port: 9090,
|
||||
},
|
||||
},
|
||||
Selector: map[string]string{
|
||||
"app.kubernetes.io/name": "alertmanager",
|
||||
"app.kubernetes.io/managed-by": "prometheus-operator",
|
||||
"app.kubernetes.io/instance": name,
|
||||
"alertmanager": name,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
_, err := framework.KubeClient.CoreV1().Services(ns).Create(ctx, svc, metav1.CreateOptions{})
|
||||
require.NoError(t, err)
|
||||
|
||||
framework.SetupPrometheusRBAC(ctx, t, testCtx, ns)
|
||||
|
||||
am := framework.MakeBasicAlertmanager(ns, name, 1)
|
||||
am.Spec.ServiceName = &svc.Name
|
||||
|
||||
_, err = framework.CreateAlertmanagerAndWaitUntilReady(context.Background(), am)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Ensure that the default governing service was not created by the operator.
|
||||
svcList, err := framework.KubeClient.CoreV1().Services(ns).List(ctx, metav1.ListOptions{})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, svcList.Items, 1)
|
||||
require.Equal(t, svcList.Items[0].Name, svc.Name)
|
||||
}
|
||||
|
||||
@@ -240,6 +240,7 @@ func testAllNSAlertmanager(t *testing.T) {
|
||||
"AMWeb": testAMWeb,
|
||||
"AMTemplateReloadConfig": testAMTmplateReloadConfig,
|
||||
"AMStatusScale": testAlertmanagerStatusScale,
|
||||
"AMServiceName": testAlertManagerServiceName,
|
||||
}
|
||||
|
||||
for name, f := range testFuncs {
|
||||
@@ -324,6 +325,7 @@ func testAllNSThanosRuler(t *testing.T) {
|
||||
"ThanosRulerAlertmanagerConfig": testTRAlertmanagerConfig,
|
||||
"ThanosRulerQueryConfig": testTRQueryConfig,
|
||||
"ThanosRulerCheckStorageClass": testTRCheckStorageClass,
|
||||
"ThanosRulerServiceName": testThanosRulerServiceName,
|
||||
}
|
||||
for name, f := range testFuncs {
|
||||
t.Run(name, f)
|
||||
|
||||
@@ -511,3 +511,51 @@ func testTRCheckStorageClass(t *testing.T) {
|
||||
t.Fatalf("%v: %v", err, loopError)
|
||||
}
|
||||
}
|
||||
|
||||
func testThanosRulerServiceName(t *testing.T) {
|
||||
t.Parallel()
|
||||
ctx := context.Background()
|
||||
testCtx := framework.NewTestCtx(t)
|
||||
defer testCtx.Cleanup(t)
|
||||
ns := framework.CreateNamespace(ctx, t, testCtx)
|
||||
name := "test-servicename"
|
||||
|
||||
svc := &v1.Service{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: fmt.Sprintf("%s-service", name),
|
||||
Namespace: ns,
|
||||
},
|
||||
Spec: v1.ServiceSpec{
|
||||
Type: v1.ServiceTypeLoadBalancer,
|
||||
Ports: []v1.ServicePort{
|
||||
{
|
||||
Name: "web",
|
||||
Port: 9090,
|
||||
},
|
||||
},
|
||||
Selector: map[string]string{
|
||||
"app.kubernetes.io/name": "thanos-ruler",
|
||||
"app.kubernetes.io/managed-by": "prometheus-operator",
|
||||
"app.kubernetes.io/instance": name,
|
||||
"thanos-ruler": name,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
_, err := framework.KubeClient.CoreV1().Services(ns).Create(ctx, svc, metav1.CreateOptions{})
|
||||
require.NoError(t, err)
|
||||
|
||||
framework.SetupPrometheusRBAC(ctx, t, testCtx, ns)
|
||||
|
||||
tr := framework.MakeBasicThanosRuler(name, 1, "http://test.example.com")
|
||||
tr.Spec.ServiceName = &svc.Name
|
||||
|
||||
_, err = framework.CreateThanosRulerAndWaitUntilReady(ctx, ns, tr)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Ensure that the default governing service was not created by the operator.
|
||||
svcList, err := framework.KubeClient.CoreV1().Services(ns).List(ctx, metav1.ListOptions{})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, svcList.Items, 1)
|
||||
require.Equal(t, svcList.Items[0].Name, svc.Name)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user