Skip to content

Commit c4dd5c6

Browse files
committed
aws: Adding dualstack presubmit job
Adding two presubmit jobs for the dualstack work in aws to support ipv6 along with ipv4. One for ipv4 and one for ipv6 primary. Code generated by claude.
1 parent e31e1c0 commit c4dd5c6

4 files changed

Lines changed: 226 additions & 4 deletions

File tree

ci-operator/config/openshift/installer/openshift-installer-main.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,26 @@ tests:
242242
keyB valueB
243243
keyC valueC
244244
workflow: openshift-e2e-aws
245+
- always_run: false
246+
as: e2e-aws-ovn-dualstack-ipv4-primary-techpreview
247+
optional: true
248+
run_if_changed: aws
249+
steps:
250+
cluster_profile: aws-3
251+
env:
252+
FEATURE_SET: TechPreviewNoUpgrade
253+
IP_FAMILY: DualStackIPv4Primary
254+
workflow: openshift-e2e-aws
255+
- always_run: false
256+
as: e2e-aws-ovn-dualstack-ipv6-primary-techpreview
257+
optional: true
258+
run_if_changed: aws
259+
steps:
260+
cluster_profile: aws-3
261+
env:
262+
FEATURE_SET: TechPreviewNoUpgrade
263+
IP_FAMILY: DualStackIPv6Primary
264+
workflow: openshift-e2e-aws
245265
- always_run: false
246266
as: e2e-aws-ovn-proxy
247267
optional: true

ci-operator/jobs/openshift/installer/openshift-installer-main-presubmits.yaml

