Skip to content

Commit ee3bb78

Browse files
authored
NewInstanceCredentialsCache returns *aws.CredentialsCache (#4431)
1 parent c24cdae commit ee3bb78

File tree

9 files changed

+55
-49
lines changed

9 files changed

+55
-49
lines changed

agent/app/agent.go

+5-7
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ type ecsAgent struct {
148148
dockerClient dockerapi.DockerClient
149149
containerInstanceARN string
150150
credentialProvider *aws_credentials.Credentials
151-
credentialsCache awsv2.CredentialsProvider
151+
credentialsCache *awsv2.CredentialsCache
152152
stateManagerFactory factory.StateManager
153153
saveableOptionFactory factory.SaveableOption
154154
pauseLoader loader.Loader
@@ -234,12 +234,10 @@ func newAgent(blackholeEC2Metadata bool, acceptInsecureCert *bool) (agent, error
234234
metadataManager = containermetadata.NewManager(dockerClient, cfg)
235235
}
236236

237-
credentialsCache := awsv2.NewCredentialsCache(
238-
providers.NewInstanceCredentialsCache(
239-
cfg.External.Enabled(),
240-
providers.NewRotatingSharedCredentialsProviderV2(),
241-
nil,
242-
),
237+
credentialsCache := providers.NewInstanceCredentialsCache(
238+
cfg.External.Enabled(),
239+
providers.NewRotatingSharedCredentialsProviderV2(),
240+
nil,
243241
)
244242
initialSeqNumber := int64(-1)
245243
return &ecsAgent{

agent/app/agent_test.go

+12-12
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ func TestDoStartRegisterContainerInstanceErrorTerminal(t *testing.T) {
270270
ctx: ctx,
271271
cfg: &cfg,
272272
pauseLoader: mockPauseLoader,
273-
credentialsCache: mockCredentialsProvider,
273+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
274274
dockerClient: dockerClient,
275275
mobyPlugins: mockMobyPlugins,
276276
ec2MetadataClient: mockEC2Metadata,
@@ -332,7 +332,7 @@ func TestDoStartRegisterContainerInstanceErrorNonTerminal(t *testing.T) {
332332
cfg: &cfg,
333333
dockerClient: dockerClient,
334334
pauseLoader: mockPauseLoader,
335-
credentialsCache: mockCredentialsProvider,
335+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
336336
mobyPlugins: mockMobyPlugins,
337337
ec2MetadataClient: mockEC2Metadata,
338338
terminationHandler: func(taskEngineState dockerstate.TaskEngineState, dataClient data.Client, taskEngine engine.TaskEngine, cancel context.CancelFunc) {
@@ -515,7 +515,7 @@ func testDoStartHappyPathWithConditions(t *testing.T, blackholed bool, warmPools
515515
dockerClient: dockerClient,
516516
dataClient: dataClient,
517517
pauseLoader: mockPauseLoader,
518-
credentialsCache: mockCredentialsProvider,
518+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
519519
mobyPlugins: mockMobyPlugins,
520520
metadataManager: containermetadata,
521521
terminationHandler: func(taskEngineState dockerstate.TaskEngineState, dataClient data.Client, taskEngine engine.TaskEngine, cancel context.CancelFunc) {
@@ -1015,7 +1015,7 @@ func TestReregisterContainerInstanceHappyPath(t *testing.T) {
10151015
cfg: &cfg,
10161016
dockerClient: mockDockerClient,
10171017
pauseLoader: mockPauseLoader,
1018-
credentialsCache: mockCredentialsProvider,
1018+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
10191019
mobyPlugins: mockMobyPlugins,
10201020
ec2MetadataClient: mockEC2Metadata,
10211021
serviceconnectManager: mockServiceConnectManager,
@@ -1075,7 +1075,7 @@ func TestReregisterContainerInstanceInstanceTypeChanged(t *testing.T) {
10751075
cfg: &cfg,
10761076
dockerClient: mockDockerClient,
10771077
pauseLoader: mockPauseLoader,
1078-
credentialsCache: mockCredentialsProvider,
1078+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
10791079
ec2MetadataClient: mockEC2Metadata,
10801080
mobyPlugins: mockMobyPlugins,
10811081
serviceconnectManager: mockServiceConnectManager,
@@ -1135,7 +1135,7 @@ func TestReregisterContainerInstanceAttributeError(t *testing.T) {
11351135
ec2MetadataClient: mockEC2Metadata,
11361136
dockerClient: mockDockerClient,
11371137
pauseLoader: mockPauseLoader,
1138-
credentialsCache: mockCredentialsProvider,
1138+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
11391139
mobyPlugins: mockMobyPlugins,
11401140
serviceconnectManager: mockServiceConnectManager,
11411141
daemonManagers: mockDaemonManagers,
@@ -1194,7 +1194,7 @@ func TestReregisterContainerInstanceNonTerminalError(t *testing.T) {
11941194
dockerClient: mockDockerClient,
11951195
ec2MetadataClient: mockEC2Metadata,
11961196
pauseLoader: mockPauseLoader,
1197-
credentialsCache: mockCredentialsProvider,
1197+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
11981198
mobyPlugins: mockMobyPlugins,
11991199
serviceconnectManager: mockServiceConnectManager,
12001200
daemonManagers: mockDaemonManagers,
@@ -1254,7 +1254,7 @@ func TestRegisterContainerInstanceWhenContainerInstanceARNIsNotSetHappyPath(t *t
12541254
dockerClient: mockDockerClient,
12551255
ec2MetadataClient: mockEC2Metadata,
12561256
pauseLoader: mockPauseLoader,
1257-
credentialsCache: mockCredentialsProvider,
1257+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
12581258
mobyPlugins: mockMobyPlugins,
12591259
serviceconnectManager: mockServiceConnectManager,
12601260
daemonManagers: mockDaemonManagers,
@@ -1312,7 +1312,7 @@ func TestRegisterContainerInstanceWhenContainerInstanceARNIsNotSetCanRetryError(
13121312
dockerClient: mockDockerClient,
13131313
ec2MetadataClient: mockEC2Metadata,
13141314
pauseLoader: mockPauseLoader,
1315-
credentialsCache: mockCredentialsProvider,
1315+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
13161316
mobyPlugins: mockMobyPlugins,
13171317
serviceconnectManager: mockServiceConnectManager,
13181318
daemonManagers: mockDaemonManagers,
@@ -1370,7 +1370,7 @@ func TestRegisterContainerInstanceWhenContainerInstanceARNIsNotSetCannotRetryErr
13701370
ec2MetadataClient: mockEC2Metadata,
13711371
dockerClient: mockDockerClient,
13721372
pauseLoader: mockPauseLoader,
1373-
credentialsCache: mockCredentialsProvider,
1373+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
13741374
mobyPlugins: mockMobyPlugins,
13751375
serviceconnectManager: mockServiceConnectManager,
13761376
daemonManagers: mockDaemonManagers,
@@ -1427,7 +1427,7 @@ func TestRegisterContainerInstanceWhenContainerInstanceARNIsNotSetAttributeError
14271427
ec2MetadataClient: mockEC2Metadata,
14281428
dockerClient: mockDockerClient,
14291429
pauseLoader: mockPauseLoader,
1430-
credentialsCache: mockCredentialsProvider,
1430+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
14311431
mobyPlugins: mockMobyPlugins,
14321432
serviceconnectManager: mockServiceConnectManager,
14331433
daemonManagers: mockDaemonManagers,
@@ -1486,7 +1486,7 @@ func TestRegisterContainerInstanceInvalidParameterTerminalError(t *testing.T) {
14861486
ec2MetadataClient: mockEC2Metadata,
14871487
cfg: &cfg,
14881488
pauseLoader: mockPauseLoader,
1489-
credentialsCache: mockCredentialsProvider,
1489+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
14901490
dockerClient: dockerClient,
14911491
mobyPlugins: mockMobyPlugins,
14921492
terminationHandler: func(taskEngineState dockerstate.TaskEngineState, dataClient data.Client, taskEngine engine.TaskEngine, cancel context.CancelFunc) {

agent/app/agent_unix_test.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ func TestDoStartTaskENIHappyPath(t *testing.T) {
171171
agent := &ecsAgent{
172172
ctx: ctx,
173173
cfg: &cfg,
174-
credentialsCache: mockCredentialsProvider,
174+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
175175
dataClient: data.NewNoopClient(),
176176
dockerClient: dockerClient,
177177
pauseLoader: mockPauseLoader,
@@ -510,7 +510,7 @@ func TestDoStartCgroupInitHappyPath(t *testing.T) {
510510
agent := &ecsAgent{
511511
ctx: ctx,
512512
cfg: &cfg,
513-
credentialsCache: mockCredentialsProvider,
513+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
514514
pauseLoader: mockPauseLoader,
515515
dockerClient: dockerClient,
516516
terminationHandler: func(state dockerstate.TaskEngineState, dataClient data.Client, taskEngine engine.TaskEngine, cancel context.CancelFunc) {
@@ -579,7 +579,7 @@ func TestDoStartCgroupInitErrorPath(t *testing.T) {
579579
agent := &ecsAgent{
580580
ctx: ctx,
581581
cfg: &cfg,
582-
credentialsCache: mockCredentialsProvider,
582+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
583583
dockerClient: dockerClient,
584584
pauseLoader: mockPauseLoader,
585585
terminationHandler: func(state dockerstate.TaskEngineState, dataClient data.Client, taskEngine engine.TaskEngine, cancel context.CancelFunc) {
@@ -689,7 +689,7 @@ func TestDoStartGPUManagerHappyPath(t *testing.T) {
689689
agent := &ecsAgent{
690690
ctx: ctx,
691691
cfg: &cfg,
692-
credentialsCache: mockCredentialsProvider,
692+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
693693
dockerClient: dockerClient,
694694
pauseLoader: mockPauseLoader,
695695
terminationHandler: func(state dockerstate.TaskEngineState, dataClient data.Client, taskEngine engine.TaskEngine, cancel context.CancelFunc) {
@@ -751,7 +751,7 @@ func TestDoStartGPUManagerInitError(t *testing.T) {
751751
agent := &ecsAgent{
752752
ctx: ctx,
753753
cfg: &cfg,
754-
credentialsCache: mockCredentialsProvider,
754+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
755755
dockerClient: dockerClient,
756756
pauseLoader: mockPauseLoader,
757757
terminationHandler: func(state dockerstate.TaskEngineState, dataClient data.Client, taskEngine engine.TaskEngine, cancel context.CancelFunc) {
@@ -799,7 +799,7 @@ func TestDoStartTaskENIPauseError(t *testing.T) {
799799
agent := &ecsAgent{
800800
ctx: ctx,
801801
cfg: &cfg,
802-
credentialsCache: mockCredentialsProvider,
802+
credentialsCache: awsv2.NewCredentialsCache(mockCredentialsProvider),
803803
dockerClient: dockerClient,
804804
pauseLoader: mockPauseLoader,
805805
cniClient: cniClient,

agent/vendor/github.com/aws/amazon-ecs-agent/ecs-agent/credentials/providers/instance_credentials_provider.go

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

agent/vendor/github.com/aws/amazon-ecs-agent/ecs-agent/credentials/providers/instance_credentials_provider_linux.go

+8-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

agent/vendor/github.com/aws/amazon-ecs-agent/ecs-agent/credentials/providers/instance_credentials_provider_windows.go

+6-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ecs-agent/credentials/providers/instance_credentials_provider.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ import (
1111
"github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds"
1212
)
1313

14-
type InstanceCredentialsCache struct {
14+
type InstanceCredentialsProvider struct {
1515
providers []aws.CredentialsProvider
1616
}
1717

18-
func (p *InstanceCredentialsCache) Retrieve(ctx context.Context) (aws.Credentials, error) {
18+
func (p *InstanceCredentialsProvider) Retrieve(ctx context.Context) (aws.Credentials, error) {
1919
var errs []error
2020
for _, provider := range p.providers {
2121
creds, err := provider.Retrieve(ctx)

ecs-agent/credentials/providers/instance_credentials_provider_linux.go

+8-6
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,18 @@ func NewInstanceCredentialsCache(
3232
isExternal bool,
3333
rotatingSharedCreds aws.CredentialsProvider,
3434
imdsClient ec2rolecreds.GetMetadataAPIClient,
35-
) *InstanceCredentialsCache {
35+
) *aws.CredentialsCache {
3636
// If imdsClient is nil, the SDK will default to the EC2 IMDS client.
3737
// Pass a non-nil imdsClient to stub it out in tests.
3838
options := func(o *ec2rolecreds.Options) {
3939
o.Client = imdsClient
4040
}
41-
return &InstanceCredentialsCache{
42-
providers: []aws.CredentialsProvider{
43-
defaultCreds(options),
44-
rotatingSharedCreds,
41+
return aws.NewCredentialsCache(
42+
&InstanceCredentialsProvider{
43+
providers: []aws.CredentialsProvider{
44+
defaultCreds(options),
45+
rotatingSharedCreds,
46+
},
4547
},
46-
}
48+
)
4749
}

ecs-agent/credentials/providers/instance_credentials_provider_windows.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func NewInstanceCredentialsCache(
5050
isExternal bool,
5151
rotatingSharedCreds aws.CredentialsProvider,
5252
imdsClient ec2rolecreds.GetMetadataAPIClient,
53-
) *InstanceCredentialsCache {
53+
) *aws.CredentialsCache {
5454
var providers []aws.CredentialsProvider
5555

5656
// If imdsClient is nil, the SDK will default to the EC2 IMDS client.
@@ -73,9 +73,11 @@ func NewInstanceCredentialsCache(
7373
}
7474
}
7575

76-
return &InstanceCredentialsCache{
77-
providers: providers,
78-
}
76+
return aws.NewCredentialsCache(
77+
&InstanceCredentialsProvider{
78+
providers: providers,
79+
},
80+
)
7981
}
8082

8183
var envCreds = aws.CredentialsProviderFunc(func(ctx context.Context) (aws.Credentials, error) {

0 commit comments

Comments
 (0)