From c78e6a9e20d9f7c3a78b5891f0d390c48edc401a Mon Sep 17 00:00:00 2001 From: Travis Nielsen Date: Thu, 18 Mar 2021 16:37:01 -0600 Subject: [PATCH] ceph: set active mgr label on mgr services Other resources such as the service monitor need to match the labels on the services to the active mgr, thus the active mgr name is now set on the labels for the metrics service and dashboard service. Signed-off-by: Travis Nielsen --- .../kubernetes/ceph/monitoring/service-monitor.yaml | 1 + pkg/operator/ceph/cluster/mgr/spec.go | 10 ++++------ pkg/operator/ceph/cluster/mgr/spec_test.go | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/cluster/examples/kubernetes/ceph/monitoring/service-monitor.yaml b/cluster/examples/kubernetes/ceph/monitoring/service-monitor.yaml index 930d0dc34..77e82c959 100644 --- a/cluster/examples/kubernetes/ceph/monitoring/service-monitor.yaml +++ b/cluster/examples/kubernetes/ceph/monitoring/service-monitor.yaml @@ -13,6 +13,7 @@ spec: matchLabels: app: rook-ceph-mgr rook_cluster: rook-ceph + ceph_daemon_id: a endpoints: - port: http-metrics path: /metrics diff --git a/pkg/operator/ceph/cluster/mgr/spec.go b/pkg/operator/ceph/cluster/mgr/spec.go index efca93b9c..05863eb95 100644 --- a/pkg/operator/ceph/cluster/mgr/spec.go +++ b/pkg/operator/ceph/cluster/mgr/spec.go @@ -246,7 +246,7 @@ func getDefaultMgrLivenessProbe() *v1.Probe { // MakeMetricsService generates the Kubernetes service object for the monitoring service func (c *Cluster) MakeMetricsService(name, activeDaemon, servicePortMetricName string) (*v1.Service, error) { - labels := controller.AppLabels(AppName, c.clusterInfo.Namespace) + labels := c.selectorLabels(activeDaemon) svc := &v1.Service{ ObjectMeta: metav1.ObjectMeta{ @@ -268,7 +268,7 @@ func (c *Cluster) MakeMetricsService(name, activeDaemon, servicePortMetricName s // If the cluster is external we don't need to add the selector if name != ExternalMgrAppName { - svc.Spec.Selector = c.selectorLabels(activeDaemon) + svc.Spec.Selector = labels } err := c.clusterInfo.OwnerInfo.SetControllerReference(svc) @@ -279,9 +279,7 @@ func (c *Cluster) MakeMetricsService(name, activeDaemon, servicePortMetricName s } func (c *Cluster) makeDashboardService(name, activeDaemon string) (*v1.Service, error) { - labels := controller.AppLabels(AppName, c.clusterInfo.Namespace) - selectorLabels := controller.AppLabels(AppName, c.clusterInfo.Namespace) - selectorLabels[controller.DaemonIDLabel] = activeDaemon + labels := c.selectorLabels(activeDaemon) portName := "https-dashboard" if !c.spec.Dashboard.SSL { @@ -294,7 +292,7 @@ func (c *Cluster) makeDashboardService(name, activeDaemon string) (*v1.Service, Labels: labels, }, Spec: v1.ServiceSpec{ - Selector: selectorLabels, + Selector: labels, Type: v1.ServiceTypeClusterIP, Ports: []v1.ServicePort{ { diff --git a/pkg/operator/ceph/cluster/mgr/spec_test.go b/pkg/operator/ceph/cluster/mgr/spec_test.go index 8ef9f8afc..0c7ed1a17 100644 --- a/pkg/operator/ceph/cluster/mgr/spec_test.go +++ b/pkg/operator/ceph/cluster/mgr/spec_test.go @@ -91,7 +91,7 @@ func TestServiceSpec(t *testing.T) { assert.NotNil(t, s) assert.Equal(t, "rook-mgr", s.Name) assert.Equal(t, 1, len(s.Spec.Ports)) - assert.Equal(t, 2, len(s.Labels)) + assert.Equal(t, 3, len(s.Labels)) assert.Equal(t, 3, len(s.Spec.Selector)) assert.Equal(t, "foo", s.Spec.Selector[controller.DaemonIDLabel]) }