Skip to content

Commit e1423e3

Browse files
gcs278claude
andcommitted
NE-2215: add CI step and presubmits for testing HAProxy 2.8
Add CI scaffolding for testing the non-default HAProxy version (2.8) with the IngressControllerMultipleHAProxyVersions TechPreview feature gate: - ingress-conf-haproxy-version step: writes an IngressController manifest to SHARED_DIR with the specified haproxyVersion, run before ipi-install - e2e-aws-operator-haproxy28-techpreview: optional CIO e2e presubmit - e2e-aws-ovn-upgrade-haproxy28-techpreview: optional upgrade presubmit - e2e-aws-ovn-serial-haproxy28-techpreview: optional serial presubmit (2 shards) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 1e72272 commit e1423e3

5 files changed

Lines changed: 123 additions & 0 deletions

File tree

ci-operator/config/openshift/cluster-ingress-operator/openshift-cluster-ingress-operator-master.yaml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,39 @@ tests:
153153
steps:
154154
cluster_profile: openshift-org-aws
155155
workflow: openshift-upgrade-aws
156+
- always_run: false
157+
as: e2e-aws-ovn-upgrade-haproxy28-techpreview
158+
optional: true
159+
steps:
160+
cluster_profile: openshift-org-aws
161+
env:
162+
FEATURE_SET: TechPreviewNoUpgrade
163+
HAPROXY_VERSION: "2.8"
164+
pre:
165+
- chain: ipi-conf-aws
166+
- ref: ingress-conf-haproxy-version
167+
- chain: ipi-install
168+
workflow: openshift-upgrade-aws
156169
- as: e2e-aws-ovn-serial
157170
shard_count: 2
158171
skip_if_only_changed: ^docs/|\.md$|^(?:.*/)?(?:\.gitignore|OWNERS|OWNERS_ALIASES|PROJECT|LICENSE)$
159172
steps:
160173
cluster_profile: openshift-org-aws
161174
workflow: openshift-e2e-aws-serial
175+
- always_run: false
176+
as: e2e-aws-ovn-serial-haproxy28-techpreview
177+
optional: true
178+
shard_count: 2
179+
steps:
180+
cluster_profile: openshift-org-aws
181+
env:
182+
FEATURE_SET: TechPreviewNoUpgrade
183+
HAPROXY_VERSION: "2.8"
184+
pre:
185+
- chain: ipi-conf-aws
186+
- ref: ingress-conf-haproxy-version
187+
- chain: ipi-install
188+
workflow: openshift-e2e-aws-serial
162189
- always_run: false
163190
as: e2e-aws-ovn-single-node
164191
optional: true
@@ -308,6 +335,27 @@ tests:
308335
requests:
309336
cpu: 100m
310337
workflow: ipi-aws
338+
- always_run: false
339+
as: e2e-aws-operator-haproxy28-techpreview
340+
optional: true
341+
steps:
342+
cluster_profile: openshift-org-aws
343+
env:
344+
FEATURE_SET: TechPreviewNoUpgrade
345+
HAPROXY_VERSION: "2.8"
346+
pre:
347+
- chain: ipi-conf-aws
348+
- ref: ingress-conf-haproxy-version
349+
- chain: ipi-install
350+
test:
351+
- as: test
352+
cli: latest
353+
commands: make test-e2e
354+
from: src
355+
resources:
356+
requests:
357+
cpu: 100m
358+
workflow: ipi-aws
311359
- always_run: false
312360
as: e2e-openstack-operator
313361
optional: true
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
approvers:
2+
- gcs278
3+
- jcmoraisjr
4+
- Miciah
5+
- candita
6+
reviewers:
7+
- gcs278
8+
- jcmoraisjr
9+
- Miciah
10+
- candita
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
3+
set -o errexit
4+
set -o nounset
5+
set -o pipefail
6+
7+
echo "Info: ingress-conf-haproxy-version running"
8+
echo " HAPROXY_VERSION='${HAPROXY_VERSION:-<unset>}'"
9+
10+
if [[ ! -d "${SHARED_DIR}" ]]; then
11+
echo "Error: SHARED_DIR not set or doesn't exist"
12+
exit 1
13+
fi
14+
15+
if [[ -z "${HAPROXY_VERSION}" ]]; then
16+
echo "Error: HAPROXY_VERSION must be set"
17+
exit 1
18+
fi
19+
20+
echo "Configuring default IngressController with HAProxy version: ${HAPROXY_VERSION}"
21+
22+
cat > "${SHARED_DIR}/manifest_default-ingresscontroller.yaml" <<EOF
23+
apiVersion: operator.openshift.io/v1
24+
kind: IngressController
25+
metadata:
26+
name: default
27+
namespace: openshift-ingress-operator
28+
spec:
29+
haproxyVersion: "${HAPROXY_VERSION}"
30+
EOF
31+
32+
echo "Wrote IngressController manifest to ${SHARED_DIR}/manifest_default-ingresscontroller.yaml"
33+
cat "${SHARED_DIR}/manifest_default-ingresscontroller.yaml"
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"path": "ingress/conf/haproxy-version/ingress-conf-haproxy-version-ref.yaml",
3+
"owners": {
4+
"approvers": [
5+
"gcs278",
6+
"jcmoraisjr",
7+
"Miciah",
8+
"candita"
9+
]
10+
}
11+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
ref:
2+
as: ingress-conf-haproxy-version
3+
from: installer
4+
commands: ingress-conf-haproxy-version-commands.sh
5+
resources:
6+
requests:
7+
cpu: 10m
8+
memory: 100Mi
9+
env:
10+
- name: HAPROXY_VERSION
11+
default: ""
12+
documentation: |-
13+
The HAProxy version to configure on the default IngressController at
14+
install time (e.g. "2.8"). This value is written into the
15+
spec.haproxyVersion field of the IngressController manifest.
16+
documentation: |-
17+
Configures the default IngressController to use a specific HAProxy version
18+
at install time by writing an IngressController manifest to SHARED_DIR.
19+
The cluster must have the IngressControllerMultipleHAProxyVersions feature
20+
gate enabled (TechPreviewNoUpgrade). This step should run before
21+
ipi-install-install in the workflow.

0 commit comments

Comments
 (0)