Skip to content

Commit 3b238f6

Browse files
rna-afkmemodi
authored andcommitted
aws: Adding dualstack presubmit job (openshift#73270)
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 cf1a011 commit 3b238f6

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:
@@ -1549,6 +1548,154 @@ presubmits:
15491548
- ^main$
15501549
- ^main-
15511550
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.*)
1693+
- agent: kubernetes
1694+
always_run: false
1695+
branches:
1696+
- ^main$
1697+
- ^main-
1698+
cluster: build01
15521699
context: ci/prow/e2e-aws-ovn-edge-zones
15531700
decorate: true
15541701
labels:
@@ -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)