Skip to content

Commit 703c093

Browse files
Neil Vachharajaniwerne2j
Neil Vachharajani
authored andcommitted
chore(deps): replace aws-sdk-go with aws-sdk-go-v2
aws-sdk-go-v2 supports more formats of AWS configuration. In particular, it supports the sso-session configuration [section](https://docs.aws.amazon.com/cli/latest/userguide/sso-configure-profile-token.html#sso-configure-profile-token-manual). Signed-off-by: Neil Vachharajani <[email protected]>
1 parent c8c85c1 commit 703c093

File tree

6 files changed

+67
-25
lines changed

6 files changed

+67
-25
lines changed

docs/backends.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,10 @@ stringData:
237237
### AWS Secrets Manager
238238

239239
##### AWS Authentication
240-
Refer to the [AWS go SDK README](https://github.com/aws/aws-sdk-go#configuring-credentials) for supplying AWS credentials.
241-
Supported credentials and the order in which they are loaded are described [here](https://github.com/aws/aws-sdk-go/blob/v1.38.62/aws/session/doc.go#L22).
240+
Refer to the [AWS SDK for Go V2
241+
documentation](https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/#specifying-credentials) for
242+
supplying AWS credentials. Supported credentials and the order in which they are loaded are
243+
described [here](https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/#specifying-credentials).
242244

243245
These are the parameters for AWS:
244246
```

go.mod

+14-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ require (
2020
github.com/IBM/go-sdk-core/v5 v5.10.1
2121
github.com/IBM/secrets-manager-go-sdk v1.0.44
2222
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect
23-
github.com/aws/aws-sdk-go v1.44.24
23+
github.com/aws/aws-sdk-go-v2 v1.17.5
24+
github.com/aws/aws-sdk-go-v2/config v1.18.15
25+
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.18.6
2426
github.com/cenkalti/backoff/v3 v3.2.2 // indirect
2527
github.com/go-logr/logr v1.2.3 // indirect
2628
github.com/go-openapi/errors v0.20.2 // indirect
@@ -76,6 +78,17 @@ require (
7678
github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190620160927-9418d7b0cd0f // indirect
7779
github.com/armon/go-metrics v0.4.0 // indirect
7880
github.com/armon/go-radix v1.0.0 // indirect
81+
github.com/aws/aws-sdk-go v1.44.24 // indirect
82+
github.com/aws/aws-sdk-go-v2/credentials v1.13.15 // indirect
83+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.23 // indirect
84+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.29 // indirect
85+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.23 // indirect
86+
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.30 // indirect
87+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.23 // indirect
88+
github.com/aws/aws-sdk-go-v2/service/sso v1.12.4 // indirect
89+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.4 // indirect
90+
github.com/aws/aws-sdk-go-v2/service/sts v1.18.5 // indirect
91+
github.com/aws/smithy-go v1.13.5 // indirect
7992
github.com/beorn7/perks v1.0.1 // indirect
8093
github.com/bgentry/speakeasy v0.1.0 // indirect
8194
github.com/blang/semver v3.5.1+incompatible // indirect

go.sum

+26-4
Original file line numberDiff line numberDiff line change
@@ -203,14 +203,36 @@ github.com/aws/aws-sdk-go v1.25.41/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpi
203203
github.com/aws/aws-sdk-go v1.30.27/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
204204
github.com/aws/aws-sdk-go v1.44.24 h1:3nOkwJBJLiGBmJKWp3z0utyXuBkxyGkRRwWjrTItJaY=
205205
github.com/aws/aws-sdk-go v1.44.24/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
206-
github.com/aws/aws-sdk-go-v2 v1.8.0 h1:HcN6yDnHV9S7D69E7To0aUppJhiJNEzQSNcUxc7r3qo=
207-
github.com/aws/aws-sdk-go-v2/credentials v1.3.2 h1:Uud/fZzm0lqqhE8kvXYJFAJ3PGnagKoUcvHq1hXfBZw=
206+
github.com/aws/aws-sdk-go-v2 v1.17.5 h1:TzCUW1Nq4H8Xscph5M/skINUitxM5UBAyvm2s7XBzL4=
207+
github.com/aws/aws-sdk-go-v2 v1.17.5/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
208+
github.com/aws/aws-sdk-go-v2/config v1.18.15 h1:509yMO0pJUGUugBP2H9FOFyV+7Mz7sRR+snfDN5W4NY=
209+
github.com/aws/aws-sdk-go-v2/config v1.18.15/go.mod h1:vS0tddZqpE8cD9CyW0/kITHF5Bq2QasW9Y1DFHD//O0=
210+
github.com/aws/aws-sdk-go-v2/credentials v1.13.15 h1:0rZQIi6deJFjOEgHI9HI2eZcLPPEGQPictX66oRFLL8=
211+
github.com/aws/aws-sdk-go-v2/credentials v1.13.15/go.mod h1:vRMLMD3/rXU+o6j2MW5YefrGMBmdTvkLLGqFwMLBHQc=
212+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.23 h1:Kbiv9PGnQfG/imNI4L/heyUXvzKmcWSBeDvkrQz5pFc=
213+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.23/go.mod h1:mOtmAg65GT1HIL/HT/PynwPbS+UG0BgCZ6vhkPqnxWo=
208214
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.4.0 h1:Iqp2aHeRF3kaaNuDS82bHBzER285NM6lLPAgsxHCR2A=
215+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.29 h1:9/aKwwus0TQxppPXFmf010DFrE+ssSbzroLVYINA+xE=
216+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.29/go.mod h1:Dip3sIGv485+xerzVv24emnjX5Sg88utCL8fwGmCeWg=
217+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.23 h1:b/Vn141DBuLVgXbhRWIrl9g+ww7G+ScV5SzniWR13jQ=
218+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.23/go.mod h1:mr6c4cHC+S/MMkrjtSlG4QA36kOznDep+0fga5L/fGQ=
219+
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.30 h1:IVx9L7YFhpPq0tTnGo8u8TpluFu7nAn9X3sUDMb11c0=
220+
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.30/go.mod h1:vsbq62AOBwQ1LJ/GWKFxX8beUEYeRp/Agitrxee2/qM=
209221
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.2.2 h1:YcGVEqLQGHDa81776C3daai6ZkkRGf/8RAQ07hV0QcU=
210-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.2.2 h1:Xv1rGYgsRRn0xw9JFNnfpBMZam54PrWpC4rJOJ9koA8=
222+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.23 h1:QoOybhwRfciWUBbZ0gp9S7XaDnCuSTeK/fySB99V1ls=
223+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.23/go.mod h1:9uPh+Hrz2Vn6oMnQYiUi/zbh3ovbnQk19YKINkQny44=
211224
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.5.2 h1:ewIpdVz12MDinJJB/nu1uUiFIWFnvtd3iV7cEW7lR+M=
212225
github.com/aws/aws-sdk-go-v2/service/s3 v1.12.0 h1:cxZbzTYXgiQrZ6u2/RJZAkkgZssqYOdydvJPBgIHlsM=
213-
github.com/aws/smithy-go v1.7.0 h1:+cLHMRrDZvQ4wk+KuQ9yH6eEg6KZEJ9RI2IkDqnygCg=
226+
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.18.6 h1:VjvQw/1Qf/rhDSl+NNOeybSpdPRjBfH60//5vzveVsY=
227+
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.18.6/go.mod h1:CJcdJtrO6ulXfI8l2DotKWmJShhXHCEcd9Wibyx3kC0=
228+
github.com/aws/aws-sdk-go-v2/service/sso v1.12.4 h1:qJdM48OOLl1FBSzI7ZrA1ZfLwOyCYqkXV5lko1hYDBw=
229+
github.com/aws/aws-sdk-go-v2/service/sso v1.12.4/go.mod h1:jtLIhd+V+lft6ktxpItycqHqiVXrPIRjWIsFIlzMriw=
230+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.4 h1:YRkWXQveFb0tFC0TLktmmhGsOcCgLwvq88MC2al47AA=
231+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.4/go.mod h1:zVwRrfdSmbRZWkUkWjOItY7SOalnFnq/Yg2LVPqDjwc=
232+
github.com/aws/aws-sdk-go-v2/service/sts v1.18.5 h1:L1600eLr0YvTT7gNh3Ni24yGI7NSHkq9Gp62vijPRCs=
233+
github.com/aws/aws-sdk-go-v2/service/sts v1.18.5/go.mod h1:1mKZHLLpDMHTNSYPJ7qrcnCQdHCWsNQaT0xRvq2u80s=
234+
github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8=
235+
github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
214236
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
215237
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
216238
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=

pkg/backends/awssecretsmanager.go

+13-7
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,28 @@
11
package backends
22

33
import (
4+
"context"
45
"encoding/json"
56
"fmt"
67

78
"github.com/argoproj-labs/argocd-vault-plugin/pkg/utils"
8-
"github.com/aws/aws-sdk-go/aws"
9-
"github.com/aws/aws-sdk-go/service/secretsmanager"
10-
"github.com/aws/aws-sdk-go/service/secretsmanager/secretsmanageriface"
9+
"github.com/aws/aws-sdk-go-v2/aws"
10+
"github.com/aws/aws-sdk-go-v2/service/secretsmanager"
1111
)
1212

13+
type AWSSecretsManagerIface interface {
14+
GetSecretValue(ctx context.Context,
15+
params *secretsmanager.GetSecretValueInput,
16+
optFns ...func(*secretsmanager.Options)) (*secretsmanager.GetSecretValueOutput, error)
17+
}
18+
1319
// AWSSecretsManager is a struct for working with a AWS Secrets Manager backend
1420
type AWSSecretsManager struct {
15-
Client secretsmanageriface.SecretsManagerAPI
21+
Client AWSSecretsManagerIface
1622
}
1723

1824
// NewAWSSecretsManagerBackend initializes a new AWS Secrets Manager backend
19-
func NewAWSSecretsManagerBackend(client secretsmanageriface.SecretsManagerAPI) *AWSSecretsManager {
25+
func NewAWSSecretsManagerBackend(client AWSSecretsManagerIface) *AWSSecretsManager {
2026
return &AWSSecretsManager{
2127
Client: client,
2228
}
@@ -34,11 +40,11 @@ func (a *AWSSecretsManager) GetSecrets(path string, version string, annotations
3440
}
3541

3642
if version != "" {
37-
input.SetVersionId(version)
43+
input.VersionId = aws.String(version)
3844
}
3945

4046
utils.VerboseToStdErr("AWS Secrets Manager getting secret %s at version %s", path, version)
41-
result, err := a.Client.GetSecretValue(input)
47+
result, err := a.Client.GetSecretValue(context.TODO(), input)
4248
if err != nil {
4349
return nil, err
4450
}

pkg/backends/awssecretsmanager_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
package backends_test
22

33
import (
4+
"context"
45
"reflect"
56
"testing"
67

78
"github.com/argoproj-labs/argocd-vault-plugin/pkg/backends"
8-
"github.com/aws/aws-sdk-go/service/secretsmanager"
9-
"github.com/aws/aws-sdk-go/service/secretsmanager/secretsmanageriface"
9+
"github.com/aws/aws-sdk-go-v2/service/secretsmanager"
1010
)
1111

1212
type mockSecretsManagerClient struct {
13-
secretsmanageriface.SecretsManagerAPI
13+
backends.AWSSecretsManagerIface
1414
}
1515

16-
func (m *mockSecretsManagerClient) GetSecretValue(input *secretsmanager.GetSecretValueInput) (*secretsmanager.GetSecretValueOutput, error) {
16+
func (m *mockSecretsManagerClient) GetSecretValue(ctx context.Context, input *secretsmanager.GetSecretValueInput, options ...func(*secretsmanager.Options)) (*secretsmanager.GetSecretValueOutput, error) {
1717
data := &secretsmanager.GetSecretValueOutput{}
1818

1919
switch *input.SecretId {

pkg/config/config.go

+6-7
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@ import (
2020
"github.com/argoproj-labs/argocd-vault-plugin/pkg/kube"
2121
"github.com/argoproj-labs/argocd-vault-plugin/pkg/types"
2222
"github.com/argoproj-labs/argocd-vault-plugin/pkg/utils"
23-
"github.com/aws/aws-sdk-go/aws"
24-
"github.com/aws/aws-sdk-go/aws/session"
25-
awssm "github.com/aws/aws-sdk-go/service/secretsmanager"
23+
"github.com/aws/aws-sdk-go-v2/config"
24+
awssm "github.com/aws/aws-sdk-go-v2/service/secretsmanager"
2625
"github.com/hashicorp/vault/api"
2726
ksm "github.com/keeper-security/secrets-manager-go/core"
2827
"github.com/spf13/viper"
@@ -166,14 +165,14 @@ func New(v *viper.Viper, co *Options) (*Config, error) {
166165
v.Set(types.EnvAWSRegion, types.AwsDefaultRegion)
167166
}
168167

169-
s, err := session.NewSession(&aws.Config{
170-
Region: aws.String(v.GetString(types.EnvAWSRegion)),
171-
})
168+
s, err := config.LoadDefaultConfig(context.TODO(),
169+
config.WithRegion(v.GetString(types.EnvAWSRegion)),
170+
)
172171
if err != nil {
173172
return nil, err
174173
}
175174

176-
client := awssm.New(s)
175+
client := awssm.NewFromConfig(s)
177176
backend = backends.NewAWSSecretsManagerBackend(client)
178177
}
179178
case types.GCPSecretManagerbackend:

0 commit comments

Comments
 (0)