|
85 | 85 |
|
86 | 86 | ENV['AWS_CONTAINER_CREDENTIALS_RELATIVE_URI'] = nil
|
87 | 87 |
|
| 88 | + # Make sure fetched credentials are different from those of instance metadata endpoint |
| 89 | + container_credentials = { |
| 90 | + 'AccessKeyId' => 'dummycontainerkey', |
| 91 | + 'SecretAccessKey' => 'dummycontainersecret', |
| 92 | + 'Token' => 'dummycontainertoken', |
| 93 | + 'Expiration' => expires_at.xmlschema |
| 94 | + } |
| 95 | + |
| 96 | + ENV['AWS_CONTAINER_CREDENTIALS_FULL_URI'] = 'http://169.254.170.23/v1/credentials' |
| 97 | + ENV['AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE'] = File.dirname(__FILE__) + '/lorem.txt' |
| 98 | + Excon.stub({ method: :get, scheme: 'http', host: '169.254.170.23', path: '/v1/credentials' }, |
| 99 | + { status: 200, body: Fog::JSON.encode(container_credentials) }) |
| 100 | + |
| 101 | + tests('#fetch_credentials with EKS Pod Identity') do |
| 102 | + returns(aws_access_key_id: 'dummycontainerkey', |
| 103 | + aws_secret_access_key: 'dummycontainersecret', |
| 104 | + aws_session_token: 'dummycontainertoken', |
| 105 | + region: 'us-west-1', |
| 106 | + aws_credentials_expire_at: expires_at) { Fog::AWS::Compute.fetch_credentials(use_iam_profile: true) } |
| 107 | + end |
| 108 | + |
| 109 | + ENV['AWS_CONTAINER_CREDENTIALS_FULL_URI'] = nil |
| 110 | + ENV['AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE'] = nil |
| 111 | + |
88 | 112 | ENV['AWS_WEB_IDENTITY_TOKEN_FILE'] = File.dirname(__FILE__) + '/lorem.txt'
|
89 | 113 | ENV['AWS_ROLE_ARN'] = "dummyrole"
|
90 | 114 | ENV['AWS_ROLE_SESSION_NAME'] = "dummyrolesessionname"
|
|
259 | 283 | end
|
260 | 284 | ensure
|
261 | 285 | ENV['AWS_CONTAINER_CREDENTIALS_RELATIVE_URI'] = nil
|
| 286 | + ENV['AWS_CONTAINER_CREDENTIALS_FULL_URI'] = nil |
| 287 | + ENV['AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE'] = nil |
262 | 288 | ENV['AWS_WEB_IDENTITY_TOKEN_FILE'] = nil
|
263 | 289 | Excon.stubs.clear
|
264 | 290 | Excon.defaults[:mock] = old_mock_value
|
|
0 commit comments