Unverified Commit 2f930306 authored by Kubernetes Prow Robot's avatar Kubernetes Prow Robot Committed by GitHub

Merge pull request #74936 from rjaini/rj_1.14

Adding a check to make sure Metadata is read only if flag value is true.
parents 14b671b2 e0f51bcc
...@@ -1676,7 +1676,8 @@ func validateEmptyConfig(t *testing.T, config string) { ...@@ -1676,7 +1676,8 @@ func validateEmptyConfig(t *testing.T, config string) {
func TestGetZone(t *testing.T) { func TestGetZone(t *testing.T) {
cloud := &Cloud{ cloud := &Cloud{
Config: Config{ Config: Config{
Location: "eastus", Location: "eastus",
UseInstanceMetadata: true,
}, },
} }
testcases := []struct { testcases := []struct {
......
...@@ -19,6 +19,7 @@ package azure ...@@ -19,6 +19,7 @@ package azure
import ( import (
"context" "context"
"fmt" "fmt"
"os"
"strconv" "strconv"
"strings" "strings"
...@@ -49,31 +50,39 @@ func (az *Cloud) GetZoneID(zoneLabel string) string { ...@@ -49,31 +50,39 @@ func (az *Cloud) GetZoneID(zoneLabel string) string {
// GetZone returns the Zone containing the current availability zone and locality region that the program is running in. // GetZone returns the Zone containing the current availability zone and locality region that the program is running in.
// If the node is not running with availability zones, then it will fall back to fault domain. // If the node is not running with availability zones, then it will fall back to fault domain.
func (az *Cloud) GetZone(ctx context.Context) (cloudprovider.Zone, error) { func (az *Cloud) GetZone(ctx context.Context) (cloudprovider.Zone, error) {
metadata, err := az.metadata.GetMetadata() if az.UseInstanceMetadata {
if err != nil { metadata, err := az.metadata.GetMetadata()
return cloudprovider.Zone{}, err if err != nil {
} return cloudprovider.Zone{}, err
}
if metadata.Compute == nil { if metadata.Compute == nil {
return cloudprovider.Zone{}, fmt.Errorf("failure of getting compute information from instance metadata") return cloudprovider.Zone{}, fmt.Errorf("failure of getting compute information from instance metadata")
} }
zone := "" zone := ""
if metadata.Compute.Zone != "" { if metadata.Compute.Zone != "" {
zoneID, err := strconv.Atoi(metadata.Compute.Zone) zoneID, err := strconv.Atoi(metadata.Compute.Zone)
if err != nil { if err != nil {
return cloudprovider.Zone{}, fmt.Errorf("failed to parse zone ID %q: %v", metadata.Compute.Zone, err) return cloudprovider.Zone{}, fmt.Errorf("failed to parse zone ID %q: %v", metadata.Compute.Zone, err)
}
zone = az.makeZone(zoneID)
} else {
klog.V(3).Infof("Availability zone is not enabled for the node, falling back to fault domain")
zone = metadata.Compute.FaultDomain
} }
zone = az.makeZone(zoneID)
} else {
klog.V(3).Infof("Availability zone is not enabled for the node, falling back to fault domain")
zone = metadata.Compute.FaultDomain
}
return cloudprovider.Zone{ return cloudprovider.Zone{
FailureDomain: zone, FailureDomain: zone,
Region: az.Location, Region: az.Location,
}, nil }, nil
}
// if UseInstanceMetadata is false, get Zone name by calling ARM
hostname, err := os.Hostname()
if err != nil {
return cloudprovider.Zone{}, fmt.Errorf("failure getting hostname from kernel")
}
return az.vmSet.GetZoneByNodeName(strings.ToLower(hostname))
} }
// GetZoneByProviderID implements Zones.GetZoneByProviderID // GetZoneByProviderID implements Zones.GetZoneByProviderID
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment