Skip to content

CORS-4335: Add support for AWS European Sovereign Cloud#1360

Merged
openshift-merge-bot[bot] merged 3 commits intoopenshift:masterfrom
tthvo:eusc-support
Mar 26, 2026
Merged

CORS-4335: Add support for AWS European Sovereign Cloud#1360
openshift-merge-bot[bot] merged 3 commits intoopenshift:masterfrom
tthvo:eusc-support

Conversation

@tthvo
Copy link
Copy Markdown
Member

@tthvo tthvo commented Feb 13, 2026

AWS European Sovereign Cloud support

This PR allows support for AWS European Sovereign Cloud (EUSC). The Route53 and tagging client should point to the eusc-de-east-1 region in EUSC.

Note: we can only check the region prefix eusc- because the AWS SDK v1 does not recognize the new EUSC partition and regions. Support for EUSC can, as of now, be achieved via custom service endpoint.

ELB v2 custom endpoint

As mentioned, the AWS SDK v1 does not recognize the new EUSC parition and regions. It will, by default, resolve the service endpoint incorrectly. Thus, we will need to provide the service endpoint explicitly for necessary services, including ELB v2 for Network Load Balancers.

This adds custom endpoint support for ELB v2 (to create NLBs). The implementation is based on the following points.

  • The AWS SDK v1 uses the same service ID elasticloadbalancing for both ELB and ELB v2. See similar discussion.
  • When a custom endpoint is specified for ELB, it should also apply to ELB v2. This change ensures both services use the custom endpoint when configured.

STS custom endpoint

This change originates from the similar reason as ELB v2 custom endpoint. We need to be able to customize the STS endpoint in order to assume role for managing shared hosted zone in EUSC.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Feb 13, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@tthvo: This pull request explicitly references no jira issue.

Details

In response to this:

Forward-compatibility

This PR allows forward-compatibility with newly released AWS partitions (such as European Sovereign Cloud) by skipping Route53 and tagging client region configuration in unknown/non-standard AWS partitions. Otherwise, installing in a new partition will always incorrectly use us-east-1 clients, which fails due to credential region mismatch.

ELB v2 custom endpoint

This also adds custom endpoint support for ELB v2 (to create NLBs). The implementation is based on the following points.

  • The AWS SDK v1 uses the same service ID elasticloadbalancing for both ELB and ELB v2. See similar discussion.
  • When a custom endpoint is specified for ELB, it should also apply to ELB v2. This change ensures both services use the custom endpoint when configured.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Feb 13, 2026

/hold