Lines changed: 150 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
presubmits:
22
openshift/installer:
33
- agent: kubernetes
4-
always_run: false
4+
always_run: true
55
branches:
66
- ^main$
77
- ^main-
@@ -14,7 +14,6 @@ presubmits:
1414
pj-rehearse.openshift.io/can-be-rehearsed: "true"
1515
name: pull-ci-openshift-installer-main-artifacts-images
1616
rerun_command: /test artifacts-images
17-
skip_if_only_changed: (^docs/)|((^|/)OWNERS(_ALIASES)?$)|((^|/)[A-Z]+\.md$)
1817
spec:
1918
containers:
2019
- args:
@@ -1543,6 +1542,154 @@ presubmits:
15431542
secret:
15441543
secretName: result-aggregator
15451544
trigger: (?m)^/test( | .* )e2e-aws-ovn-custom-iam-profile,?($|\s.*)
1545+
- agent: kubernetes
1546+
always_run: false
1547+
branches:
1548+
- ^main$
1549+
- ^main-
1550+
cluster: build10
1551+
context: ci/prow/e2e-aws-ovn-dualstack-ipv4-primary-techpreview
1552+
decorate: true
1553+
labels:
1554+
ci-operator.openshift.io/cloud: aws
1555+
ci-operator.openshift.io/cloud-cluster-profile: aws-3
1556+
ci.openshift.io/generator: prowgen
1557+
pj-rehearse.openshift.io/can-be-rehearsed: "true"
1558+
name: pull-ci-openshift-installer-main-e2e-aws-ovn-dualstack-ipv4-primary-techpreview
1559+
optional: true
1560+
rerun_command: /test e2e-aws-ovn-dualstack-ipv4-primary-techpreview
1561+
run_if_changed: aws
1562+
spec:
1563+
containers:
1564+
- args:
1565+
- --gcs-upload-secret=/secrets/gcs/service-account.json
1566+
- --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson
1567+
- --lease-server-credentials-file=/etc/boskos/credentials
1568+
- --report-credentials-file=/etc/report/credentials
1569+
- --secret-dir=/secrets/ci-pull-credentials
1570+
- --target=e2e-aws-ovn-dualstack-ipv4-primary-techpreview
1571+
command:
1572+
- ci-operator
1573+
image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest
1574+
imagePullPolicy: Always
1575+
name: ""
1576+
resources:
1577+
requests:
1578+
cpu: 10m
1579+
volumeMounts:
1580+
- mountPath: /etc/boskos
1581+
name: boskos
1582+
readOnly: true
1583+
- mountPath: /secrets/ci-pull-credentials
1584+
name: ci-pull-credentials
1585+
readOnly: true
1586+
- mountPath: /secrets/gcs
1587+
name: gcs-credentials
1588+
readOnly: true
1589+
- mountPath: /secrets/manifest-tool
1590+
name: manifest-tool-local-pusher
1591+
readOnly: true
1592+
- mountPath: /etc/pull-secret
1593+
name: pull-secret
1594+
readOnly: true
1595+
- mountPath: /etc/report
1596+
name: result-aggregator
1597+
readOnly: true
1598+
serviceAccountName: ci-operator
1599+
volumes:
1600+
- name: boskos
1601+
secret:
1602+
items:
1603+
- key: credentials
1604+
path: credentials
1605+
secretName: boskos-credentials
1606+
- name: ci-pull-credentials
1607+
secret:
1608+
secretName: ci-pull-credentials
1609+
- name: manifest-tool-local-pusher
1610+
secret:
1611+
secretName: manifest-tool-local-pusher
1612+
- name: pull-secret
1613+
secret:
1614+
secretName: registry-pull-credentials
1615+
- name: result-aggregator
1616+
secret:
1617+
secretName: result-aggregator
1618+
trigger: (?m)^/test( | .* )e2e-aws-ovn-dualstack-ipv4-primary-techpreview,?($|\s.*)
1619+
- agent: kubernetes
1620+
always_run: false
1621+
branches:
1622+
- ^main$
1623+
- ^main-
1624+
cluster: build10
1625+
context: ci/prow/e2e-aws-ovn-dualstack-ipv6-primary-techpreview
1626+
decorate: true
1627+
labels:
1628+
ci-operator.openshift.io/cloud: aws
1629+
ci-operator.openshift.io/cloud-cluster-profile: aws-3
1630+
ci.openshift.io/generator: prowgen
1631+
pj-rehearse.openshift.io/can-be-rehearsed: "true"
1632+
name: pull-ci-openshift-installer-main-e2e-aws-ovn-dualstack-ipv6-primary-techpreview
1633+
optional: true
1634+
rerun_command: /test e2e-aws-ovn-dualstack-ipv6-primary-techpreview
1635+
run_if_changed: aws
1636+
spec:
1637+
containers:
1638+
- args:
1639+
- --gcs-upload-secret=/secrets/gcs/service-account.json
1640+
- --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson
1641+
- --lease-server-credentials-file=/etc/boskos/credentials
1642+
- --report-credentials-file=/etc/report/credentials
1643+
- --secret-dir=/secrets/ci-pull-credentials
1644+
- --target=e2e-aws-ovn-dualstack-ipv6-primary-techpreview
1645+
command:
1646+
- ci-operator
1647+
image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest
1648+
imagePullPolicy: Always
1649+
name: ""
1650+
resources:
1651+
requests:
1652+
cpu: 10m
1653+
volumeMounts:
1654+
- mountPath: /etc/boskos
1655+
name: boskos
1656+
readOnly: true
1657+
- mountPath: /secrets/ci-pull-credentials
1658+
name: ci-pull-credentials
1659+
readOnly: true
1660+
- mountPath: /secrets/gcs
1661+
name: gcs-credentials
1662+
readOnly: true
1663+
- mountPath: /secrets/manifest-tool
1664+
name: manifest-tool-local-pusher
1665+
readOnly: true
1666+
- mountPath: /etc/pull-secret
1667+
name: pull-secret
1668+
readOnly: true
1669+
- mountPath: /etc/report
1670+
name: result-aggregator
1671+
readOnly: true
1672+
serviceAccountName: ci-operator
1673+
volumes:
1674+
- name: boskos
1675+
secret:
1676+
items:
1677+
- key: credentials
1678+
path: credentials
1679+
secretName: boskos-credentials
1680+
- name: ci-pull-credentials
1681+
secret:
1682+
secretName: ci-pull-credentials
1683+
- name: manifest-tool-local-pusher
1684+
secret:
1685+
secretName: manifest-tool-local-pusher
1686+
- name: pull-secret
1687+
secret:
1688+
secretName: registry-pull-credentials
1689+
- name: result-aggregator
1690+
secret:
1691+
secretName: result-aggregator
1692+
trigger: (?m)^/test( | .* )e2e-aws-ovn-dualstack-ipv6-primary-techpreview,?($|\s.*)
15461693
- agent: kubernetes
15471694
always_run: false
15481695
branches:
@@ -7870,7 +8017,7 @@ presubmits:
78708017
secretName: result-aggregator
78718018
trigger: (?m)^/test( | .* )okd-scos-e2e-aws-ovn,?($|\s.*)
78728019
- agent: kubernetes
7873-
always_run: false
8020+
always_run: true
78748021
branches:
78758022
- ^main$
78768023
- ^main-
@@ -7885,7 +8032,6 @@ presubmits:
78858032
pj-rehearse.openshift.io/can-be-rehearsed: "true"
78868033
name: pull-ci-openshift-installer-main-okd-scos-images
78878034
rerun_command: /test okd-scos-images
7888-
skip_if_only_changed: (^docs/)|((^|/)OWNERS(_ALIASES)?$)|((^|/)[A-Z]+\.md$)
78898035
spec:
78908036
containers:
78918037
- args:

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

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,3 +450,53 @@ EOF
450450
yq-go m -x -i ${CONFIG} ${patch_dedicated_host}
451451
cp "${patch_dedicated_host}" "${ARTIFACT_DIR}/"
452452
fi
453+
454+
# Configure dual-stack networking if IP_FAMILY is set
455+
if [[ -n "${IP_FAMILY:-}" ]]; then
456+
echo "Configuring AWS dual-stack networking with ipFamily: ${IP_FAMILY}"
457+
patch_dualstack="${SHARED_DIR}/install-config-dualstack.yaml.patch"
458+
459+
# For IPv6Primary, IPv6 addresses must be listed first
460+
if [[ "${IP_FAMILY}" == "DualStackIPv6Primary" ]]; then
461+
cat > "${patch_dualstack}" << EOF
462+
platform:
463+
aws:
464+
ipFamily: ${IP_FAMILY}
465+
networking:
466+
networkType: OVNKubernetes
467+
machineNetwork:
468+
- cidr: 10.0.0.0/16
469+
clusterNetwork:
470+
- cidr: fd01::/48
471+
hostPrefix: 64
472+
- cidr: 10.128.0.0/14
473+
hostPrefix: 23
474+
serviceNetwork:
475+
- fd02::/112
476+
- 172.30.0.0/16
477+
EOF
478+
else
479+
# DualStackIPv4Primary or default - IPv4 addresses listed first
480+
cat > "${patch_dualstack}" << EOF
481+
platform:
482+
aws:
483+
ipFamily: ${IP_FAMILY}
484+
networking:
485+
networkType: OVNKubernetes
486+
machineNetwork:
487+
- cidr: 10.0.0.0/16
488+
clusterNetwork:
489+
- cidr: 10.128.0.0/14
490+
hostPrefix: 23
491+
- cidr: fd01::/48
492+
hostPrefix: 64
493+
serviceNetwork:
494+
- 172.30.0.0/16
495+
- fd02::/112
496+
EOF
497+
fi
498+
499+
yq-go m -a -x -i "${CONFIG}" "${patch_dualstack}"
500+
cp "${patch_dualstack}" "${ARTIFACT_DIR}/"
501+
echo "Dual-stack networking configuration added to install-config.yaml"
502+
fi

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,5 +121,11 @@ ref:
121121
documentation: |-
122122
Allows users to enable configuration of dedicated hosts for compute nodes. Valid options are "yes" and "no". When "yes", the
123123
configuration will create a dedicated host for each zone the "worker" compute pool has configured.
124+
- name: IP_FAMILY
125+
default: ""
126+
documentation: |-
127+
IP family configuration for dual-stack. Valid values: DualStackIPv4Primary, DualStackIPv6Primary.
128+
When set, configures both IPv4 and IPv6 network stacks for AWS clusters using the ipFamily field.
129+
When "" (default), dual-stack is not configured.
124130
documentation: |-
125131
The IPI AWS configure step generates the AWS-specific install-config.yaml contents based on the cluster profile and optional input files.

0 commit comments

Comments
 (0)