From 49c6aeabe7a6cd118b730f258533a5524b817428 Mon Sep 17 00:00:00 2001 From: Matt Merkes Date: Thu, 24 Oct 2024 16:40:34 -0700 Subject: [PATCH] Updates ecr SDK to v2 SDK --- cmd/ecr-credential-provider/main.go | 59 ++++++++-------- cmd/ecr-credential-provider/main_test.go | 75 ++++++++++++-------- go.mod | 16 ++++- go.sum | 41 ++++++++--- pkg/mocks/mock_ecr.go | 89 ------------------------ 5 files changed, 121 insertions(+), 159 deletions(-) delete mode 100644 pkg/mocks/mock_ecr.go diff --git a/cmd/ecr-credential-provider/main.go b/cmd/ecr-credential-provider/main.go index d6b745e572..b26076a086 100644 --- a/cmd/ecr-credential-provider/main.go +++ b/cmd/ecr-credential-provider/main.go @@ -27,10 +27,10 @@ import ( "strings" "time" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/ecr" - "github.com/aws/aws-sdk-go/service/ecrpublic" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/ecr" + "github.com/aws/aws-sdk-go-v2/service/ecrpublic" "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -46,12 +46,12 @@ var ecrPrivateHostPattern = regexp.MustCompile(`^(\d{12})\.dkr\.ecr(\-fips)?\.([ // ECR abstracts the calls we make to aws-sdk for testing purposes type ECR interface { - GetAuthorizationToken(input *ecr.GetAuthorizationTokenInput) (*ecr.GetAuthorizationTokenOutput, error) + GetAuthorizationToken(ctx context.Context, params *ecr.GetAuthorizationTokenInput, optFns ...func(*ecr.Options)) (*ecr.GetAuthorizationTokenOutput, error) } // ECRPublic abstracts the calls we make to aws-sdk for testing purposes type ECRPublic interface { - GetAuthorizationToken(input *ecrpublic.GetAuthorizationTokenInput) (*ecrpublic.GetAuthorizationTokenOutput, error) + GetAuthorizationToken(ctx context.Context, params *ecrpublic.GetAuthorizationTokenInput, optFns ...func(*ecrpublic.Options)) (*ecrpublic.GetAuthorizationTokenOutput, error) } type ecrPlugin struct { @@ -59,35 +59,36 @@ type ecrPlugin struct { ecrPublic ECRPublic } -func defaultECRProvider(region string) (*ecr.ECR, error) { - cfg := aws.Config{} +func defaultECRProvider(ctx context.Context, region string) (ECR, error) { + var cfg aws.Config + var err error if region != "" { klog.Warningf("No region found in the image reference, the default region will be used. Please refer to AWS SDK documentation for configuration purpose.") - cfg.Region = aws.String(region) + cfg, err = config.LoadDefaultConfig(ctx, + config.WithRegion(region), + ) + } else { + cfg, err = config.LoadDefaultConfig(ctx) } - sess, err := session.NewSessionWithOptions(session.Options{ - Config: cfg, - SharedConfigState: session.SharedConfigEnable, - }) + if err != nil { return nil, err } - return ecr.New(sess), nil + return ecr.NewFromConfig(cfg), nil } -func publicECRProvider() (*ecrpublic.ECRPublic, error) { +func publicECRProvider(ctx context.Context) (ECRPublic, error) { // ECR public registries are only in one region and only accessible from regions // in the "aws" partition. - sess, err := session.NewSessionWithOptions(session.Options{ - Config: aws.Config{Region: aws.String(ecrPublicRegion)}, - SharedConfigState: session.SharedConfigEnable, - }) + cfg, err := config.LoadDefaultConfig(ctx, + config.WithRegion(ecrPublicRegion), + ) if err != nil { return nil, err } - return ecrpublic.New(sess), nil + return ecrpublic.NewFromConfig(cfg), nil } type credsData struct { @@ -95,18 +96,18 @@ type credsData struct { expiresAt *time.Time } -func (e *ecrPlugin) getPublicCredsData() (*credsData, error) { +func (e *ecrPlugin) getPublicCredsData(ctx context.Context) (*credsData, error) { klog.Infof("Getting creds for public registry") var err error if e.ecrPublic == nil { - e.ecrPublic, err = publicECRProvider() + e.ecrPublic, err = publicECRProvider(ctx) } if err != nil { return nil, err } - output, err := e.ecrPublic.GetAuthorizationToken(&ecrpublic.GetAuthorizationTokenInput{}) + output, err := e.ecrPublic.GetAuthorizationToken(ctx, &ecrpublic.GetAuthorizationTokenInput{}) if err != nil { return nil, err } @@ -125,18 +126,18 @@ func (e *ecrPlugin) getPublicCredsData() (*credsData, error) { }, nil } -func (e *ecrPlugin) getPrivateCredsData(imageHost string, image string) (*credsData, error) { +func (e *ecrPlugin) getPrivateCredsData(ctx context.Context, imageHost string, image string) (*credsData, error) { klog.Infof("Getting creds for private image %s", image) var err error if e.ecr == nil { region := parseRegionFromECRPrivateHost(imageHost) - e.ecr, err = defaultECRProvider(region) + e.ecr, err = defaultECRProvider(ctx, region) if err != nil { return nil, err } } - output, err := e.ecr.GetAuthorizationToken(&ecr.GetAuthorizationTokenInput{}) + output, err := e.ecr.GetAuthorizationToken(ctx, &ecr.GetAuthorizationTokenInput{}) if err != nil { return nil, err } @@ -162,9 +163,9 @@ func (e *ecrPlugin) GetCredentials(ctx context.Context, image string, args []str } if imageHost == ecrPublicHost { - creds, err = e.getPublicCredsData() + creds, err = e.getPublicCredsData(ctx) } else { - creds, err = e.getPrivateCredsData(imageHost, image) + creds, err = e.getPrivateCredsData(ctx, imageHost, image) } if err != nil { @@ -175,7 +176,7 @@ func (e *ecrPlugin) GetCredentials(ctx context.Context, image string, args []str return nil, errors.New("authorization token in response was nil") } - decodedToken, err := base64.StdEncoding.DecodeString(aws.StringValue(creds.authToken)) + decodedToken, err := base64.StdEncoding.DecodeString(aws.ToString(creds.authToken)) if err != nil { return nil, err } diff --git a/cmd/ecr-credential-provider/main_test.go b/cmd/ecr-credential-provider/main_test.go index 51f4d5b0cb..c2c1f6bd11 100644 --- a/cmd/ecr-credential-provider/main_test.go +++ b/cmd/ecr-credential-provider/main_test.go @@ -24,24 +24,50 @@ import ( "testing" "time" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/service/ecr" - "github.com/aws/aws-sdk-go/service/ecrpublic" - "github.com/golang/mock/gomock" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/ecr" + "github.com/aws/aws-sdk-go-v2/service/ecr/types" + "github.com/aws/aws-sdk-go-v2/service/ecrpublic" + publictypes "github.com/aws/aws-sdk-go-v2/service/ecrpublic/types" + "github.com/stretchr/testify/mock" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/cloud-provider-aws/pkg/mocks" v1 "k8s.io/kubelet/pkg/apis/credentialprovider/v1" ) +type MockedECR struct { + mock.Mock +} + +func (m *MockedECR) GetAuthorizationToken(ctx context.Context, params *ecr.GetAuthorizationTokenInput, optFns ...func(*ecr.Options)) (*ecr.GetAuthorizationTokenOutput, error) { + args := m.Called(ctx, params) + if args.Get(1) != nil { + return args.Get(0).(*ecr.GetAuthorizationTokenOutput), args.Get(1).(error) + } + return args.Get(0).(*ecr.GetAuthorizationTokenOutput), nil +} + +// ECRPublic abstracts the calls we make to aws-sdk for testing purposes +type MockedECRPublic struct { + mock.Mock +} + +func (m *MockedECRPublic) GetAuthorizationToken(ctx context.Context, params *ecrpublic.GetAuthorizationTokenInput, optFns ...func(*ecrpublic.Options)) (*ecrpublic.GetAuthorizationTokenOutput, error) { + args := m.Called(ctx, params) + if args.Get(1) != nil { + return args.Get(0).(*ecrpublic.GetAuthorizationTokenOutput), args.Get(1).(error) + } + return args.Get(0).(*ecrpublic.GetAuthorizationTokenOutput), nil +} + func generatePrivateGetAuthorizationTokenOutput(user string, password string, proxy string, expiration *time.Time) *ecr.GetAuthorizationTokenOutput { creds := []byte(fmt.Sprintf("%s:%s", user, password)) - data := &ecr.AuthorizationData{ + data := types.AuthorizationData{ AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString(creds)), ExpiresAt: expiration, ProxyEndpoint: aws.String(proxy), } output := &ecr.GetAuthorizationTokenOutput{ - AuthorizationData: []*ecr.AuthorizationData{data}, + AuthorizationData: []types.AuthorizationData{data}, } return output } @@ -60,11 +86,6 @@ func generateResponse(registry string, username string, password string) *v1.Cre } func Test_GetCredentials_Private(t *testing.T) { - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockECR := mocks.NewMockECR(ctrl) - testcases := []struct { name string image string @@ -109,7 +130,7 @@ func Test_GetCredentials_Private(t *testing.T) { { name: "empty authorization token", image: "123456789123.dkr.ecr.us-west-2.amazonaws.com", - getAuthorizationTokenOutput: &ecr.GetAuthorizationTokenOutput{AuthorizationData: []*ecr.AuthorizationData{{}}}, + getAuthorizationTokenOutput: &ecr.GetAuthorizationTokenOutput{AuthorizationData: []types.AuthorizationData{{}}}, getAuthorizationTokenError: nil, expectedError: errors.New("authorization token in response was nil"), }, @@ -124,19 +145,19 @@ func Test_GetCredentials_Private(t *testing.T) { name: "invalid authorization token", image: "123456789123.dkr.ecr.us-west-2.amazonaws.com", getAuthorizationTokenOutput: &ecr.GetAuthorizationTokenOutput{ - AuthorizationData: []*ecr.AuthorizationData{ - {AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(fmt.Sprint("foo"))))}, + AuthorizationData: []types.AuthorizationData{ + {AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte("foo")))}, }, }, getAuthorizationTokenError: nil, expectedError: errors.New("error parsing username and password from authorization token"), }, } - for _, testcase := range testcases { t.Run(testcase.name, func(t *testing.T) { - p := &ecrPlugin{ecr: mockECR} - mockECR.EXPECT().GetAuthorizationToken(gomock.Any()).Return(testcase.getAuthorizationTokenOutput, testcase.getAuthorizationTokenError) + mockECR := MockedECR{} + p := &ecrPlugin{ecr: &mockECR} + mockECR.On("GetAuthorizationToken", mock.Anything, mock.Anything).Return(testcase.getAuthorizationTokenOutput, testcase.getAuthorizationTokenError) creds, err := p.GetCredentials(context.TODO(), testcase.image, testcase.args) @@ -163,7 +184,7 @@ func Test_GetCredentials_Private(t *testing.T) { func generatePublicGetAuthorizationTokenOutput(user string, password string, proxy string, expiration *time.Time) *ecrpublic.GetAuthorizationTokenOutput { creds := []byte(fmt.Sprintf("%s:%s", user, password)) - data := &ecrpublic.AuthorizationData{ + data := &publictypes.AuthorizationData{ AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString(creds)), ExpiresAt: expiration, } @@ -174,11 +195,6 @@ func generatePublicGetAuthorizationTokenOutput(user string, password string, pro } func Test_GetCredentials_Public(t *testing.T) { - ctrl := gomock.NewController(t) - defer ctrl.Finish() - - mockECRPublic := mocks.NewMockECRPublic(ctrl) - testcases := []struct { name string image string @@ -211,7 +227,7 @@ func Test_GetCredentials_Public(t *testing.T) { { name: "empty authorization token", image: "public.ecr.aws", - getAuthorizationTokenOutput: &ecrpublic.GetAuthorizationTokenOutput{AuthorizationData: &ecrpublic.AuthorizationData{}}, + getAuthorizationTokenOutput: &ecrpublic.GetAuthorizationTokenOutput{AuthorizationData: &publictypes.AuthorizationData{}}, getAuthorizationTokenError: nil, expectedError: errors.New("authorization token in response was nil"), }, @@ -226,8 +242,8 @@ func Test_GetCredentials_Public(t *testing.T) { name: "invalid authorization token", image: "public.ecr.aws", getAuthorizationTokenOutput: &ecrpublic.GetAuthorizationTokenOutput{ - AuthorizationData: &ecrpublic.AuthorizationData{ - AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte(fmt.Sprint("foo")))), + AuthorizationData: &publictypes.AuthorizationData{ + AuthorizationToken: aws.String(base64.StdEncoding.EncodeToString([]byte("foo"))), }, }, getAuthorizationTokenError: nil, @@ -237,8 +253,9 @@ func Test_GetCredentials_Public(t *testing.T) { for _, testcase := range testcases { t.Run(testcase.name, func(t *testing.T) { - p := &ecrPlugin{ecrPublic: mockECRPublic} - mockECRPublic.EXPECT().GetAuthorizationToken(gomock.Any()).Return(testcase.getAuthorizationTokenOutput, testcase.getAuthorizationTokenError) + mockECRPublic := MockedECRPublic{} + p := &ecrPlugin{ecrPublic: &mockECRPublic} + mockECRPublic.On("GetAuthorizationToken", mock.Anything, mock.Anything).Return(testcase.getAuthorizationTokenOutput, testcase.getAuthorizationTokenError) creds, err := p.GetCredentials(context.TODO(), testcase.image, testcase.args) diff --git a/go.mod b/go.mod index 940eef0987..a4c6ce1082 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,10 @@ go 1.22.7 require ( github.com/aws/aws-sdk-go v1.55.5 - github.com/golang/mock v1.6.0 + github.com/aws/aws-sdk-go-v2 v1.32.2 + github.com/aws/aws-sdk-go-v2/config v1.28.0 + github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 + github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.2 github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 @@ -27,6 +30,17 @@ require ( github.com/NYTimes/gziphandler v1.1.1 // indirect github.com/antlr4-go/antlr/v4 v4.13.0 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.41 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.32.2 // indirect + github.com/aws/smithy-go v1.22.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect diff --git a/go.sum b/go.sum index b1afd57096..6d1a1b0ec8 100644 --- a/go.sum +++ b/go.sum @@ -8,6 +8,36 @@ github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3d github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go-v2 v1.32.2 h1:AkNLZEyYMLnx/Q/mSKkcMqwNFXMAvFto9bNsHqcTduI= +github.com/aws/aws-sdk-go-v2 v1.32.2/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= +github.com/aws/aws-sdk-go-v2/config v1.28.0 h1:FosVYWcqEtWNxHn8gB/Vs6jOlNwSoyOCA/g/sxyySOQ= +github.com/aws/aws-sdk-go-v2/config v1.28.0/go.mod h1:pYhbtvg1siOOg8h5an77rXle9tVG8T+BWLWAo7cOukc= +github.com/aws/aws-sdk-go-v2/credentials v1.17.41 h1:7gXo+Axmp+R4Z+AK8YFQO0ZV3L0gizGINCOWxSLY9W8= +github.com/aws/aws-sdk-go-v2/credentials v1.17.41/go.mod h1:u4Eb8d3394YLubphT4jLEwN1rLNq2wFOlT6OuxFwPzU= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17 h1:TMH3f/SCAWdNtXXVPPu5D6wrr4G5hI1rAxbcocKfC7Q= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.17/go.mod h1:1ZRXLdTpzdJb9fwTMXiLipENRxkGMTn1sfKexGllQCw= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21 h1:UAsR3xA31QGf79WzpG/ixT9FZvQlh5HY1NRqSHBNOCk= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.21/go.mod h1:JNr43NFf5L9YaG3eKTm7HQzls9J+A9YYcGI5Quh1r2Y= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21 h1:6jZVETqmYCadGFvrYEQfC5fAQmlo80CeL5psbno6r0s= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.21/go.mod h1:1SR0GbLlnN3QUmYaflZNiH1ql+1qrSiB2vwcJ+4UM60= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= +github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 h1:VDQaVwGOokbd3VUbHF+wupiffdrbAZPdQnr5XZMJqrs= +github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2/go.mod h1:lvUlMghKYmSxSfv0vU7pdU/8jSY+s0zpG8xXhaGKCw0= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.2 h1:Zru9Iy2JPM5+uRnFnoqeOZzi8JIVIHJ0ua6JdeDHcyg= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.2/go.mod h1:PtQC3XjutCYFCn1+i8+wtpDaXvEK+vXF2gyLIKAmh4A= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2 h1:s7NA1SOw8q/5c0wr8477yOPp0z+uBaXBnLE0XYb0POA= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.2/go.mod h1:fnjjWyAW/Pj5HYOxl9LJqWtEwS7W2qgcRLWP+uWbss0= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.2 h1:bSYXVyUzoTHoKalBmwaZxs97HU9DWWI3ehHSAMa7xOk= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.2/go.mod h1:skMqY7JElusiOUjMJMOv1jJsP7YUg7DrhgqZZWuzu1U= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2 h1:AhmO1fHINP9vFYUE0LHzCWg/LfUWUF+zFPEcY9QXb7o= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.2/go.mod h1:o8aQygT2+MVP0NaV6kbdE1YnnIM8RRVQzoeUH45GOdI= +github.com/aws/aws-sdk-go-v2/service/sts v1.32.2 h1:CiS7i0+FUe+/YY1GvIBLLrR/XNGZ4CtM1Ll0XavNuVo= +github.com/aws/aws-sdk-go-v2/service/sts v1.32.2/go.mod h1:HtaiBI8CjYoNVde8arShXb94UbQQi9L4EMr6D+xGBwo= +github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= +github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= @@ -61,8 +91,6 @@ github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOW github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= @@ -174,7 +202,6 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= @@ -222,7 +249,6 @@ golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc h1:mCRnTeVUjcrhlRmO0VK8a6k6R golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= @@ -230,7 +256,6 @@ golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= @@ -241,16 +266,12 @@ golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbht golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -260,7 +281,6 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= @@ -281,7 +301,6 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= diff --git a/pkg/mocks/mock_ecr.go b/pkg/mocks/mock_ecr.go deleted file mode 100644 index 8a5b7445ab..0000000000 --- a/pkg/mocks/mock_ecr.go +++ /dev/null @@ -1,89 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: cmd/ecr-credential-provider/main.go - -// Package mocks is a generated GoMock package. -package mocks - -import ( - reflect "reflect" - - ecr "github.com/aws/aws-sdk-go/service/ecr" - ecrpublic "github.com/aws/aws-sdk-go/service/ecrpublic" - gomock "github.com/golang/mock/gomock" -) - -// MockECR is a mock of ECR interface. -type MockECR struct { - ctrl *gomock.Controller - recorder *MockECRMockRecorder -} - -// MockECRMockRecorder is the mock recorder for MockECR. -type MockECRMockRecorder struct { - mock *MockECR -} - -// NewMockECR creates a new mock instance. -func NewMockECR(ctrl *gomock.Controller) *MockECR { - mock := &MockECR{ctrl: ctrl} - mock.recorder = &MockECRMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockECR) EXPECT() *MockECRMockRecorder { - return m.recorder -} - -// GetAuthorizationToken mocks base method. -func (m *MockECR) GetAuthorizationToken(input *ecr.GetAuthorizationTokenInput) (*ecr.GetAuthorizationTokenOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAuthorizationToken", input) - ret0, _ := ret[0].(*ecr.GetAuthorizationTokenOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAuthorizationToken indicates an expected call of GetAuthorizationToken. -func (mr *MockECRMockRecorder) GetAuthorizationToken(input interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizationToken", reflect.TypeOf((*MockECR)(nil).GetAuthorizationToken), input) -} - -// MockECRPublic is a mock of ECRPublic interface. -type MockECRPublic struct { - ctrl *gomock.Controller - recorder *MockECRPublicMockRecorder -} - -// MockECRPublicMockRecorder is the mock recorder for MockECRPublic. -type MockECRPublicMockRecorder struct { - mock *MockECRPublic -} - -// NewMockECRPublic creates a new mock instance. -func NewMockECRPublic(ctrl *gomock.Controller) *MockECRPublic { - mock := &MockECRPublic{ctrl: ctrl} - mock.recorder = &MockECRPublicMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockECRPublic) EXPECT() *MockECRPublicMockRecorder { - return m.recorder -} - -// GetAuthorizationToken mocks base method. -func (m *MockECRPublic) GetAuthorizationToken(input *ecrpublic.GetAuthorizationTokenInput) (*ecrpublic.GetAuthorizationTokenOutput, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetAuthorizationToken", input) - ret0, _ := ret[0].(*ecrpublic.GetAuthorizationTokenOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetAuthorizationToken indicates an expected call of GetAuthorizationToken. -func (mr *MockECRPublicMockRecorder) GetAuthorizationToken(input interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAuthorizationToken", reflect.TypeOf((*MockECRPublic)(nil).GetAuthorizationToken), input) -}