Skip to content

Commit

Permalink
Adding support for us-isof and eu-isoe regions (eksctl-io#8151)
Browse files Browse the repository at this point in the history
adding support for us-isof and eu-isoe regions
  • Loading branch information
TiberiuGC authored Jan 22, 2025
1 parent 18394bd commit 48f1e72
Show file tree
Hide file tree
Showing 33 changed files with 1,444 additions and 20 deletions.
2 changes: 1 addition & 1 deletion cmd/eksctl/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ func dumpLogsToDisk(logBuffer *bytes.Buffer, errorString string) error {
if _, err := os.Stat("logs/"); os.IsNotExist(err) {

if err := os.Mkdir("logs/", 0755); err != nil {
return fmt.Errorf(err.Error())
return err
}
}

Expand Down
4 changes: 3 additions & 1 deletion integration/tests/crud/creategetdelete_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1271,7 +1271,9 @@ func createAdditionalSubnet(cfg *api.ClusterConfig) string {
var (
i1, i2, i3, i4, ic int
)
fmt.Sscanf(cidr, "%d.%d.%d.%d/%d", &i1, &i2, &i3, &i4, &ic)
n, err := fmt.Sscanf(cidr, "%d.%d.%d.%d/%d", &i1, &i2, &i3, &i4, &ic)
Expect(err).NotTo(HaveOccurred())
Expect(n > 4).To(BeTrue())
cidr = fmt.Sprintf("%d.%d.%s.%d/%d", i1, i2, "255", i4, ic)

var tags []ec2types.Tag
Expand Down
2 changes: 1 addition & 1 deletion pkg/actions/accessentry/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ func runAllTasks(taskTree *tasks.TaskTree) error {
for _, err := range errs {
allErrs = append(allErrs, err.Error())
}
return fmt.Errorf(strings.Join(allErrs, "\n"))
return fmt.Errorf("%s", strings.Join(allErrs, "\n"))
}
completedAction := func() string {
if taskTree.PlanMode {
Expand Down
2 changes: 1 addition & 1 deletion pkg/actions/addon/tasks.go
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ func runAllTasks(taskTree *tasks.TaskTree) error {
for _, err := range errs {
allErrs = append(allErrs, err.Error())
}
return fmt.Errorf(strings.Join(allErrs, "\n"))
return fmt.Errorf("%s", strings.Join(allErrs, "\n"))
}
completedAction := func() string {
if taskTree.PlanMode {
Expand Down
2 changes: 1 addition & 1 deletion pkg/actions/anywhere/anywhere.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func IsAnywhereCommand(args []string) (bool, error) {
// RunAnywhereCommand executes the anywhere binary.
func RunAnywhereCommand(args []string) (int, error) {
if _, err := exec.LookPath(BinaryFileName); errors.Is(err, exec.ErrNotFound) {
return 1, fmt.Errorf(fmt.Sprintf("%q plugin was not found on your path", BinaryFileName))
return 1, fmt.Errorf("%s", fmt.Sprintf("%q plugin was not found on your path", BinaryFileName))
} else if err != nil {
return 1, fmt.Errorf("failed to lookup anywhere plugin: %w", err)
}
Expand Down
10 changes: 10 additions & 0 deletions pkg/actions/nodegroup/testdata/al2-force-false-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,16 @@
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-e": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-f": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-us-gov": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
Expand Down
10 changes: 10 additions & 0 deletions pkg/actions/nodegroup/testdata/al2-no-force-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,16 @@
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-e": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-f": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-us-gov": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
Expand Down
10 changes: 10 additions & 0 deletions pkg/actions/nodegroup/testdata/al2-updated-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,16 @@
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-e": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-f": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-us-gov": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
Expand Down
10 changes: 10 additions & 0 deletions pkg/actions/nodegroup/testdata/br-force-false-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,16 @@
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-e": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-f": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-us-gov": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
Expand Down
10 changes: 10 additions & 0 deletions pkg/actions/nodegroup/testdata/br-force-true-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,16 @@
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-e": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-f": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-us-gov": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
Expand Down
10 changes: 10 additions & 0 deletions pkg/actions/nodegroup/testdata/br-updated-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,16 @@
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-e": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-f": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-us-gov": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
Expand Down
2 changes: 1 addition & 1 deletion pkg/actions/podidentityassociation/tasks.go
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ func runAllTasks(taskTree *tasks.TaskTree) error {
for _, err := range errs {
allErrs = append(allErrs, err.Error())
}
return fmt.Errorf(strings.Join(allErrs, "\n"))
return fmt.Errorf("%s", strings.Join(allErrs, "\n"))
}
completedAction := func() string {
if taskTree.PlanMode {
Expand Down
2 changes: 1 addition & 1 deletion pkg/apis/eksctl.io/v1alpha5/addon.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ func (a Addon) checkAtMostOnePolicyProviderIsSet() error {
setPolicyProviders++
}

if a.AttachPolicyARNs != nil && len(a.AttachPolicyARNs) > 0 {
if len(a.AttachPolicyARNs) > 0 {
setPolicyProviders++
}

Expand Down
3 changes: 3 additions & 0 deletions pkg/apis/eksctl.io/v1alpha5/known_addons.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ var KnownAddons = map[string]struct {
RegionUSISOBEast1,
RegionUSGovWest1,
RegionUSGovEast1,
RegionUSISOFEast1,
RegionUSISOFSouth1,
RegionEUISOEWest1,
},
},
}
Expand Down
44 changes: 40 additions & 4 deletions pkg/apis/eksctl.io/v1alpha5/partitions.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,17 @@ const (
PartitionUSGov = "aws-us-gov"
PartitionISO = "aws-iso"
PartitionISOB = "aws-iso-b"
PartitionISOF = "aws-iso-f"
PartitionISOE = "aws-iso-e"
)

// partition is an AWS partition.
type partition struct {
name string
serviceMappings map[string]string
regions []string
endpointServiceDomainPrefix string
name string
serviceMappings map[string]string
regions []string
endpointServiceDomainPrefix string
endpointServiceDomainPrefixAlt string
}

type partitions []partition
Expand Down Expand Up @@ -76,6 +79,28 @@ var Partitions = partitions{
regions: []string{RegionUSISOBEast1},
endpointServiceDomainPrefix: "gov.sgov.sc2s",
},
{
name: PartitionISOE,
serviceMappings: map[string]string{
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com",
},
regions: []string{RegionEUISOEWest1},
endpointServiceDomainPrefix: standardPartitionServiceDomainPrefix,
endpointServiceDomainPrefixAlt: "uk.adc-e.cloud",
},
{
name: PartitionISOF,
serviceMappings: map[string]string{
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com",
},
regions: []string{RegionUSISOFSouth1, RegionUSISOFEast1},
endpointServiceDomainPrefix: standardPartitionServiceDomainPrefix,
endpointServiceDomainPrefixAlt: "gov.ic.hci.csp",
},
}

// ForRegion returns the partition a region belongs to.
Expand Down Expand Up @@ -106,6 +131,17 @@ func (p partitions) GetEndpointServiceDomainPrefix(endpointService EndpointServi
return pt.endpointServiceDomainPrefix
}
return standardPartitionServiceDomainPrefix
case PartitionISOE, PartitionISOF:
if endpointService.RequiresISOPrefix {
//in these partitions four endpoints have an alternate domain prefix
switch endpointService.Name {
case "ebs", "ecr.api", "ecr.dkr", "execute-api":
return pt.endpointServiceDomainPrefixAlt
default:
return pt.endpointServiceDomainPrefix
}
}
return standardPartitionServiceDomainPrefix
default:
return pt.endpointServiceDomainPrefix
}
Expand Down
31 changes: 29 additions & 2 deletions pkg/apis/eksctl.io/v1alpha5/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,12 +170,21 @@ const (
// RegionUSISOBEast1 represents the region US ISOB East (Ohio).
RegionUSISOBEast1 = "us-isob-east-1"

// RegionUSISOWest1 represents the region US ISOB West.
// RegionUSISOWest1 represents the region US ISO West.
RegionUSISOWest1 = "us-iso-west-1"

// RegionMXCentral1 represents the region of central Mexico
RegionMXCentral1 = "mx-central-1"

// RegionUSISOFSouth1 represents the region US ISOF South.
RegionUSISOFSouth1 = "us-isof-south-1"

// RegionUSISOFSouth1 represents the region US ISOF East.
RegionUSISOFEast1 = "us-isof-east-1"

// Region represents the region EU ISOE West.
RegionEUISOEWest1 = "eu-isoe-west-1"

// DefaultRegion defines the default region, where to deploy the EKS cluster
DefaultRegion = RegionUSWest2
)
Expand Down Expand Up @@ -365,6 +374,15 @@ const (

// eksResourceAccountMXCentral1 defines the AWS EKS account ID that provides node resources in mx-central-1
eksResourceAccountMXCentral1 = "730335286997"

// eksResourceAccountUSISOFSouth1 defines the AWS EKS account ID that provides node resources in us-isof-south-1
eksResourceAccountUSISOFSouth1 = "676585237158"

// eksResourceAccountUSISOFEast1 defines the AWS EKS account ID that provides node resources in us-isof-east-1
eksResourceAccountUSISOFEast1 = "171035529773"

// eksResourceAccountEUISOEWest1 defines the AWS EKS account ID that provides node resources in eu-isoe-west-1
eksResourceAccountEUISOEWest1 = "249663109785"
)

// Values for `VolumeType`
Expand Down Expand Up @@ -506,6 +524,9 @@ func SupportedRegions() []string {
RegionUSISOBEast1,
RegionUSISOWest1,
RegionMXCentral1,
RegionUSISOFSouth1,
RegionUSISOFEast1,
RegionEUISOEWest1,
}
}

Expand Down Expand Up @@ -598,6 +619,12 @@ func EKSResourceAccountID(region string) string {
return eksResourceAccountUSISOWest1
case RegionMXCentral1:
return eksResourceAccountMXCentral1
case RegionUSISOFSouth1:
return eksResourceAccountUSISOFSouth1
case RegionUSISOFEast1:
return eksResourceAccountUSISOFEast1
case RegionEUISOEWest1:
return eksResourceAccountEUISOEWest1
default:
return eksResourceAccountStandard
}
Expand Down Expand Up @@ -710,7 +737,7 @@ func (r *RemoteNetworkConfig) ToRemoteNetworksPool() []string {
}

func (r *RemoteNetworkConfig) HasRemoteNodesEnabled() bool {
return r.RemoteNodeNetworks != nil && len(r.RemoteNodeNetworks) > 0
return len(r.RemoteNodeNetworks) > 0
}

func (c *ClusterConfig) HasRemoteNetworkingConfigured() bool {
Expand Down
30 changes: 30 additions & 0 deletions pkg/cfn/builder/karpenter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,16 @@ var expectedTemplate = `{
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-e": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-f": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-us-gov": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
Expand Down Expand Up @@ -240,6 +250,16 @@ var expectedTemplateWithPermissionBoundary = `{
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-e": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-f": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-us-gov": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
Expand Down Expand Up @@ -387,6 +407,16 @@ var expectedTemplateWithSpotInterruptionQueue = `{
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-e": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-f": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-us-gov": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
Expand Down
10 changes: 10 additions & 0 deletions pkg/cfn/builder/testdata/nodegroup_access_entry/1.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,16 @@
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-f": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-iso-e": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
"EKSFargatePods": "eks-fargate-pods.amazonaws.com"
},
"aws-us-gov": {
"EC2": "ec2.amazonaws.com",
"EKS": "eks.amazonaws.com",
Expand Down
Loading

0 comments on commit 48f1e72

Please sign in to comment.