From 748cf86aa78fb1f4b15954390b77850428cf17d4 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Thu, 18 Nov 2021 16:39:49 +0800 Subject: [PATCH] Add the key for GKE zone for AZ collection Signed-off-by: Daniel Jiang --- changelogs/unreleased/4376-reasonerjt | 1 + pkg/backup/item_backupper.go | 3 ++- pkg/backup/item_backupper_test.go | 13 +++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/4376-reasonerjt diff --git a/changelogs/unreleased/4376-reasonerjt b/changelogs/unreleased/4376-reasonerjt new file mode 100644 index 000000000..73406dade --- /dev/null +++ b/changelogs/unreleased/4376-reasonerjt @@ -0,0 +1 @@ +Add the key for GKE zone for AZ collection \ No newline at end of file diff --git a/pkg/backup/item_backupper.go b/pkg/backup/item_backupper.go index 72be1bd7f..e02920c20 100644 --- a/pkg/backup/item_backupper.go +++ b/pkg/backup/item_backupper.go @@ -401,6 +401,7 @@ const ( awsEbsCsiZoneKey = "topology.ebs.csi.aws.com/zone" azureCsiZoneKey = "topology.disk.csi.azure.com/zone" + gkeCsiZoneKey = "topology.gke.io/zone" ) // takePVSnapshot triggers a snapshot for the volume/disk underlying a PersistentVolume if the provided @@ -439,7 +440,7 @@ func (ib *itemBackupper) takePVSnapshot(obj runtime.Unstructured, log logrus.Fie if !labelFound { var k string log.Infof("label %q is not present on PersistentVolume", zoneLabelDeprecated) - k, pvFailureDomainZone = zoneFromPVNodeAffinity(pv, awsEbsCsiZoneKey, azureCsiZoneKey, zoneLabel, zoneLabelDeprecated) + k, pvFailureDomainZone = zoneFromPVNodeAffinity(pv, awsEbsCsiZoneKey, azureCsiZoneKey, gkeCsiZoneKey, zoneLabel, zoneLabelDeprecated) if pvFailureDomainZone != "" { log.Infof("zone info from nodeAffinity requirements: %s, key: %s", pvFailureDomainZone, k) } else { diff --git a/pkg/backup/item_backupper_test.go b/pkg/backup/item_backupper_test.go index 580207a0f..819ca54d8 100644 --- a/pkg/backup/item_backupper_test.go +++ b/pkg/backup/item_backupper_test.go @@ -51,7 +51,9 @@ func Test_zoneFromPVNodeAffinity(t *testing.T) { keys := []string{ awsEbsCsiZoneKey, azureCsiZoneKey, + gkeCsiZoneKey, zoneLabel, + zoneLabelDeprecated, } tests := []struct { name string @@ -81,6 +83,17 @@ func Test_zoneFromPVNodeAffinity(t *testing.T) { wantKey: "topology.disk.csi.azure.com/zone", wantValue: "us-central", }, + { + name: "GCP CSI Volume", + pv: builder.ForPersistentVolume("gcpcsi").NodeAffinityRequired( + builder.ForNodeSelector( + *builder.NewNodeSelectorTermBuilder().WithMatchExpression("topology.gke.io/zone", + "In", "us-west1-a").Result(), + ).Result(), + ).Result(), + wantKey: "topology.gke.io/zone", + wantValue: "us-west1-a", + }, { name: "AWS CSI Volume with multiple zone value, returns the first", pv: builder.ForPersistentVolume("awscsi").NodeAffinityRequired(