Add support for eusc-de-east-1 (AWS European Sovereign Cloud) - #8839
Closed
gustavodiaz7722 wants to merge 2 commits into
Closed
Add support for eusc-de-east-1 (AWS European Sovereign Cloud)#8839gustavodiaz7722 wants to merge 2 commits into
gustavodiaz7722 wants to merge 2 commits into
Conversation
Register the AWS European Sovereign Cloud partition (aws-eusc) and its first region, Germany East (eusc-de-east-1). The partition uses the standard service principal mappings, since both SSM and IAM Roles Anywhere are present in aws-eusc, and the standard "com.amazonaws" VPC endpoint service domain prefix. Its DNS suffix is amazonaws.eu rather than amazonaws.com, which is what UseRegionalImage combines with the EKS resource account to reach the regional add-on image host 877088126301.dkr.ecr.eusc-de-east-1.amazonaws.eu. metrics-server is excluded from the default add-ons in this region, in line with every other non-standard partition.
Contributor
|
Hello gustavodiaz7722 👋 Thank you for opening a Pull Request in |
The metrics-server add-on is available in the AWS European Sovereign Cloud, so eusc-de-east-1 does not belong in ExcludedRegions. Excluding it would have silently dropped a default add-on in the region.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds support for the AWS European Sovereign Cloud: the
aws-euscpartition and its first region, Germany East (eusc-de-east-1).This overlaps with #8743, which is also open and came first. I'm not trying to jump the queue — I started out reviewing that PR and ended up with a branch. If the maintainers would rather land #8743, I'm happy to close this and move the notes below over as review comments; the findings matter more than which PR merges.
Partition entry (
pkg/apis/eksctl.io/v1alpha5/partitions.go)v1SDKDNSPrefixisamazonaws.eu, notamazonaws.com. This is the part with real consequences:addons.UseRegionalImageformats%s.dkr.ecr.%s.%s, so the suffix decides whether the regional add-on images resolve at all. The correct host is877088126301.dkr.ecr.eusc-de-east-1.amazonaws.eu, per View Amazon container image registries for Amazon EKS add-ons — the same table the EKS resource account ID comes from. The suffix is corroborated by botocore'sendpoints.json(aws-eusc→dnsSuffix: amazonaws.eu) and by the SDK already vendored here:aws-sdk-go-v2/service/eks@v1.80.2resolvesaws-eusctoeks.{region}.amazonaws.eu.standardServiceMappingsrather than a reduced EC2/EKS/EKSFargatePods map. Bothssmandrolesanywhereare present in theaws-euscpartition inendpoints.json, so theSSMandIRAservice principals are valid there. That keepsClusterResourceSet.addSSMand the IAM Roles Anywhere path for hybrid nodes from hitting a missingFindInMapkey, and makes this entry identical in shape toaws-us-gov.endpointServiceDomainPrefixAlt.GetEndpointServiceDomainPrefixonly reads that field undercase PartitionISOE, PartitionISOF, so setting it for a partition outside that switch would be dead weight. EUSC takes thedefault:branch and gets the standardcom.amazonawsprefix. That's also why there's no newservice_details_*/vpc_private_*fixture here: the ISOE/ISOF fixtures exist specifically to cover their alternate prefix, and EUSC has no such special case to cover.Default add-ons —
eusc-de-east-1is deliberately not added toMetricsServerAddon.ExcludedRegions. That list currently holds every other non-standard partition, so it looks like an omission; it isn't.metrics-serveris available in the AWS European Sovereign Cloud, and excluding the region would silently drop a default add-on there. Flagging it so a reviewer doesn't "fix" it.Fixtures — the
aws-euscblock is inserted betweenaws-cnandaws-iso.cloudformation.Template.Mappingsis amap[string]interface{}andTemplate.JSON()goes throughjson.MarshalIndent, so rendered key order is sorted, andpkg/actions/nodegroup/upgrade_test.gopluskarpenter_test.goboth compare with exact-stringEqual— position matters. All three expected templates inkarpenter_test.goare updated, not just the first.Testing
go build ./...is clean andgo test ./pkg/...passes for 85 packages. Two packages fail in my environment for reasons unrelated to this change, and fail identically on unmodifiedmain:pkg/iam/oidcneedscfssl/cfssljsononPATH, andpkg/karpenter/providers/helmpulls a chart frompublic.ecr.awsand gets a 403.I could not manually test this — I have no access to
eusc-de-east-1. The one thing worth confirming in-region is the DNS suffix, via either of the commands that actually consume it:Both should resolve images under
877088126301.dkr.ecr.eusc-de-east-1.amazonaws.eu.Worth noting for anyone validating:
addons.UseRegionalImageis reached only fromutils update-aws-node,utils update-coredns,utils update-addonandutils install-vpc-controllers. It is not on theeksctl create clusterpath when EKS-managed add-ons are used, which is the default. So a successful cluster-creation smoke test in the region does not exercise the DNS suffix and will pass whichever value is set.Checklist
README.md, or theuserdocsdirectory)area/nodegroup) and kind (e.g.kind/improvement)