Skip to content

Commit f5dca4c

Browse files
authored
Merge pull request #5498 from punkwalker/eks-aws-sdk-v2-migration
✨ Migrate EKS packages to AWS SDK v2
2 parents ec21422 + 9ecc240 commit f5dca4c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+1637
-4246
lines changed

cmd/clusterawsadm/cmd/eks/addons/list_available.go

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@ limitations under the License.
1717
package addons
1818

1919
import (
20+
"context"
2021
"fmt"
2122
"os"
2223

23-
"github.com/aws/aws-sdk-go/aws"
24-
"github.com/aws/aws-sdk-go/aws/session"
25-
"github.com/aws/aws-sdk-go/service/eks"
24+
"github.com/aws/aws-sdk-go-v2/aws"
25+
"github.com/aws/aws-sdk-go-v2/config"
26+
"github.com/aws/aws-sdk-go-v2/service/eks"
2627
"github.com/spf13/cobra"
28+
"k8s.io/utils/ptr"
2729

2830
cmdout "sigs.k8s.io/cluster-api-provider-aws/v2/cmd/clusterawsadm/printers"
2931
)
@@ -51,26 +53,24 @@ func listAvailableCmd() *cobra.Command {
5153
}
5254

5355
func listAvailableAddons(region, clusterName, printerType *string) error {
54-
cfg := aws.Config{}
55-
if *region != "" {
56-
cfg.Region = region
56+
ctx := context.TODO()
57+
58+
optFns := []func(*config.LoadOptions) error{
59+
config.WithRegion(ptr.Deref(region, "")),
5760
}
5861

59-
sess, err := session.NewSessionWithOptions(session.Options{
60-
SharedConfigState: session.SharedConfigEnable,
61-
Config: cfg,
62-
})
62+
cfg, err := config.LoadDefaultConfig(context.Background(), optFns...)
63+
6364
if err != nil {
64-
fmt.Printf("Error: %v\n", err)
6565
return err
6666
}
6767

68-
eksClient := eks.New(sess)
68+
eksClient := eks.NewFromConfig(cfg)
6969

7070
input := &eks.ListAddonsInput{
7171
ClusterName: clusterName,
7272
}
73-
output, err := eksClient.ListAddons(input)
73+
output, err := eksClient.ListAddons(ctx, input)
7474
if err != nil {
7575
return fmt.Errorf("list addons: %w", err)
7676
}
@@ -86,11 +86,11 @@ func listAvailableAddons(region, clusterName, printerType *string) error {
8686
}
8787
for _, addon := range output.Addons {
8888
describeInput := &eks.DescribeAddonVersionsInput{
89-
AddonName: addon,
89+
AddonName: aws.String(addon),
9090
}
91-
describeOutput, err := eksClient.DescribeAddonVersions(describeInput)
91+
describeOutput, err := eksClient.DescribeAddonVersions(ctx, describeInput)
9292
if err != nil {
93-
return fmt.Errorf("describing addon versions %s: %w", *addon, err)
93+
return fmt.Errorf("describing addon versions %s: %w", addon, err)
9494
}
9595

9696
for _, info := range describeOutput.Addons {
@@ -102,18 +102,15 @@ func listAvailableAddons(region, clusterName, printerType *string) error {
102102
Architecture: []string{},
103103
Compatibilities: []compatibility{},
104104
}
105-
for _, architecture := range version.Architecture {
106-
newAddon.Architecture = append(newAddon.Architecture, *architecture)
107-
}
105+
newAddon.Architecture = append(newAddon.Architecture, version.Architecture...)
106+
108107
for _, compat := range version.Compatibilities {
109108
compatibility := compatibility{
110109
ClusterVersion: *compat.ClusterVersion,
111-
DefaultVersion: *compat.DefaultVersion,
110+
DefaultVersion: compat.DefaultVersion,
112111
PlatformVersions: []string{},
113112
}
114-
for _, platformVersion := range compat.PlatformVersions {
115-
compatibility.PlatformVersions = append(compatibility.PlatformVersions, *platformVersion)
116-
}
113+
compatibility.PlatformVersions = append(compatibility.PlatformVersions, compat.PlatformVersions...)
117114
newAddon.Compatibilities = append(newAddon.Compatibilities, compatibility)
118115
}
119116
addonsList.Addons = append(addonsList.Addons, newAddon)

cmd/clusterawsadm/cmd/eks/addons/list_installed.go

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@ limitations under the License.
1717
package addons
1818

1919
import (
20+
"context"
2021
"fmt"
2122
"os"
2223

24+
"github.com/aws/aws-sdk-go-v2/config"
25+
"github.com/aws/aws-sdk-go-v2/service/eks"
2326
"github.com/aws/aws-sdk-go/aws"
24-
"github.com/aws/aws-sdk-go/aws/session"
25-
"github.com/aws/aws-sdk-go/service/eks"
2627
"github.com/spf13/cobra"
28+
"k8s.io/utils/ptr"
2729

2830
cmdout "sigs.k8s.io/cluster-api-provider-aws/v2/cmd/clusterawsadm/printers"
2931
)
@@ -51,26 +53,24 @@ func listInstalledCmd() *cobra.Command {
5153
}
5254

5355
func listInstalledAddons(region, clusterName, printerType *string) error {
54-
cfg := aws.Config{}
55-
if *region != "" {
56-
cfg.Region = region
56+
ctx := context.TODO()
57+
58+
optFns := []func(*config.LoadOptions) error{
59+
config.WithRegion(ptr.Deref(region, "")),
5760
}
5861

59-
sess, err := session.NewSessionWithOptions(session.Options{
60-
SharedConfigState: session.SharedConfigEnable,
61-
Config: cfg,
62-
})
62+
cfg, err := config.LoadDefaultConfig(context.Background(), optFns...)
63+
6364
if err != nil {
64-
fmt.Printf("Error: %v\n", err)
6565
return err
6666
}
6767

68-
eksClient := eks.New(sess)
68+
eksClient := eks.NewFromConfig(cfg)
6969

7070
input := &eks.ListAddonsInput{
7171
ClusterName: clusterName,
7272
}
73-
output, err := eksClient.ListAddons(input)
73+
output, err := eksClient.ListAddons(ctx, input)
7474
if err != nil {
7575
return fmt.Errorf("list addons: %w", err)
7676
}
@@ -86,12 +86,12 @@ func listInstalledAddons(region, clusterName, printerType *string) error {
8686
}
8787
for _, addon := range output.Addons {
8888
describeInput := &eks.DescribeAddonInput{
89-
AddonName: addon,
89+
AddonName: aws.String(addon),
9090
ClusterName: clusterName,
9191
}
92-
describeOutput, err := eksClient.DescribeAddon(describeInput)
92+
describeOutput, err := eksClient.DescribeAddon(ctx, describeInput)
9393
if err != nil {
94-
return fmt.Errorf("describing addon %s: %w", *addon, err)
94+
return fmt.Errorf("describing addon %s: %w", addon, err)
9595
}
9696

9797
if describeOutput.Addon == nil {
@@ -103,21 +103,19 @@ func listInstalledAddons(region, clusterName, printerType *string) error {
103103
Version: *describeOutput.Addon.AddonVersion,
104104
AddonARN: *describeOutput.Addon.AddonArn,
105105
RoleARN: describeOutput.Addon.ServiceAccountRoleArn,
106-
Status: *describeOutput.Addon.Status,
106+
Status: string(describeOutput.Addon.Status),
107107
CreatedAt: *describeOutput.Addon.CreatedAt,
108108
ModifiedAt: *describeOutput.Addon.ModifiedAt,
109109
Tags: describeOutput.Addon.Tags,
110110
HealthIssues: []issue{},
111111
}
112112
for _, addonIssue := range describeOutput.Addon.Health.Issues {
113113
newIssue := issue{
114-
Code: *addonIssue.Code,
114+
Code: string(addonIssue.Code),
115115
Message: *addonIssue.Message,
116116
ResourceIDs: []string{},
117117
}
118-
for _, resID := range addonIssue.ResourceIds {
119-
newIssue.ResourceIDs = append(newIssue.ResourceIDs, *resID)
120-
}
118+
newIssue.ResourceIDs = append(newIssue.ResourceIDs, addonIssue.ResourceIds...)
121119
installedAddon.HealthIssues = append(installedAddon.HealthIssues, newIssue)
122120
}
123121

cmd/clusterawsadm/cmd/eks/addons/types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ type installedAddon struct {
9595
RoleARN *string
9696

9797
Status string
98-
Tags map[string]*string
98+
Tags map[string]string
9999

100100
HealthIssues []issue
101101

controlplane/eks/api/v1beta1/types.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package v1beta1
1919
import (
2020
"fmt"
2121

22-
"github.com/aws/aws-sdk-go/service/eks"
22+
ekstypes "github.com/aws/aws-sdk-go-v2/service/eks/types"
2323
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2424

2525
infrav1 "sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2"
@@ -51,16 +51,16 @@ func (s *ControlPlaneLoggingSpec) IsLogEnabled(logName string) bool {
5151
return false
5252
}
5353

54-
switch logName {
55-
case eks.LogTypeApi:
54+
switch ekstypes.LogType(logName) {
55+
case ekstypes.LogTypeApi:
5656
return s.APIServer
57-
case eks.LogTypeAudit:
57+
case ekstypes.LogTypeAudit:
5858
return s.Audit
59-
case eks.LogTypeAuthenticator:
59+
case ekstypes.LogTypeAuthenticator:
6060
return s.Authenticator
61-
case eks.LogTypeControllerManager:
61+
case ekstypes.LogTypeControllerManager:
6262
return s.ControllerManager
63-
case eks.LogTypeScheduler:
63+
case ekstypes.LogTypeScheduler:
6464
return s.Scheduler
6565
default:
6666
return false

controlplane/eks/api/v1beta2/types.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package v1beta2
1919
import (
2020
"fmt"
2121

22-
"github.com/aws/aws-sdk-go/service/eks"
22+
ekstypes "github.com/aws/aws-sdk-go-v2/service/eks/types"
2323
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2424

2525
infrav1 "sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2"
@@ -51,16 +51,16 @@ func (s *ControlPlaneLoggingSpec) IsLogEnabled(logName string) bool {
5151
return false
5252
}
5353

54-
switch logName {
55-
case eks.LogTypeApi:
54+
switch ekstypes.LogType(logName) {
55+
case ekstypes.LogTypeApi:
5656
return s.APIServer
57-
case eks.LogTypeAudit:
57+
case ekstypes.LogTypeAudit:
5858
return s.Audit
59-
case eks.LogTypeAuthenticator:
59+
case ekstypes.LogTypeAuthenticator:
6060
return s.Authenticator
61-
case eks.LogTypeControllerManager:
61+
case ekstypes.LogTypeControllerManager:
6262
return s.ControllerManager
63-
case eks.LogTypeScheduler:
63+
case ekstypes.LogTypeScheduler:
6464
return s.Scheduler
6565
default:
6666
return false

controlplane/eks/controllers/awsmanagedcontrolplane_controller.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ type AWSManagedControlPlaneReconciler struct {
102102
ExternalResourceGC bool
103103
AlternativeGCStrategy bool
104104
WaitInfraPeriod time.Duration
105+
MaxWaitActiveUpdateDelete time.Duration
105106
TagUnmanagedNetworkResources bool
106107
}
107108

@@ -245,6 +246,7 @@ func (r *AWSManagedControlPlaneReconciler) Reconcile(ctx context.Context, req ct
245246
Cluster: cluster,
246247
ControlPlane: awsManagedControlPlane,
247248
ControllerName: strings.ToLower(awsManagedControlPlaneKind),
249+
MaxWaitActiveUpdateDelete: r.MaxWaitActiveUpdateDelete,
248250
EnableIAM: r.EnableIAM,
249251
AllowAdditionalRoles: r.AllowAdditionalRoles,
250252
Endpoints: r.Endpoints,
@@ -405,7 +407,7 @@ func (r *AWSManagedControlPlaneReconciler) reconcileDelete(ctx context.Context,
405407
networkSvc := network.NewService(managedScope)
406408
sgService := securitygroup.NewService(managedScope, securityGroupRolesForControlPlane(managedScope))
407409

408-
if err := ekssvc.DeleteControlPlane(); err != nil {
410+
if err := ekssvc.DeleteControlPlane(ctx); err != nil {
409411
log.Error(err, "error deleting EKS cluster for EKS control plane", "namespace", controlPlane.Namespace, "name", controlPlane.Name)
410412
return reconcile.Result{}, err
411413
}

0 commit comments

Comments
 (0)