mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 02:41:25 +00:00
use GA topology labels for vsphere
This commit is contained in:
parent
bd0196e8ba
commit
518844fd25
@ -433,7 +433,7 @@ func (v *vsphereVolumeProvisioner) Provision(selectedNode *v1.Node, allowedTopol
|
||||
for k, v := range labels {
|
||||
pv.Labels[k] = v
|
||||
var values []string
|
||||
if k == v1.LabelFailureDomainBetaZone {
|
||||
if k == v1.LabelTopologyZone || k == v1.LabelFailureDomainBetaZone {
|
||||
values, err = volumehelpers.LabelZonesToList(v)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to convert label string for Zone: %s to a List: %v", v, err)
|
||||
|
@ -29,6 +29,16 @@ import (
|
||||
func TestTranslatevSphereInTreeStorageClassToCSI(t *testing.T) {
|
||||
translator := NewvSphereCSITranslator()
|
||||
topologySelectorTerm := v1.TopologySelectorTerm{[]v1.TopologySelectorLabelRequirement{
|
||||
{
|
||||
Key: v1.LabelTopologyZone,
|
||||
Values: []string{"zone-a"},
|
||||
},
|
||||
{
|
||||
Key: v1.LabelTopologyRegion,
|
||||
Values: []string{"region-a"},
|
||||
},
|
||||
}}
|
||||
topologySelectorTermWithBetaLabels := v1.TopologySelectorTerm{[]v1.TopologySelectorLabelRequirement{
|
||||
{
|
||||
Key: v1.LabelFailureDomainBetaZone,
|
||||
Values: []string{"zone-a"},
|
||||
@ -85,6 +95,11 @@ func TestTranslatevSphereInTreeStorageClassToCSI(t *testing.T) {
|
||||
sc: NewStorageClass(map[string]string{"storagepolicyname": "test-policy-name"}, []v1.TopologySelectorTerm{topologySelectorTerm}),
|
||||
expSc: NewStorageClass(map[string]string{"storagepolicyname": "test-policy-name", paramcsiMigration: "true"}, []v1.TopologySelectorTerm{topologySelectorTerm}),
|
||||
},
|
||||
{
|
||||
name: "translate with storagepolicyname and allowedTopology beta labels",
|
||||
sc: NewStorageClass(map[string]string{"storagepolicyname": "test-policy-name"}, []v1.TopologySelectorTerm{topologySelectorTermWithBetaLabels}),
|
||||
expSc: NewStorageClass(map[string]string{"storagepolicyname": "test-policy-name", paramcsiMigration: "true"}, []v1.TopologySelectorTerm{topologySelectorTermWithBetaLabels}),
|
||||
},
|
||||
{
|
||||
name: "translate with raw vSAN policy parameters, datastore and diskformat",
|
||||
sc: NewStorageClass(map[string]string{"hostfailurestotolerate": "2", "datastore": "vsanDatastore", "diskformat": "thin"}, []v1.TopologySelectorTerm{topologySelectorTerm}),
|
||||
|
@ -219,8 +219,8 @@ func (nm *NodeManager) DiscoverNode(node *v1.Node) error {
|
||||
}
|
||||
}
|
||||
// Get the node zone information
|
||||
nodeFd := node.ObjectMeta.Labels[v1.LabelFailureDomainBetaZone]
|
||||
nodeRegion := node.ObjectMeta.Labels[v1.LabelFailureDomainBetaRegion]
|
||||
nodeFd := node.ObjectMeta.Labels[v1.LabelTopologyZone]
|
||||
nodeRegion := node.ObjectMeta.Labels[v1.LabelTopologyRegion]
|
||||
nodeZone := &cloudprovider.Zone{FailureDomain: nodeFd, Region: nodeRegion}
|
||||
nodeInfo := &NodeInfo{dataCenter: res.datacenter, vm: vm, vcServer: res.vc, vmUUID: nodeUUID, zone: nodeZone}
|
||||
nm.addNodeInfo(node.ObjectMeta.Name, nodeInfo)
|
||||
|
@ -1776,8 +1776,8 @@ func (vs *VSphere) GetVolumeLabels(volumePath string) (map[string]string, error)
|
||||
// FIXME: For now, pick the first zone of datastore as the zone of volume
|
||||
labels := make(map[string]string)
|
||||
if len(dsZones) > 0 {
|
||||
labels[v1.LabelFailureDomainBetaRegion] = dsZones[0].Region
|
||||
labels[v1.LabelFailureDomainBetaZone] = dsZones[0].FailureDomain
|
||||
labels[v1.LabelTopologyRegion] = dsZones[0].Region
|
||||
labels[v1.LabelTopologyZone] = dsZones[0].FailureDomain
|
||||
}
|
||||
return labels, nil
|
||||
}
|
||||
|
@ -226,7 +226,7 @@ func getVSphereStorageClassSpec(name string, scParameters map[string]string, zon
|
||||
term := v1.TopologySelectorTerm{
|
||||
MatchLabelExpressions: []v1.TopologySelectorLabelRequirement{
|
||||
{
|
||||
Key: v1.LabelFailureDomainBetaZone,
|
||||
Key: v1.LabelTopologyZone,
|
||||
Values: zones,
|
||||
},
|
||||
},
|
||||
|
@ -369,7 +369,7 @@ var _ = utils.SIGDescribe("Zone Support [Feature:vsphere]", func() {
|
||||
zones = append(zones, zoneA)
|
||||
nodeSelectorMap := map[string]string{
|
||||
// nodeSelector set as zoneB
|
||||
v1.LabelFailureDomainBetaZone: zoneB,
|
||||
v1.LabelTopologyZone: zoneB,
|
||||
}
|
||||
verifyPodSchedulingFails(client, namespace, nodeSelectorMap, scParameters, zones, storagev1.VolumeBindingWaitForFirstConsumer)
|
||||
})
|
||||
@ -518,7 +518,7 @@ func verifyPVZoneLabels(client clientset.Interface, timeouts *framework.TimeoutC
|
||||
ginkgo.By("Verify zone information is present in the volume labels")
|
||||
for _, pv := range persistentvolumes {
|
||||
// Multiple zones are separated with "__"
|
||||
pvZoneLabels := strings.Split(pv.ObjectMeta.Labels["failure-domain.beta.kubernetes.io/zone"], "__")
|
||||
pvZoneLabels := strings.Split(pv.ObjectMeta.Labels[v1.LabelTopologyZone], "__")
|
||||
for _, zone := range zones {
|
||||
gomega.Expect(pvZoneLabels).Should(gomega.ContainElement(zone), "Incorrect or missing zone labels in pv.")
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user