From 29c21daafbefd31779a94d629924f6ab8a73ef17 Mon Sep 17 00:00:00 2001 From: Pengfei Ni Date: Fri, 8 May 2020 07:22:47 +0000 Subject: [PATCH] Fix public IP not shown issues after assigning public IP to Azure VMs --- .../azure/azure_instances.go | 6 +++--- .../azure/azure_instances_test.go | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances.go index 718e98c6df4..86c30d44f5a 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances.go @@ -74,7 +74,7 @@ func (az *Cloud) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.N } if az.UseInstanceMetadata { - metadata, err := az.metadata.GetMetadata(azcache.CacheReadTypeUnsafe) + metadata, err := az.metadata.GetMetadata(azcache.CacheReadTypeDefault) if err != nil { return nil, err } @@ -264,7 +264,7 @@ func (az *Cloud) InstanceID(ctx context.Context, name types.NodeName) (string, e } if az.UseInstanceMetadata { - metadata, err := az.metadata.GetMetadata(azcache.CacheReadTypeUnsafe) + metadata, err := az.metadata.GetMetadata(azcache.CacheReadTypeDefault) if err != nil { return "", err } @@ -351,7 +351,7 @@ func (az *Cloud) InstanceType(ctx context.Context, name types.NodeName) (string, } if az.UseInstanceMetadata { - metadata, err := az.metadata.GetMetadata(azcache.CacheReadTypeUnsafe) + metadata, err := az.metadata.GetMetadata(azcache.CacheReadTypeDefault) if err != nil { return "", err } diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances_test.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances_test.go index 8cec90ba444..1f989c2ab94 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances_test.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_instances_test.go @@ -373,6 +373,25 @@ func TestNodeAddresses(t *testing.T) { if !reflect.DeepEqual(ipAddresses, test.expected) { t.Errorf("Test [%s] unexpected ipAddresses: %s, expected %q", test.name, ipAddresses, test.expected) } + + // address should be get again from IMDS if it is not found in cache. + err = cloud.metadata.imsCache.Delete(metadataCacheKey) + if err != nil { + t.Errorf("Test [%s] unexpected error: %v", test.name, err) + } + ipAddresses, err = cloud.NodeAddresses(context.Background(), types.NodeName(test.nodeName)) + if test.expectError { + if err == nil { + t.Errorf("Test [%s] unexpected nil err", test.name) + } + } else { + if err != nil { + t.Errorf("Test [%s] unexpected error: %v", test.name, err) + } + } + if !reflect.DeepEqual(ipAddresses, test.expected) { + t.Errorf("Test [%s] unexpected ipAddresses: %s, expected %q", test.name, ipAddresses, test.expected) + } } }