ceph: use constants for k8s topology labels

Instead of directly defining our own constants, we should be using the k8s
constants for the well-known topology labels.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
This commit is contained in:
Travis Nielsen
2020-11-05 09:23:58 -07:00
parent e72b69f8e0
commit 7c3cdbce50
4 changed files with 21 additions and 19 deletions
+2 -1
View File
@@ -30,6 +30,7 @@ import (
"github.com/rook/rook/pkg/operator/ceph/controller"
"github.com/rook/rook/pkg/operator/k8sutil"
apps "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
v1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -75,7 +76,7 @@ func (c *Cluster) stretchFailureDomainLabel() string {
return c.spec.Mon.StretchCluster.FailureDomainLabel
}
// The default topology label is for a zone
return "topology.kubernetes.io/zone"
return corev1.LabelZoneFailureDomainStable
}
func (c *Cluster) makeDeployment(monConfig *monConfig, canary bool) (*apps.Deployment, error) {
@@ -23,6 +23,7 @@ import (
"testing"
"github.com/stretchr/testify/assert"
corev1 "k8s.io/api/core/v1"
)
func TestOrderedCRUSHLabels(t *testing.T) {
@@ -41,12 +42,12 @@ func TestOrderedCRUSHLabels(t *testing.T) {
func TestTopologyLabels(t *testing.T) {
// load all the expected labels
nodeLabels := map[string]string{
"topology.kubernetes.io/region": "r.region",
"topology.kubernetes.io/zone": "z.zone",
"kubernetes.io/hostname": "host.name",
"topology.rook.io/rack": "r.rack",
"topology.rook.io/row": "r.row",
"topology.rook.io/datacenter": "d.datacenter",
corev1.LabelZoneRegionStable: "r.region",
corev1.LabelZoneFailureDomainStable: "z.zone",
"kubernetes.io/hostname": "host.name",
"topology.rook.io/rack": "r.rack",
"topology.rook.io/row": "r.row",
"topology.rook.io/datacenter": "d.datacenter",
}
topology := ExtractOSDTopologyFromLabels(nodeLabels)
assert.Equal(t, 6, len(topology))
+2 -2
View File
@@ -285,7 +285,7 @@ func ExtractTopologyFromLabels(labels map[string]string, additionalTopologyIDs [
// check for the region k8s topology label that is GA in 1.17.
// TODO: Replace with a const when we update to the K8s 1.17 go-client.
region, ok = labels["topology.kubernetes.io/region"]
region, ok = labels[corev1.LabelZoneRegionStable]
if ok {
topology[regionLabel] = region
}
@@ -299,7 +299,7 @@ func ExtractTopologyFromLabels(labels map[string]string, additionalTopologyIDs [
// check for the zone k8s topology label that is GA in 1.17.
// TODO: Replace with a const when we update to the K8s 1.17 go-client.
zone, ok = labels["topology.kubernetes.io/zone"]
zone, ok = labels[corev1.LabelZoneFailureDomainStable]
if ok {
topology[zoneLabel] = zone
}
+10 -10
View File
@@ -397,12 +397,12 @@ func TestTopologyLabels(t *testing.T) {
// load all the expected labels
nodeLabels = map[string]string{
"topology.kubernetes.io/region": "r1",
"topology.kubernetes.io/zone": "z1",
"kubernetes.io/hostname": "myhost",
"topology.rook.io/rack": "rack1",
"topology.rook.io/row": "row1",
"topology.rook.io/datacenter": "d1",
corev1.LabelZoneRegionStable: "r1",
corev1.LabelZoneFailureDomainStable: "z1",
"kubernetes.io/hostname": "myhost",
"topology.rook.io/rack": "rack1",
"topology.rook.io/row": "row1",
"topology.rook.io/datacenter": "d1",
}
topology = ExtractTopologyFromLabels(nodeLabels, additionalTopologyLabels)
assert.Equal(t, 6, len(topology))
@@ -425,10 +425,10 @@ func TestTopologyLabels(t *testing.T) {
// ensure deprecated k8s labels are overridden
nodeLabels = map[string]string{
"topology.kubernetes.io/region": "r1",
"topology.kubernetes.io/zone": "z1",
corev1.LabelZoneRegion: "oldregion",
corev1.LabelZoneFailureDomain: "oldzone",
corev1.LabelZoneRegionStable: "r1",
corev1.LabelZoneFailureDomainStable: "z1",
corev1.LabelZoneRegion: "oldregion",
corev1.LabelZoneFailureDomain: "oldzone",
}
topology = ExtractTopologyFromLabels(nodeLabels, additionalTopologyLabels)
assert.Equal(t, 2, len(topology))