forked from rook/rook
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:
@@ -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))
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user