Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 2 additions & 12 deletions pkg/infrastructure/aws/clusterapi/ami.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"strings"

"github.com/aws/aws-sdk-go-v2/aws"
configv2 "github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/ec2"
ec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types"
"github.com/sirupsen/logrus"
Expand All @@ -22,20 +21,11 @@ func copyAMIToRegion(ctx context.Context, installConfig *installconfig.InstallCo

logrus.Infof("Copying AMI %s to region %s", amiID, installConfig.AWS.Region)

cfg, err := configv2.LoadDefaultConfig(ctx, configv2.WithRegion(installConfig.Config.AWS.Region))
client, err := installConfig.AWS.EC2Client(ctx)
if err != nil {
return "", fmt.Errorf("failed to load AWS config: %w", err)
return "", err
}

client := ec2.NewFromConfig(cfg, func(options *ec2.Options) {
options.Region = installConfig.Config.AWS.Region
for _, endpoint := range installConfig.Config.AWS.ServiceEndpoints {
if strings.EqualFold(endpoint.Name, "ec2") {
options.BaseEndpoint = aws.String(endpoint.URL)
}
}
})

res, err := client.CopyImage(ctx, &ec2.CopyImageInput{
Name: aws.String(fmt.Sprintf("%s-master", infraID)),
ClientToken: aws.String(infraID),
Expand Down
13 changes: 2 additions & 11 deletions pkg/infrastructure/aws/clusterapi/aws.go
Original file line number Diff line number Diff line change
Expand Up @@ -232,20 +232,11 @@ func (*Provider) InfraReady(ctx context.Context, in clusterapi.InfraReadyInput)
func getVPCFromSubnets(ctx context.Context, ic *installconfig.InstallConfig, subnetIDs []string) (string, error) {
var vpcID string

cfg, err := configv2.LoadDefaultConfig(ctx, configv2.WithRegion(ic.Config.AWS.Region))
client, err := ic.AWS.EC2Client(ctx)
if err != nil {
return "", fmt.Errorf("failed to load AWS config: %w", err)
return "", err
}

client := ec2.NewFromConfig(cfg, func(options *ec2.Options) {
options.Region = ic.Config.AWS.Region
for _, endpoint := range ic.Config.AWS.ServiceEndpoints {
if strings.EqualFold(endpoint.Name, "ec2") {
options.BaseEndpoint = aws.String(endpoint.URL)
}
}
})

paginator := ec2.NewDescribeSubnetsPaginator(client, &ec2.DescribeSubnetsInput{SubnetIds: subnetIDs})
for paginator.HasMorePages() {
page, err := paginator.NextPage(ctx)
Expand Down
22 changes: 8 additions & 14 deletions pkg/infrastructure/aws/clusterapi/iam.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ import (
"time"

"github.com/aws/aws-sdk-go-v2/aws"
configv2 "github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/ec2"
"github.com/aws/aws-sdk-go-v2/service/iam"
iamtypes "github.com/aws/aws-sdk-go-v2/service/iam/types"
"github.com/sirupsen/logrus"
iamv1 "sigs.k8s.io/cluster-api-provider-aws/v2/iam/api/v1beta1"

"github.com/openshift/installer/pkg/asset/installconfig"
awsconfig "github.com/openshift/installer/pkg/asset/installconfig/aws"
)

const (
Expand Down Expand Up @@ -97,21 +97,15 @@ var (
// createIAMRoles creates the roles used by control-plane and compute nodes.
func createIAMRoles(ctx context.Context, infraID string, ic *installconfig.InstallConfig) error {
logrus.Infoln("Reconciling IAM roles for control-plane and compute nodes")
// Create the IAM Role with the aws sdk.
// https://docs.aws.amazon.com/sdk-for-go/api/service/iam/#IAM.CreateRole
cfg, err := configv2.LoadDefaultConfig(ctx, configv2.WithRegion(ic.Config.Platform.AWS.Region))
if err != nil {
return fmt.Errorf("failed to load AWS config: %w", err)
}

client := iam.NewFromConfig(cfg, func(options *iam.Options) {
options.Region = ic.Config.Platform.AWS.Region
for _, endpoint := range ic.Config.AWS.ServiceEndpoints {
if strings.EqualFold(endpoint.Name, "iam") {
options.BaseEndpoint = aws.String(endpoint.URL)
}
}
platformAWS := ic.Config.Platform.AWS
client, err := awsconfig.NewIAMClient(ctx, awsconfig.EndpointOptions{
Region: platformAWS.Region,
Endpoints: platformAWS.ServiceEndpoints,
})
if err != nil {
return fmt.Errorf("failed to create iam client: %w", err)
}

// Create the IAM Roles for master and workers.
tags := []iamtypes.Tag{
Expand Down
20 changes: 7 additions & 13 deletions pkg/infrastructure/aws/clusterapi/ignition.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,15 @@ package clusterapi
import (
"context"
"fmt"
"strings"

"github.com/aws/aws-sdk-go-v2/aws"
configv2 "github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/ec2"
ec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types"
"github.com/sirupsen/logrus"
capa "sigs.k8s.io/cluster-api-provider-aws/v2/api/v1beta2"
k8sClient "sigs.k8s.io/controller-runtime/pkg/client"

awsconfig "github.com/openshift/installer/pkg/asset/installconfig/aws"
"github.com/openshift/installer/pkg/asset/manifests/capiutils"
"github.com/openshift/installer/pkg/infrastructure/clusterapi"
awstypes "github.com/openshift/installer/pkg/types/aws"
Expand Down Expand Up @@ -51,20 +50,15 @@ func editIgnition(ctx context.Context, in clusterapi.IgnitionInput) (*clusterapi
},
}

cfg, err := configv2.LoadDefaultConfig(ctx, configv2.WithRegion(in.InstallConfig.Config.AWS.Region))
platformAWS := in.InstallConfig.Config.AWS
client, err := awsconfig.NewEC2Client(ctx, awsconfig.EndpointOptions{
Region: platformAWS.Region,
Endpoints: platformAWS.ServiceEndpoints,
})
if err != nil {
return nil, fmt.Errorf("failed to load AWS config: %w", err)
return nil, fmt.Errorf("failed to create ec2 client: %w", err)
}

client := ec2.NewFromConfig(cfg, func(options *ec2.Options) {
options.Region = in.InstallConfig.Config.AWS.Region
for _, endpoint := range in.InstallConfig.Config.AWS.ServiceEndpoints {
if strings.EqualFold(endpoint.Name, "ec2") {
options.BaseEndpoint = aws.String(endpoint.URL)
}
}
})

nicOutput, err := client.DescribeNetworkInterfaces(ctx, &nicInput)
if err != nil {
return nil, fmt.Errorf("failed to describe network interfaces: %w", err)
Expand Down