diff --git a/cmd/topicctl/subcmd/apply.go b/cmd/topicctl/subcmd/apply.go index 5e4e6ee4..8b9c362a 100644 --- a/cmd/topicctl/subcmd/apply.go +++ b/cmd/topicctl/subcmd/apply.go @@ -9,6 +9,7 @@ import ( "syscall" "time" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/segmentio/topicctl/pkg/admin" "github.com/segmentio/topicctl/pkg/apply" "github.com/segmentio/topicctl/pkg/cli" @@ -223,7 +224,7 @@ func applyTopic( if !ok { adminClient, err = clusterConfig.NewAdminClient( ctx, - nil, + aws.Config{}, config.AdminClientOpts{ ReadOnly: applyConfig.dryRun, UsernameOverride: applyConfig.shared.saslUsername, diff --git a/cmd/topicctl/subcmd/bootstrap.go b/cmd/topicctl/subcmd/bootstrap.go index 7010bae0..8b090bdd 100644 --- a/cmd/topicctl/subcmd/bootstrap.go +++ b/cmd/topicctl/subcmd/bootstrap.go @@ -3,6 +3,7 @@ package subcmd import ( "context" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/segmentio/topicctl/pkg/cli" "github.com/segmentio/topicctl/pkg/config" log "github.com/sirupsen/logrus" @@ -78,7 +79,7 @@ func bootstrapRun(cmd *cobra.Command, args []string) error { } adminClient, err := clusterConfig.NewAdminClient( ctx, - nil, + aws.Config{}, config.AdminClientOpts{ ReadOnly: true, UsernameOverride: bootstrapConfig.shared.saslUsername, diff --git a/cmd/topicctl/subcmd/check.go b/cmd/topicctl/subcmd/check.go index 12b4175f..37117bfb 100644 --- a/cmd/topicctl/subcmd/check.go +++ b/cmd/topicctl/subcmd/check.go @@ -6,6 +6,7 @@ import ( "os" "path/filepath" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/segmentio/topicctl/pkg/admin" "github.com/segmentio/topicctl/pkg/check" "github.com/segmentio/topicctl/pkg/cli" @@ -136,7 +137,7 @@ func checkTopicFile( if !ok { adminClient, err = clusterConfig.NewAdminClient( ctx, - nil, + aws.Config{}, config.AdminClientOpts{ ReadOnly: true, UsernameOverride: checkConfig.shared.saslUsername, diff --git a/cmd/topicctl/subcmd/create.go b/cmd/topicctl/subcmd/create.go index 2286fb7d..b83c2507 100644 --- a/cmd/topicctl/subcmd/create.go +++ b/cmd/topicctl/subcmd/create.go @@ -8,6 +8,7 @@ import ( "path/filepath" "syscall" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/segmentio/topicctl/pkg/acl" "github.com/segmentio/topicctl/pkg/admin" "github.com/segmentio/topicctl/pkg/cli" @@ -149,7 +150,7 @@ func createACL( if !ok { adminClient, err = clusterConfig.NewAdminClient( ctx, - nil, + aws.Config{}, config.AdminClientOpts{ ReadOnly: createConfig.dryRun, UsernameOverride: createConfig.shared.saslUsername, diff --git a/cmd/topicctl/subcmd/delete.go b/cmd/topicctl/subcmd/delete.go index 6f0ab557..15f1d1ad 100644 --- a/cmd/topicctl/subcmd/delete.go +++ b/cmd/topicctl/subcmd/delete.go @@ -4,7 +4,7 @@ import ( "context" "strings" - "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go-v2/config" "github.com/segmentio/kafka-go" "github.com/segmentio/topicctl/pkg/acl" "github.com/segmentio/topicctl/pkg/admin" @@ -69,9 +69,12 @@ $ topicctl delete acls --resource-type topic --resource-pattern-type literal --r `, RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := deleteConfig.shared.getAdminClient(ctx, sess, deleteConfig.dryRun) + adminClient, err := deleteConfig.shared.getAdminClient(ctx, cfg, deleteConfig.dryRun) if err != nil { return err } @@ -159,9 +162,12 @@ func deleteTopicCmd() *cobra.Command { Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := deleteConfig.shared.getAdminClient(ctx, sess, false) + adminClient, err := deleteConfig.shared.getAdminClient(ctx, cfg, false) if err != nil { return err } diff --git a/cmd/topicctl/subcmd/get.go b/cmd/topicctl/subcmd/get.go index a3d86252..d1e75314 100644 --- a/cmd/topicctl/subcmd/get.go +++ b/cmd/topicctl/subcmd/get.go @@ -5,7 +5,7 @@ import ( "fmt" "strings" - "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go-v2/config" "github.com/segmentio/kafka-go" "github.com/segmentio/topicctl/pkg/admin" "github.com/segmentio/topicctl/pkg/cli" @@ -95,9 +95,12 @@ func balanceCmd() *cobra.Command { Args: cobra.MaximumNArgs(1), RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } @@ -122,9 +125,12 @@ func brokersCmd() *cobra.Command { Args: cobra.NoArgs, RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } @@ -143,9 +149,12 @@ func controllerCmd() *cobra.Command { Args: cobra.NoArgs, RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } @@ -164,9 +173,12 @@ func clusterIDCmd() *cobra.Command { Args: cobra.NoArgs, RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } @@ -185,9 +197,12 @@ func configCmd() *cobra.Command { Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } @@ -206,9 +221,12 @@ func groupsCmd() *cobra.Command { Args: cobra.NoArgs, RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } @@ -227,9 +245,12 @@ func lagsCmd() *cobra.Command { Args: cobra.ExactArgs(2), RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } @@ -254,9 +275,12 @@ func membersCmd() *cobra.Command { Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } @@ -275,9 +299,12 @@ func partitionsCmd() *cobra.Command { Args: cobra.MinimumNArgs(0), RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } @@ -321,9 +348,12 @@ func offsetsCmd() *cobra.Command { Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } @@ -342,9 +372,12 @@ func topicsCmd() *cobra.Command { Args: cobra.NoArgs, RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } @@ -397,9 +430,12 @@ $ topicctl get acls --host 198.51.100.0 `, RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } @@ -467,9 +503,12 @@ func usersCmd() *cobra.Command { Args: cobra.NoArgs, RunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := getConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := getConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } diff --git a/cmd/topicctl/subcmd/rebalance.go b/cmd/topicctl/subcmd/rebalance.go index 7823a251..2654c0d1 100644 --- a/cmd/topicctl/subcmd/rebalance.go +++ b/cmd/topicctl/subcmd/rebalance.go @@ -10,6 +10,7 @@ import ( "syscall" "time" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/spf13/cobra" "github.com/segmentio/topicctl/pkg/admin" @@ -124,7 +125,7 @@ func rebalanceRun(cmd *cobra.Command, args []string) error { } adminClient, err := clusterConfig.NewAdminClient(ctx, - nil, + aws.Config{}, config.AdminClientOpts{ ReadOnly: rebalanceConfig.dryRun, UsernameOverride: rebalanceConfig.shared.saslUsername, diff --git a/cmd/topicctl/subcmd/repl.go b/cmd/topicctl/subcmd/repl.go index c3f8aaf5..105f4121 100644 --- a/cmd/topicctl/subcmd/repl.go +++ b/cmd/topicctl/subcmd/repl.go @@ -3,7 +3,7 @@ package subcmd import ( "context" - "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go-v2/config" "github.com/segmentio/topicctl/pkg/cli" "github.com/spf13/cobra" ) @@ -32,9 +32,12 @@ func replPreRun(cmd *cobra.Command, args []string) error { func replRun(cmd *cobra.Command, args []string) error { ctx := context.Background() - sess := session.Must(session.NewSession()) + cfg, err := config.LoadDefaultConfig(ctx) + if err != nil { + return err + } - adminClient, err := replConfig.shared.getAdminClient(ctx, sess, true) + adminClient, err := replConfig.shared.getAdminClient(ctx, cfg, true) if err != nil { return err } diff --git a/cmd/topicctl/subcmd/reset.go b/cmd/topicctl/subcmd/reset.go index acd9a049..3151ab59 100644 --- a/cmd/topicctl/subcmd/reset.go +++ b/cmd/topicctl/subcmd/reset.go @@ -6,6 +6,7 @@ import ( "fmt" "strconv" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/segmentio/topicctl/pkg/cli" "github.com/segmentio/topicctl/pkg/groups" "github.com/segmentio/topicctl/pkg/util" @@ -90,7 +91,7 @@ func resetOffsetsRun(cmd *cobra.Command, args []string) error { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - adminClient, err := resetOffsetsConfig.shared.getAdminClient(ctx, nil, true) + adminClient, err := resetOffsetsConfig.shared.getAdminClient(ctx, aws.Config{}, true) if err != nil { return err } diff --git a/cmd/topicctl/subcmd/shared.go b/cmd/topicctl/subcmd/shared.go index ba056165..57817f25 100644 --- a/cmd/topicctl/subcmd/shared.go +++ b/cmd/topicctl/subcmd/shared.go @@ -6,7 +6,7 @@ import ( "os" "time" - "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/hashicorp/go-multierror" "github.com/segmentio/topicctl/pkg/admin" "github.com/segmentio/topicctl/pkg/config" @@ -109,7 +109,7 @@ func (s sharedOptions) validate() error { func (s sharedOptions) getAdminClient( ctx context.Context, - sess *session.Session, + awsCfg aws.Config, readOnly bool, ) (admin.Client, error) { if s.clusterConfig != "" { @@ -119,7 +119,7 @@ func (s sharedOptions) getAdminClient( } return clusterConfig.NewAdminClient( ctx, - sess, + awsCfg, config.AdminClientOpts{ ReadOnly: readOnly, UsernameOverride: s.saslUsername, @@ -178,7 +178,7 @@ func (s sharedOptions) getAdminClient( admin.ZKAdminClientConfig{ ZKAddrs: []string{s.zkAddr}, ZKPrefix: s.zkPrefix, - Sess: sess, + AwsCfg: awsCfg, ReadOnly: readOnly, KafkaConnTimeout: s.connTimeout, }, diff --git a/cmd/topicctl/subcmd/tail.go b/cmd/topicctl/subcmd/tail.go index 555727ba..d606bb3c 100644 --- a/cmd/topicctl/subcmd/tail.go +++ b/cmd/topicctl/subcmd/tail.go @@ -7,6 +7,7 @@ import ( "strconv" "syscall" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/segmentio/kafka-go" "github.com/segmentio/topicctl/pkg/cli" log "github.com/sirupsen/logrus" @@ -81,7 +82,7 @@ func tailRun(cmd *cobra.Command, args []string) error { cancel() }() - adminClient, err := tailConfig.shared.getAdminClient(ctx, nil, true) + adminClient, err := tailConfig.shared.getAdminClient(ctx, aws.Config{}, true) if err != nil { return err } diff --git a/cmd/topicctl/subcmd/tester.go b/cmd/topicctl/subcmd/tester.go index e6b97883..09045825 100644 --- a/cmd/topicctl/subcmd/tester.go +++ b/cmd/topicctl/subcmd/tester.go @@ -9,6 +9,7 @@ import ( "syscall" "time" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/segmentio/kafka-go" "github.com/segmentio/topicctl/pkg/util" log "github.com/sirupsen/logrus" @@ -90,7 +91,7 @@ func testerRun(cmd *cobra.Command, args []string) error { } func runTestReader(ctx context.Context) error { - adminClient, err := testerConfig.shared.getAdminClient(ctx, nil, true) + adminClient, err := testerConfig.shared.getAdminClient(ctx, aws.Config{}, true) if err != nil { return err } @@ -139,7 +140,7 @@ func runTestReader(ctx context.Context) error { } func runTestWriter(ctx context.Context) error { - adminClient, err := testerConfig.shared.getAdminClient(ctx, nil, true) + adminClient, err := testerConfig.shared.getAdminClient(ctx, aws.Config{}, true) if err != nil { return err } diff --git a/go.mod b/go.mod index b6e82134..9e799f5e 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,10 @@ module github.com/segmentio/topicctl go 1.24.4 require ( - github.com/aws/aws-sdk-go v1.49.12 + github.com/aws/aws-sdk-go-v2 v1.39.0 + github.com/aws/aws-sdk-go-v2/config v1.31.8 + github.com/aws/aws-sdk-go-v2/service/ec2 v1.253.0 + github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.39.4 github.com/briandowns/spinner v1.19.0 github.com/c-bata/go-prompt v0.2.3 github.com/fatih/color v1.13.0 @@ -11,8 +14,8 @@ require ( github.com/hashicorp/go-multierror v1.1.1 github.com/olekukonko/tablewriter v0.0.5 github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da - github.com/segmentio/kafka-go v0.4.48 - github.com/segmentio/kafka-go/sasl/aws_msk_iam v0.0.0-20220211180808-78889264d070 + github.com/segmentio/kafka-go v0.4.49 + github.com/segmentio/kafka-go/sasl/aws_msk_iam_v2 v0.1.0 github.com/sirupsen/logrus v1.9.0 github.com/spf13/cobra v1.5.0 github.com/stretchr/testify v1.8.0 @@ -21,11 +24,22 @@ require ( ) require ( + github.com/aws/aws-sdk-go-v2/credentials v1.18.12 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.29.3 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.38.4 // indirect + github.com/aws/smithy-go v1.23.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/hashicorp/errwrap v1.0.0 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect - github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/klauspost/compress v1.15.9 // indirect + github.com/kr/pretty v0.2.1 // indirect github.com/mattn/go-colorable v0.1.9 // indirect github.com/mattn/go-isatty v0.0.14 // indirect github.com/mattn/go-runewidth v0.0.9 // indirect diff --git a/go.sum b/go.sum index b8769502..0548e5d5 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,45 @@ -github.com/aws/aws-sdk-go v1.41.3/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= -github.com/aws/aws-sdk-go v1.49.12 h1:SbGHDdMjtuTL8zpRXKjvIvQHLt9cCqcxcHoJps23WxI= -github.com/aws/aws-sdk-go v1.49.12/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go-v2 v1.16.12/go.mod h1:C+Ym0ag2LIghJbXhfXZ0YEEp49rBWowxKzJLUoob0ts= +github.com/aws/aws-sdk-go-v2 v1.39.0 h1:xm5WV/2L4emMRmMjHFykqiA4M/ra0DJVSWUkDyBjbg4= +github.com/aws/aws-sdk-go-v2 v1.39.0/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= +github.com/aws/aws-sdk-go-v2/config v1.17.2/go.mod h1:jumS/AMwul4WaG8vyXsF6kUndG9zndR+yfYBwl4i9ds= +github.com/aws/aws-sdk-go-v2/config v1.31.8 h1:kQjtOLlTU4m4A64TsRcqwNChhGCwaPBt+zCQt/oWsHU= +github.com/aws/aws-sdk-go-v2/config v1.31.8/go.mod h1:QPpc7IgljrKwH0+E6/KolCgr4WPLerURiU592AYzfSY= +github.com/aws/aws-sdk-go-v2/credentials v1.12.15/go.mod h1:41zTC6U/78fUD7ZCa5NymTJANDjfqySg5YEAYVFl2Ic= +github.com/aws/aws-sdk-go-v2/credentials v1.18.12 h1:zmc9e1q90wMn8wQbjryy8IwA6Q4XlaL9Bx2zIqdNNbk= +github.com/aws/aws-sdk-go-v2/credentials v1.18.12/go.mod h1:3VzdRDR5u3sSJRI4kYcOSIBbeYsgtVk7dG5R/U6qLWY= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.13/go.mod h1:y0eXmsNBFIVjUE8ZBjES8myOHlMsXDz7qGT93+MVdjk= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7 h1:Is2tPmieqGS2edBnmOJIbdvOA6Op+rRpaYR60iBAwXM= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.7/go.mod h1:F1i5V5421EGci570yABvpIXgRIBPb5JM+lSkHF6Dq5w= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.19/go.mod h1:llxE6bwUZhuCas0K7qGiu5OgMis3N7kdWtFSxoHmJ7E= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7 h1:UCxq0X9O3xrlENdKf1r9eRJoKz/b0AfGkpp3a7FPlhg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.7/go.mod h1:rHRoJUNUASj5Z/0eqI4w32vKvC7atoWR0jC+IkmVH8k= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.13/go.mod h1:lB12mkZqCSo5PsdBFLNqc2M/OOYgNAy8UtaktyuWvE8= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7 h1:Y6DTZUn7ZUC4th9FMBbo8LVE+1fyq3ofw+tRwkUd3PY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.7/go.mod h1:x3XE6vMnU9QvHN/Wrx2s44kwzV2o2g5x/siw4ZUJ9g8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.20/go.mod h1:bfTcsThj5a9P5pIGRy0QudJ8k4+issxXX+O6Djnd5Cs= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.253.0 h1:x0v1n45AT+uZvNoQI8xtegVUOZoQIF+s9qwNcl7Ivyg= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.253.0/go.mod h1:MXJiLJZtMqb2dVXgEIn35d5+7MqLd4r8noLen881kpk= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.13/go.mod h1:V390DK4MQxLpDdXxFqizyz8KUxuWImkW/xzgXMz0yyk= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7 h1:mLgc5QIgOy26qyh5bvW+nDoAppxgn3J2WV3m9ewq7+8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.7/go.mod h1:wXb/eQnqt8mDQIQTTmcw58B5mYGxzLGZGK8PWNFZ0BA= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.39.4 h1:zWISPZre5hQb3mDMCEl6uni9rJ8K2cmvp64EXF7FXkk= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.39.4/go.mod h1:GrB/4Cn7N41psUAycqnwGDzT7qYJdUm+VnEZpyZAG4I= +github.com/aws/aws-sdk-go-v2/service/sso v1.11.18/go.mod h1:ytmEi5+qwcSNcV2pVA8PIb1DnKT/0Bu/K4nfJHwoM6c= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.3 h1:7PKX3VYsZ8LUWceVRuv0+PU+E7OtQb1lgmi5vmUE9CM= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.3/go.mod h1:Ql6jE9kyyWI5JHn+61UT/Y5Z0oyVJGmgmJbZD5g4unY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.1/go.mod h1:NY+G+8PW0ISyJ7/6t5mgOe6qpJiwZa9Jix05WPscJjg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.4 h1:e0XBRn3AptQotkyBFrHAxFB8mDhAIOfsG+7KyJ0dg98= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.4/go.mod h1:XclEty74bsGBCr1s0VSaA11hQ4ZidK4viWK7rRfO88I= +github.com/aws/aws-sdk-go-v2/service/sts v1.16.14/go.mod h1:Y+BUV19q3OmQVqNUlbZ40zVi3NM6Biuxwkx/qdSD/CY= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.4 h1:PR00NXRYgY4FWHqOGx3fC3lhVKjsp1GdloDv2ynMSd8= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.4/go.mod h1:Z+Gd23v97pX9zK97+tX4ppAgqCt3Z2dIXB02CtBncK8= +github.com/aws/smithy-go v1.13.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE= +github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/briandowns/spinner v1.19.0 h1:s8aq38H+Qju89yhp89b4iIiMzMm8YN3p6vGpwyh/a8E= github.com/briandowns/spinner v1.19.0/go.mod h1:mQak9GHqbspjC/5iUx3qMlIho8xBS/ppAL/hX5SmPJU= github.com/c-bata/go-prompt v0.2.3 h1:jjCS+QhG/sULBhAaBdjb2PlMRVaKXQgn+4yzaauvs2s= @@ -9,17 +48,14 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= @@ -28,11 +64,9 @@ github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/klauspost/compress v1.9.8/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.15.7/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= @@ -62,10 +96,8 @@ github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/pierrec/lz4 v2.6.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/term v0.0.0-20200520122047-c3ffed290a03 h1:pd4YKIqCB0U7O2I4gWHgEUA2mCEOENmco0l/bM957bU= github.com/pkg/term v0.0.0-20200520122047-c3ffed290a03/go.mod h1:Z9+Ul5bCbBKnbCvdOWbLqTHhJiYV414CURZJba6L8qA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -73,11 +105,11 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da h1:p3Vo3i64TCLY7gIfzeQaUJ+kppEO5WQG3cL8iE8tGHU= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= -github.com/segmentio/kafka-go v0.4.28/go.mod h1:XzMcoMjSzDGHcIwpWUI7GB43iKZ2fTVmryPSGLf/MPg= -github.com/segmentio/kafka-go v0.4.48 h1:9jyu9CWK4W5W+SroCe8EffbrRZVqAOkuaLd/ApID4Vs= -github.com/segmentio/kafka-go v0.4.48/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg= -github.com/segmentio/kafka-go/sasl/aws_msk_iam v0.0.0-20220211180808-78889264d070 h1:ng1Z/x5LLOIrzgWUOtypsCkR+dHTux7slqOCVkuwQBo= -github.com/segmentio/kafka-go/sasl/aws_msk_iam v0.0.0-20220211180808-78889264d070/go.mod h1:IjMUGcOJoATsnlqAProGN1ezXeEgU5GCWr1/EzmkEMA= +github.com/segmentio/kafka-go v0.4.34/go.mod h1:GAjxBQJdQMB5zfNA21AhpaqOB2Mu+w3De4ni3Gbm8y0= +github.com/segmentio/kafka-go v0.4.49 h1:GJiNX1d/g+kG6ljyJEoi9++PUMdXGAxb7JGPiDCuNmk= +github.com/segmentio/kafka-go v0.4.49/go.mod h1:Y1gn60kzLEEaW28YshXyk2+VCUKbJ3Qr6DrnT3i4+9E= +github.com/segmentio/kafka-go/sasl/aws_msk_iam_v2 v0.1.0 h1:Fjet4CFbGyWMbvwWb42PKZwKdpDksSB7eaPi9Ap6EKY= +github.com/segmentio/kafka-go/sasl/aws_msk_iam_v2 v0.1.0/go.mod h1:zk5DCsbNtQ0BhooxFaVpLBns0tArkR/xE+4oq2MvCq0= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= @@ -86,7 +118,6 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= @@ -99,37 +130,30 @@ github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= -github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= -github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +github.com/xdg/scram v1.0.5/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/stringprep v1.0.3/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190506204251-e1dfcc566284/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= 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/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220706163947-c90051bbdb60/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= 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= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= +golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -141,16 +165,10 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= 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= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -158,17 +176,12 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 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/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/pkg/acl/acl_test.go b/pkg/acl/acl_test.go index b1721fa0..9c310fb3 100644 --- a/pkg/acl/acl_test.go +++ b/pkg/acl/acl_test.go @@ -6,6 +6,7 @@ import ( "testing" "time" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/segmentio/kafka-go" "github.com/segmentio/topicctl/pkg/admin" "github.com/segmentio/topicctl/pkg/config" @@ -673,7 +674,7 @@ func testACLAdmin( }, } - adminClient, err := clusterConfig.NewAdminClient(ctx, nil, config.AdminClientOpts{}) + adminClient, err := clusterConfig.NewAdminClient(ctx, aws.Config{}, config.AdminClientOpts{}) require.NoError(t, err) aclAdmin, err := NewACLAdmin( diff --git a/pkg/admin/connector.go b/pkg/admin/connector.go index c088143b..b5edb8db 100644 --- a/pkg/admin/connector.go +++ b/pkg/admin/connector.go @@ -1,6 +1,7 @@ package admin import ( + "context" "crypto/tls" "crypto/x509" "encoding/json" @@ -9,15 +10,14 @@ import ( "strings" "time" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/arn" - "github.com/aws/aws-sdk-go/aws/session" - sigv4 "github.com/aws/aws-sdk-go/aws/signer/v4" - "github.com/aws/aws-sdk-go/service/secretsmanager" - "github.com/aws/aws-sdk-go/service/secretsmanager/secretsmanageriface" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/arn" + sigv4 "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + awsCfg "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/service/secretsmanager" "github.com/segmentio/kafka-go" "github.com/segmentio/kafka-go/sasl" - "github.com/segmentio/kafka-go/sasl/aws_msk_iam" + "github.com/segmentio/kafka-go/sasl/aws_msk_iam_v2" "github.com/segmentio/kafka-go/sasl/plain" "github.com/segmentio/kafka-go/sasl/scram" log "github.com/sirupsen/logrus" @@ -80,10 +80,16 @@ func NewConnector(config ConnectorConfig) (*Connector, error) { if config.SASL.Enabled { saslUsername := config.SASL.Username saslPassword := config.SASL.Password + ctx := context.Background() if config.SASL.SecretsManagerArn != "" { - secretProvider := secretsmanager.New(session.Must(session.NewSession())) - creds, err := GetKafkaCredentials(secretProvider, config.SASL.SecretsManagerArn) + cfg, err := awsCfg.LoadDefaultConfig(ctx) + if err != nil { + return nil, err + } + secretProvider := secretsmanager.NewFromConfig(cfg) + + creds, err := GetKafkaCredentials(ctx, secretProvider, config.SASL.SecretsManagerArn) if err != nil { return nil, err } @@ -94,13 +100,18 @@ func NewConnector(config ConnectorConfig) (*Connector, error) { switch config.SASL.Mechanism { case SASLMechanismAWSMSKIAM: - sess := session.Must(session.NewSession()) - signer := sigv4.NewSigner(sess.Config.Credentials) - region := aws.StringValue(sess.Config.Region) + cfg, err := awsCfg.LoadDefaultConfig(ctx) + if err != nil { + return nil, err + } + + signer := sigv4.NewSigner() + region := cfg.Region - mechanismClient = &aws_msk_iam.Mechanism{ - Signer: signer, - Region: region, + mechanismClient = &aws_msk_iam_v2.Mechanism{ + Signer: signer, + Region: region, + Credentials: cfg.Credentials, } case SASLMechanismPlain: mechanismClient = plain.Mechanism{ @@ -220,7 +231,7 @@ type credentials struct { Password string `json:"password"` } -func GetKafkaCredentials(svc secretsmanageriface.SecretsManagerAPI, secretArn string) (credentials, error) { +func GetKafkaCredentials(ctx context.Context, svc *secretsmanager.Client, secretArn string) (credentials, error) { log.Debugf("Fetching credentials from Secrets Manager for secret: %s", secretArn) var creds credentials @@ -240,7 +251,7 @@ func GetKafkaCredentials(svc secretsmanageriface.SecretsManagerAPI, secretArn st SecretId: aws.String(secretNameNoSuffix), } - result, err := svc.GetSecretValue(input) + result, err := svc.GetSecretValue(ctx, input) if err != nil { return creds, err } diff --git a/pkg/admin/zkclient.go b/pkg/admin/zkclient.go index b8f23a56..a1728901 100644 --- a/pkg/admin/zkclient.go +++ b/pkg/admin/zkclient.go @@ -5,14 +5,15 @@ import ( "errors" "fmt" "path/filepath" + "reflect" "sort" "strconv" "strings" "time" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/ec2" + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/ec2" + ec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types" "github.com/segmentio/kafka-go" "github.com/segmentio/topicctl/pkg/util" "github.com/segmentio/topicctl/pkg/zk" @@ -49,7 +50,7 @@ type ZKAdminClient struct { zkPrefix string bootstrapAddrs []string Connector *Connector - sess *session.Session + awsCfg aws.Config readOnly bool } @@ -61,7 +62,7 @@ type ZKAdminClientConfig struct { ZKPrefix string BootstrapAddrs []string ExpectedClusterID string - Sess *session.Session + AwsCfg aws.Config ReadOnly bool KafkaConnTimeout time.Duration } @@ -97,7 +98,7 @@ func NewZKAdminClient( client := &ZKAdminClient{ zkClient: zkClient, zkPrefix: zkPrefix, - sess: config.Sess, + awsCfg: config.AwsCfg, readOnly: config.ReadOnly, } @@ -256,9 +257,9 @@ func (c *ZKAdminClient) GetBrokers( if !ok { continue } - brokers[b].InstanceID = aws.StringValue(instance.InstanceId) - brokers[b].InstanceType = aws.StringValue(instance.InstanceType) - brokers[b].AvailabilityZone = aws.StringValue( + brokers[b].InstanceID = aws.ToString(instance.InstanceId) + brokers[b].InstanceType = string(instance.InstanceType) + brokers[b].AvailabilityZone = aws.ToString( instance.Placement.AvailabilityZone, ) } @@ -1053,27 +1054,27 @@ func (c *ZKAdminClient) zNode(elements ...string) string { func (c *ZKAdminClient) getInstances( ctx context.Context, ips []string, -) (map[string]ec2.Instance, error) { - instancesMap := map[string]ec2.Instance{} +) (map[string]ec2types.Instance, error) { + instancesMap := map[string]ec2types.Instance{} - if c.sess == nil { + if reflect.DeepEqual(c.awsCfg, aws.Config{}) { return instancesMap, nil } - ec2Client := ec2.New(c.sess) + ec2Client := ec2.NewFromConfig(c.awsCfg) ipsMap := map[string]struct{}{} - ipValues := []*string{} + ipValues := []string{} for _, ip := range ips { - ipValues = append(ipValues, aws.String(ip)) + ipValues = append(ipValues, ip) ipsMap[ip] = struct{}{} } - resp, err := ec2Client.DescribeInstancesWithContext( + resp, err := ec2Client.DescribeInstances( ctx, &ec2.DescribeInstancesInput{ - Filters: []*ec2.Filter{ + Filters: []ec2types.Filter{ { Name: aws.String("private-ip-address"), Values: ipValues, @@ -1088,10 +1089,10 @@ func (c *ZKAdminClient) getInstances( for _, reservation := range resp.Reservations { for _, instance := range reservation.Instances { for _, networkInterface := range instance.NetworkInterfaces { - privateIP := aws.StringValue(networkInterface.PrivateIpAddress) + privateIP := aws.ToString(networkInterface.PrivateIpAddress) if _, ok := ipsMap[privateIP]; ok { - instancesMap[privateIP] = *instance + instancesMap[privateIP] = instance } } } diff --git a/pkg/apply/apply_test.go b/pkg/apply/apply_test.go index 033cdff9..4570f48a 100644 --- a/pkg/apply/apply_test.go +++ b/pkg/apply/apply_test.go @@ -6,6 +6,7 @@ import ( "testing" "time" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/segmentio/kafka-go" "github.com/segmentio/topicctl/pkg/admin" "github.com/segmentio/topicctl/pkg/config" @@ -879,7 +880,7 @@ func TestApplyOverrides(t *testing.T) { }, } - adminClient, err := clusterConfig.NewAdminClient(ctx, nil, config.AdminClientOpts{}) + adminClient, err := clusterConfig.NewAdminClient(ctx, aws.Config{}, config.AdminClientOpts{}) require.NoError(t, err) applier, err := NewTopicApplier( @@ -922,7 +923,7 @@ func testApplier( }, } - adminClient, err := clusterConfig.NewAdminClient(ctx, nil, config.AdminClientOpts{}) + adminClient, err := clusterConfig.NewAdminClient(ctx, aws.Config{}, config.AdminClientOpts{}) require.NoError(t, err) applier, err := NewTopicApplier( diff --git a/pkg/check/check_test.go b/pkg/check/check_test.go index 445f542d..7723d52d 100644 --- a/pkg/check/check_test.go +++ b/pkg/check/check_test.go @@ -5,6 +5,7 @@ import ( "testing" "time" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/segmentio/topicctl/pkg/apply" "github.com/segmentio/topicctl/pkg/config" "github.com/segmentio/topicctl/pkg/util" @@ -28,7 +29,7 @@ func TestCheck(t *testing.T) { }, } - adminClient, err := clusterConfig.NewAdminClient(ctx, nil, config.AdminClientOpts{}) + adminClient, err := clusterConfig.NewAdminClient(ctx, aws.Config{}, config.AdminClientOpts{}) require.NoError(t, err) topicName := util.RandomString("check-topic-", 6) diff --git a/pkg/config/cluster.go b/pkg/config/cluster.go index f4d36b78..8d09d41d 100644 --- a/pkg/config/cluster.go +++ b/pkg/config/cluster.go @@ -7,7 +7,7 @@ import ( "path/filepath" "time" - "github.com/aws/aws-sdk-go/aws/session" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/hashicorp/go-multierror" "github.com/segmentio/topicctl/pkg/admin" log "github.com/sirupsen/logrus" @@ -209,7 +209,7 @@ type AdminClientOpts struct { // NewAdminClient returns a new admin client using the parameters in the current cluster config. func (c ClusterConfig) NewAdminClient( ctx context.Context, - sess *session.Session, + awsCfg aws.Config, opts AdminClientOpts, ) (admin.Client, error) { if len(c.Spec.ZKAddrs) == 0 { @@ -297,7 +297,7 @@ func (c ClusterConfig) NewAdminClient( ZKPrefix: c.Spec.ZKPrefix, BootstrapAddrs: c.Spec.BootstrapAddrs, ExpectedClusterID: c.Spec.ClusterID, - Sess: sess, + AwsCfg: awsCfg, ReadOnly: opts.ReadOnly, KafkaConnTimeout: opts.KafkaConnTimeout, }, diff --git a/pkg/create/acl_test.go b/pkg/create/acl_test.go index 9c6b5b28..76d930e8 100644 --- a/pkg/create/acl_test.go +++ b/pkg/create/acl_test.go @@ -6,6 +6,7 @@ import ( "testing" "time" + "github.com/aws/aws-sdk-go-v2/aws" "github.com/segmentio/kafka-go" "github.com/segmentio/topicctl/pkg/admin" "github.com/segmentio/topicctl/pkg/config" @@ -300,7 +301,7 @@ func testCreator( }, } - adminClient, err := clusterConfig.NewAdminClient(ctx, nil, config.AdminClientOpts{}) + adminClient, err := clusterConfig.NewAdminClient(ctx, aws.Config{}, config.AdminClientOpts{}) require.NoError(t, err) applier, err := NewACLCreator( diff --git a/pkg/version/version.go b/pkg/version/version.go index 502a5946..829f9ada 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -1,4 +1,4 @@ package version // Version is the current topicctl version. -const Version = "1.21.0" +const Version = "1.22.0"