I am unsure if this is the right approach. As of now, we can only support EUSC via custom service endpoint (see openshift/installer#10303) because AWS SDK v1 is EOL and doesn't support it out of the box. I don't think migrating to AWS SDK v2 is trivial at all...

Please let me know if this works 🙏

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Feb 13, 2026
@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Feb 13, 2026

/cc @alebedev87 @patrickdillon @rna-afk

@tthvo tthvo changed the title NO-JIRA: support unknown/newly-released AWS partitions and ELB v2 endpoints CORS-4335: Add support for AWS European Sovereign Cloud Feb 13, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented Feb 13, 2026

@tthvo: This pull request references CORS-4335 which is a valid jira issue.

Details

In response to this:

AWS European Sovereign Cloud support

This PR allows support for AWS European Sovereign Cloud (EUSC). The Route53 and tagging client should point to the eusc-de-east-1 region in EUSC.

Note: we can only check the region prefix eusc- because the AWS SDK v1 does not recognize the new EUSC partition and regions.

ELB v2 custom endpoint

As mentioned, the AWS SDK v1 does not recognize the new EUSC parition and regions. It will, by default, resolve the service endpoint incorrectly. Thus, we will need to provide the service endpoint explicitly for necessary services, including ELB v2 for Network Load Balancers.

This adds custom endpoint support for ELB v2 (to create NLBs). The implementation is based on the following points.

  • The AWS SDK v1 uses the same service ID elasticloadbalancing for both ELB and ELB v2. See similar discussion.
  • When a custom endpoint is specified for ELB, it should also apply to ELB v2. This change ensures both services use the custom endpoint when configured.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented Feb 13, 2026

@tthvo: This pull request references CORS-4335 which is a valid jira issue.

Details

In response to this:

AWS European Sovereign Cloud support

This PR allows support for AWS European Sovereign Cloud (EUSC). The Route53 and tagging client should point to the eusc-de-east-1 region in EUSC.

Note: we can only check the region prefix eusc- because the AWS SDK v1 does not recognize the new EUSC partition and regions. Support for EUSC can, as of now, be achieved via custom service endpoint.

ELB v2 custom endpoint

As mentioned, the AWS SDK v1 does not recognize the new EUSC parition and regions. It will, by default, resolve the service endpoint incorrectly. Thus, we will need to provide the service endpoint explicitly for necessary services, including ELB v2 for Network Load Balancers.

This adds custom endpoint support for ELB v2 (to create NLBs). The implementation is based on the following points.

  • The AWS SDK v1 uses the same service ID elasticloadbalancing for both ELB and ELB v2. See similar discussion.
  • When a custom endpoint is specified for ELB, it should also apply to ELB v2. This change ensures both services use the custom endpoint when configured.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Feb 13, 2026

/retest

@tthvo tthvo force-pushed the eusc-support branch 2 times, most recently from be85531 to 6cb9548 Compare February 18, 2026 04:31
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented Feb 18, 2026

@tthvo: This pull request references CORS-4335 which is a valid jira issue.

Details

In response to this:

AWS European Sovereign Cloud support

This PR allows support for AWS European Sovereign Cloud (EUSC). The Route53 and tagging client should point to the eusc-de-east-1 region in EUSC.

Note: we can only check the region prefix eusc- because the AWS SDK v1 does not recognize the new EUSC partition and regions. Support for EUSC can, as of now, be achieved via custom service endpoint.

ELB v2 custom endpoint

As mentioned, the AWS SDK v1 does not recognize the new EUSC parition and regions. It will, by default, resolve the service endpoint incorrectly. Thus, we will need to provide the service endpoint explicitly for necessary services, including ELB v2 for Network Load Balancers.

This adds custom endpoint support for ELB v2 (to create NLBs). The implementation is based on the following points.

  • The AWS SDK v1 uses the same service ID elasticloadbalancing for both ELB and ELB v2. See similar discussion.
  • When a custom endpoint is specified for ELB, it should also apply to ELB v2. This change ensures both services use the custom endpoint when configured.

STS custom endpoint

This change originates from the similar reason as ELB v2 custom endpoint. We need to be able to customize the STS endpoint in order to assume role for managing shared hosted zone in EUSC.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Feb 18, 2026

/retest

1 similar comment
@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Feb 18, 2026

/retest

@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Feb 18, 2026

/hold cancel

Tested locally with openshift/installer#10303 and the install completed successfully in EUS Cloud.

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Feb 18, 2026
@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Feb 19, 2026

/test e2e-aws-operator

@alebedev87
Copy link
Copy Markdown
Contributor

/assign

@patrickdillon
Copy link
Copy Markdown
Contributor

would these changes be necessary at all if the operator were on v2 of the aws sdk?

@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Feb 25, 2026

would these changes be necessary at all if the operator were on v2 of the aws sdk?

Oh no, in that case, the only commit needed is 7806b67, where we must use eusc-de-east-1 for tagging and route53 client. The SDK v2 (some latest versions) will automatically resolves the EUSC endpoints out of the box.

liweinan added a commit to liweinan/release that referenced this pull request Feb 27, 2026
This commit adds CI infrastructure support for AWS European Sovereign
Cloud (EUSC) testing using the eusc-de-east-1 region.

Changes:
- Add cluster-secrets-aws-eusc-qe to secret bootstrap config
- Add aws-eusc-qe-quota-slice boskos resource pool with 5 quota slices
  in eusc-de-east-1 region
- Generate updated _boskos.yaml configuration

The profile uses vault secret: cluster-secrets-aws-eusc-qe

Region Details:
- Region: eusc-de-east-1 (Brandenburg, Germany)
- Availability zones: eusc-de-east-1a, eusc-de-east-1b (2 zones only)
- Note: No edge zones (Local/Wavelength) available in this region

Dependencies:
- Installer support: openshift/installer#10303
- Ingress operator support: openshift/cluster-ingress-operator#1360
- API support (optional): openshift/api#2708

Tested installation scenarios (from installer PR openshift#10303):
- ✅ Default minimal config
- ✅ Ingress NLB type
- ✅ BYO Private Hosted zone
- ✅ BYO KMS key
- ✅ BYO VPC and subnets

Installation time: ~45m26s

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
tthvo added 3 commits March 25, 2026 06:56
The AWS SDK v1 uses the same service ID "elasticloadbalancing" for elb
and elbv2. Thus, if defined, we need to use the custom service endpoint
for both.
… Cloud

Add support for AWS European Sovereign Cloud (EUSC) regions by
configuring Route53 and tagging clients to use eusc-de-east-1 region.
Since Route 53 is not a regionalized service in EUSC, the Tagging API
will only return hosted zone resources when the region is set to
eusc-de-east-1.
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Mar 25, 2026
@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Mar 25, 2026

/retest

@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Mar 25, 2026

/payload-job periodic-ci-openshift-openshift-tests-private-release-4.22-arm64-nightly-aws-ipi-disc-priv-sts-ep-mini-perm-f14

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 25, 2026

@tthvo: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-openshift-tests-private-release-4.22-arm64-nightly-aws-ipi-disc-priv-sts-ep-mini-perm-f14

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/571107c0-2873-11f1-9612-8fd63eaa95bf-0

@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Mar 25, 2026

/payload-job periodic-ci-openshift-openshift-tests-private-release-4.22-arm64-nightly-aws-ipi-disc-priv-sts-ep-mini-perm-f14

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 25, 2026

@tthvo: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-openshift-tests-private-release-4.22-arm64-nightly-aws-ipi-disc-priv-sts-ep-mini-perm-f14

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/971bbbc0-2883-11f1-9822-81f95ba6698b-0

@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Mar 25, 2026

With the latest push, I have dropped commits that add support for STS custom endpoint. For that reason, EUSC install will only support Mint and Passthrough credentialsMode case (except shared phz, which uses STS).

Copy link
Copy Markdown
Contributor

@alebedev87 alebedev87 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm
/approve

As agreed, the STS custom endpoint is removed from this PR. So EUSC support comes without STS for the moment (image registry is another component which has a gap for STS custom endpoint).

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Mar 26, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 26, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: alebedev87

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 26, 2026
@alebedev87
Copy link
Copy Markdown
Contributor

/assign @liweinan

For verification..

@liweinan
Copy link
Copy Markdown

/verified by liweinan

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Mar 26, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@liweinan: This PR has been marked as verified by liweinan.

Details

In response to this:

/verified by liweinan

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@alebedev87
Copy link
Copy Markdown
Contributor

/test e2e-aws-ovn-hypershift-conformance

Some unrelated storage issues, retesting..

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

/retest-required

Remaining retests: 0 against base HEAD a6176ea and 2 for PR HEAD 34fd6fa in total

@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Mar 26, 2026

/test e2e-aws-ovn-hypershift-conformance

Let's try again 😅

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 26, 2026

@tthvo: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@tthvo
Copy link
Copy Markdown
Member Author

tthvo commented Mar 26, 2026

/tide refresh

It's time :D

@openshift-merge-bot openshift-merge-bot Bot merged commit d16dd45 into openshift:master Mar 26, 2026
19 checks passed
@tthvo tthvo deleted the eusc-support branch March 26, 2026 23:13
@lihongan
Copy link
Copy Markdown

Change included in accepted release 4.22.0-0.nightly-2026-03-29-055437

@liweinan
Copy link
Copy Markdown

Change included in accepted release 4.22.0-0.nightly-2026-03-29-055437

@lihongan Thanks for the work! I retried the test jobs here: openshift/release#75568

anpingli pushed a commit to anpingli/release that referenced this pull request Mar 30, 2026
This commit adds CI infrastructure support for AWS European Sovereign
Cloud (EUSC) testing using the eusc-de-east-1 region.

Changes:
- Add cluster-secrets-aws-eusc-qe to secret bootstrap config
- Add aws-eusc-qe-quota-slice boskos resource pool with 5 quota slices
  in eusc-de-east-1 region
- Generate updated _boskos.yaml configuration

Region Details:
- Region: eusc-de-east-1 (Brandenburg, Germany)
- Availability zones: eusc-de-east-1a, eusc-de-east-1b (2 zones only)
- Note: No edge zones (Local/Wavelength) available in this region

Dependencies:
- Installer support: openshift/installer#10303
- Ingress operator support: openshift/cluster-ingress-operator#1360
- API support (optional): openshift/api#2708
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants