Skip to content

Commit c6c4827

Browse files
committed
Address yunfei's review comments on PR #75568:
1. Job naming convention: - Rename jobs from -f60 to -f7 suffix (non-destructive tests) - Update cron schedule to standard f7 pattern: 7,14,23,30 2. Private cluster configuration: - Add complete private cluster setup with bastion host - Add VPC, security groups, and proxy configuration - Set PUBLISH=Internal for private cluster access - Add minimal IAM permission provisioning - Follow pattern from cucushift-installer-rehearse-aws-ipi-private-provision 3. Generalize step registry components for maximum reusability: a) Enhance ipi-conf-aws-custom-endpoints for all AWS partitions: - Add AWS_DOMAIN_SUFFIX env var (defaults to amazonaws.com) - Support amazonaws.eu (EUSC), amazonaws.com.cn (China) - Allow full URLs for maximum flexibility - Remove obsolete ipi-conf-aws-eusc-endpoints step b) Extend ipi-conf-aws to support custom AMI configuration: - Add AWS_AMI_ID env var for custom RHCOS AMI - Useful for EUSC, China, GovCloud, or any partition without public AMIs - Fix deprecated amiID field -> defaultMachinePlatform.amiID - Auto-detection still works for C2S/SC2S - Remove obsolete ipi-conf-aws-eusc-ami step c) EUSC provision chain now uses only generic steps with env config This refactoring reduces code duplication (net -59 lines) and makes step components reusable across all AWS partitions.
1 parent de00d69 commit c6c4827

12 files changed

Lines changed: 103 additions & 167 deletions

ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__amd64-nightly.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1851,8 +1851,8 @@ tests:
18511851
test:
18521852
- chain: openshift-e2e-test-qe-destructive
18531853
workflow: cucushift-installer-rehearse-aws-usgov-ipi-private-workers-marketplace
1854-
- as: aws-eusc-ipi-private-f60
1855-
cron: 0 6 */60 * *
1854+
- as: aws-eusc-ipi-private-f7
1855+
cron: 0 6 7,14,23,30 * *
18561856
steps:
18571857
cluster_profile: aws-eusc
18581858
env:
@@ -1862,8 +1862,8 @@ tests:
18621862
test:
18631863
- chain: openshift-e2e-test-qe
18641864
workflow: cucushift-installer-rehearse-aws-eusc-ipi-private
1865-
- as: aws-eusc-ipi-private-nlb-f60
1866-
cron: 0 12 */60 * *
1865+
- as: aws-eusc-ipi-private-nlb-f7
1866+
cron: 1 12 7,14,23,30 * *
18671867
steps:
18681868
cluster_profile: aws-eusc
18691869
env:

ci-operator/step-registry/cucushift/installer/rehearse/aws/eusc/ipi/private/provision/cucushift-installer-rehearse-aws-eusc-ipi-private-provision-chain.yaml

Lines changed: 57 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,66 @@ chain:
33
steps:
44
- ref: ipi-conf
55
- ref: ipi-conf-telemetry
6+
- ref: aws-provision-vpc-shared
7+
- chain: aws-provision-bastionhost
8+
- ref: aws-provision-security-group
9+
- ref: ipi-conf-aws-custom-vpc
610
- ref: ipi-conf-aws
7-
- ref: ipi-conf-aws-eusc-endpoints
8-
- ref: ipi-conf-aws-eusc-ami
11+
- ref: ipi-conf-aws-custom-security-groups
12+
- ref: ipi-conf-aws-custom-endpoints
13+
- ref: ipi-install-monitoringpvc
14+
- ref: proxy-config-generate
15+
- ref: ipi-conf-aws-usage-info
16+
- chain: aws-provision-iam-user-minimal-permission
917
- chain: ipi-install
18+
- ref: aws-provision-tags-for-byo-vpc
19+
- ref: cucushift-installer-check-aws-custom-vpc
20+
- ref: enable-qe-catalogsource
1021
- chain: cucushift-installer-check
22+
env:
23+
- name: AWS_DOMAIN_SUFFIX
24+
default: "amazonaws.eu"
25+
documentation: "AWS domain suffix for EUSC partition"
26+
- name: SERVICE_ENDPOINT_EC2
27+
default: "DEFAULT_ENDPOINT"
28+
documentation: "EC2 service endpoint"
29+
- name: SERVICE_ENDPOINT_ELB
30+
default: "DEFAULT_ENDPOINT"
31+
documentation: "ELB service endpoint"
32+
- name: SERVICE_ENDPOINT_S3
33+
default: "DEFAULT_ENDPOINT"
34+
documentation: "S3 service endpoint"
35+
- name: SERVICE_ENDPOINT_IAM
36+
default: "DEFAULT_ENDPOINT"
37+
documentation: "IAM service endpoint"
38+
- name: SERVICE_ENDPOINT_TAGGING
39+
default: "DEFAULT_ENDPOINT"
40+
documentation: "Tagging service endpoint"
41+
- name: SERVICE_ENDPOINT_ROUTE53
42+
default: "https://route53.amazonaws.eu"
43+
documentation: "Route53 service endpoint (global for EUSC)"
44+
- name: SERVICE_ENDPOINT_STS
45+
default: "DEFAULT_ENDPOINT"
46+
documentation: "STS service endpoint"
47+
- name: CONTROL_PLANE_INSTANCE_TYPE
48+
default: "m6i.xlarge"
49+
documentation: "Instance type for control plane nodes"
50+
- name: COMPUTE_NODE_TYPE
51+
default: "m5.xlarge"
52+
documentation: "Instance type for compute nodes"
53+
- name: PUBLISH
54+
default: "Internal"
55+
documentation: "Cluster publish strategy for private cluster."
1156
documentation: |-
12-
Provision an OpenShift cluster on AWS European Sovereign Cloud (EUSC)
13-
with private network configuration.
57+
Provision a private OpenShift cluster on AWS European Sovereign Cloud (EUSC).
1458
1559
This chain configures EUSC-specific requirements:
16-
- Service endpoints for eusc-de-east-1 region
17-
- Custom RHCOS AMI (required for EUSC)
18-
- Standard AWS IPI configuration
60+
- Private network with bastion host for installer access
61+
- Service endpoints for eusc-de-east-1 region (.amazonaws.eu domain)
62+
- Custom RHCOS AMI (set AWS_AMI_ID in cluster profile secret or job env)
63+
- Custom VPC and security groups
64+
- Minimal IAM permissions
65+
- Internal publish strategy (publish: Internal)
66+
67+
Note: AWS_AMI_ID must be provided as EUSC regions don't have public RHCOS AMIs.
68+
It should be defined in the cluster profile secret or passed as environment variable.

ci-operator/step-registry/ipi/conf/aws/custom-endpoints/ipi-conf-aws-custom-endpoints-commands.sh

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,24 @@
22

33
REGION="${LEASED_RESOURCE}"
44
CONFIG="${SHARED_DIR}/install-config.yaml"
5+
# Support different AWS partitions (commercial, GovCloud, China, EUSC, etc.)
6+
AWS_DOMAIN_SUFFIX="${AWS_DOMAIN_SUFFIX:-amazonaws.com}"
57

68
function patch_endpoint()
79
{
810
local service_name=$1
911
local custom_service_endpoint=$2
1012
local config_patch="${SHARED_DIR}/install-config-${service_name}.yaml.patch"
11-
if [ "$custom_service_endpoint" == "DEFAULT_ENDPOINT" ]; then
12-
ep="https://${service_name}.${REGION}.amazonaws.com"
13+
14+
# If the value starts with http, use it as-is (full URL)
15+
if [[ "$custom_service_endpoint" =~ ^https?:// ]]; then
16+
ep="$custom_service_endpoint"
17+
elif [ "$custom_service_endpoint" == "DEFAULT_ENDPOINT" ]; then
18+
ep="https://${service_name}.${REGION}.${AWS_DOMAIN_SUFFIX}"
1319
else
14-
ep="https://${custom_service_endpoint}.${REGION}.amazonaws.com"
20+
ep="https://${custom_service_endpoint}.${REGION}.${AWS_DOMAIN_SUFFIX}"
1521
fi
22+
1623
cat > "${config_patch}" << EOF
1724
platform:
1825
aws:

ci-operator/step-registry/ipi/conf/aws/custom-endpoints/ipi-conf-aws-custom-endpoints-ref.yaml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,15 @@ ref:
1111
cpu: 10m
1212
memory: 100Mi
1313
env:
14+
- name: AWS_DOMAIN_SUFFIX
15+
default: "amazonaws.com"
16+
documentation: |-
17+
AWS domain suffix for service endpoints. Use "amazonaws.com" for commercial,
18+
"amazonaws.com.cn" for China, "amazonaws.eu" for EUSC partition.
1419
- name: SERVICE_ENDPOINT_EC2
1520
default: ""
1621
documentation: |-
17-
ec2 endpoint
22+
ec2 endpoint (can be service name, partial URL, or full URL starting with https://)
1823
- name: SERVICE_ENDPOINT_ELB
1924
default: ""
2025
documentation: |-
@@ -52,6 +57,15 @@ ref:
5257
documentation: |-
5358
kms endpoint
5459
documentation: |-
55-
Generate configurations for custom endpoints.
56-
If SERVICE_ENDPOINT_* value is "DEFAULT_ENDPOINT", then the endpoint will be set to https://${service_name}.${REGION}.amazonaws.com
60+
Generate configurations for custom endpoints for different AWS partitions.
61+
62+
Set AWS_DOMAIN_SUFFIX to specify the domain (default: "amazonaws.com"):
63+
- Commercial: amazonaws.com
64+
- China: amazonaws.com.cn
65+
- EUSC: amazonaws.eu
66+
67+
For SERVICE_ENDPOINT_* variables:
68+
- "DEFAULT_ENDPOINT" -> https://${service_name}.${REGION}.${AWS_DOMAIN_SUFFIX}
69+
- Full URL (starts with https://) -> use as-is
70+
- Partial value -> https://${value}.${REGION}.${AWS_DOMAIN_SUFFIX}
5771

ci-operator/step-registry/ipi/conf/aws/eusc-ami/OWNERS

Lines changed: 0 additions & 10 deletions
This file was deleted.

ci-operator/step-registry/ipi/conf/aws/eusc-ami/ipi-conf-aws-eusc-ami-commands.sh

Lines changed: 0 additions & 27 deletions
This file was deleted.

ci-operator/step-registry/ipi/conf/aws/eusc-ami/ipi-conf-aws-eusc-ami-ref.yaml

Lines changed: 0 additions & 26 deletions
This file was deleted.

ci-operator/step-registry/ipi/conf/aws/eusc-endpoints/OWNERS

Lines changed: 0 additions & 10 deletions
This file was deleted.

ci-operator/step-registry/ipi/conf/aws/eusc-endpoints/ipi-conf-aws-eusc-endpoints-commands.sh

Lines changed: 0 additions & 46 deletions
This file was deleted.

ci-operator/step-registry/ipi/conf/aws/eusc-endpoints/ipi-conf-aws-eusc-endpoints-ref.yaml

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)