@@ -39,15 +39,14 @@ func TestNewMetadataService(t *testing.T) {
3939
4040 testCases := []struct {
4141 name string
42- region string
42+ imdsDisabled bool
4343 ec2MetadataError error
4444 k8sAPIError error
4545 expectedMetadata * Metadata
4646 expectedError error
4747 }{
4848 {
49- name : "TestNewMetadataService: EC2 metadata available" ,
50- region : "us-west-2" ,
49+ name : "TestNewMetadataService: EC2 metadata available" ,
5150 expectedMetadata : & Metadata {
5251 InstanceID : "i-1234567890abcdef0" ,
5352 InstanceType : "c5.xlarge" ,
@@ -57,9 +56,20 @@ func TestNewMetadataService(t *testing.T) {
5756 NumBlockDeviceMappings : 2 ,
5857 },
5958 },
59+ {
60+ name : "TestNewMetadataService: AWS_EC2_METADATA_DISABLED=true, K8s API available" ,
61+ imdsDisabled : true ,
62+ expectedMetadata : & Metadata {
63+ InstanceID : "i-1234567890abcdef0" ,
64+ InstanceType : "c5.xlarge" ,
65+ Region : "us-west-2" ,
66+ AvailabilityZone : "us-west-2a" ,
67+ NumAttachedENIs : 1 ,
68+ NumBlockDeviceMappings : 0 ,
69+ },
70+ },
6071 {
6172 name : "TestNewMetadataService: EC2 metadata error, K8s API available" ,
62- region : "us-west-2" ,
6373 ec2MetadataError : errors .New ("EC2 metadata error" ),
6474 expectedMetadata : & Metadata {
6575 InstanceID : "i-1234567890abcdef0" ,
@@ -72,7 +82,6 @@ func TestNewMetadataService(t *testing.T) {
7282 },
7383 {
7484 name : "TestNewMetadataService: EC2 metadata error, K8s API error" ,
75- region : "us-west-2" ,
7685 ec2MetadataError : errors .New ("EC2 metadata error" ),
7786 k8sAPIError : errors .New ("K8s API error" ),
7887 expectedError : errors .New ("IMDS metadata and Kubernetes metadata are both unavailable" ),
@@ -103,8 +112,13 @@ func TestNewMetadataService(t *testing.T) {
103112 }
104113
105114 t .Setenv ("CSI_NODE_NAME" , "test-node" )
115+ if tc .imdsDisabled {
116+ t .Setenv ("AWS_EC2_METADATA_DISABLED" , "true" )
117+ } else {
118+ t .Setenv ("AWS_EC2_METADATA_DISABLED" , "false" )
119+ }
106120
107- if tc .ec2MetadataError == nil {
121+ if tc .ec2MetadataError == nil && ! tc . imdsDisabled {
108122 mockEC2Metadata .EXPECT ().GetInstanceIdentityDocument (gomock .Any (), & imds.GetInstanceIdentityDocumentInput {}).Return (& imds.GetInstanceIdentityDocumentOutput {
109123 InstanceIdentityDocument : imds.InstanceIdentityDocument {
110124 InstanceID : "i-1234567890abcdef0" ,
@@ -132,7 +146,7 @@ func TestNewMetadataService(t *testing.T) {
132146 K8sAPIClient : mockK8sClient ,
133147 }
134148
135- metadata , err := NewMetadataService (cfg , tc . region )
149+ metadata , err := NewMetadataService (cfg , "us-west-2" )
136150
137151 if tc .expectedError != nil {
138152 require .EqualError (t , err , tc .expectedError .Error ())
0 commit comments