From 3bca7a01366107b93760b05ac1f82aa4d08313f2 Mon Sep 17 00:00:00 2001 From: Pengfei Ni Date: Wed, 26 Sep 2018 13:18:10 +0800 Subject: [PATCH] Add fallbacks for getting node IP from Azure IMDS --- pkg/cloudprovider/providers/azure/azure_instances.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/cloudprovider/providers/azure/azure_instances.go b/pkg/cloudprovider/providers/azure/azure_instances.go index 916bbfd7ec9..88f049956f8 100644 --- a/pkg/cloudprovider/providers/azure/azure_instances.go +++ b/pkg/cloudprovider/providers/azure/azure_instances.go @@ -87,6 +87,15 @@ func (az *Cloud) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.N if err != nil { return nil, err } + + // Fall back to ARM API if the address is empty string. + // TODO: this is a workaround because IMDS is not stable enough. + // It should be removed after IMDS fixing the issue. + if strings.TrimSpace(ipAddress.PrivateIP) == "" { + return addressGetter(name) + } + + // Use ip address got from instance metadata. addresses := []v1.NodeAddress{ {Type: v1.NodeInternalIP, Address: ipAddress.PrivateIP}, {Type: v1.NodeHostName, Address: string(name)},