From b108e8a771c49e95c189d0b0ee75ef81e4d3943c Mon Sep 17 00:00:00 2001 From: Chai Bot Date: Mon, 8 Jun 2026 18:34:34 +0000 Subject: [PATCH 1/2] Spike/platform-external: introduce e2e upgrade workflows Add monthly periodic upgrade jobs for platform external AWS (regular and CCM variants) to nightly 4.22 and 5.0 upgrade configs: - e2e-platform-external-aws-upgrade (4.21->4.22, 4.22->5.0) - e2e-platform-external-aws-ccm-upgrade (4.21->4.22, 4.22->5.0) Both jobs use the openshift-e2e-external-aws workflow with TEST_TYPE=upgrade-conformance, run monthly (0 0 1 * *), and report failures to #forum-ocp-splat-alerts-aws. --- ...nightly-4.22-upgrade-from-stable-4.21.yaml | 35 ++ ..._nightly-5.0-upgrade-from-stable-4.22.yaml | 35 ++ .../openshift-release-main-periodics.yaml | 368 ++++++++++++++++++ 3 files changed, 438 insertions(+) diff --git a/ci-operator/config/openshift/release/openshift-release-main__nightly-4.22-upgrade-from-stable-4.21.yaml b/ci-operator/config/openshift/release/openshift-release-main__nightly-4.22-upgrade-from-stable-4.21.yaml index 3a06911c9da2f..ed7c750543639 100644 --- a/ci-operator/config/openshift/release/openshift-release-main__nightly-4.22-upgrade-from-stable-4.21.yaml +++ b/ci-operator/config/openshift/release/openshift-release-main__nightly-4.22-upgrade-from-stable-4.21.yaml @@ -205,6 +205,41 @@ tests: UPGRADE_TO_CHANNEL_TYPE: candidate workflow: opct-conformance-external-aws timeout: 6h0m0s +- as: e2e-platform-external-aws-upgrade + cron: 0 0 1 * * + reporter_config: + channel: '#forum-ocp-splat-alerts-aws' + job_states_to_report: + - failure + - error + report_template: | + :red_jenkins_circle: :external-link::aws: Periodical job *{{.Spec.Job}}* ended with *{{.Status.State}}*. (<{{.Status.URL}}|View logs>) () + steps: + cluster_profile: openshift-org-aws + env: + TEST_TYPE: upgrade-conformance + observers: + enable: + - observers-resource-watch + workflow: openshift-e2e-external-aws +- as: e2e-platform-external-aws-ccm-upgrade + cron: 0 0 1 * * + reporter_config: + channel: '#forum-ocp-splat-alerts-aws' + job_states_to_report: + - failure + - error + report_template: | + :red_jenkins_circle: :external-link::aws: Periodical job *{{.Spec.Job}}* ended with *{{.Status.State}}*. (<{{.Status.URL}}|View logs>) () + steps: + cluster_profile: openshift-org-aws + env: + PLATFORM_EXTERNAL_CCM_ENABLED: "yes" + TEST_TYPE: upgrade-conformance + observers: + enable: + - observers-resource-watch + workflow: openshift-e2e-external-aws zz_generated_metadata: branch: main org: openshift diff --git a/ci-operator/config/openshift/release/openshift-release-main__nightly-5.0-upgrade-from-stable-4.22.yaml b/ci-operator/config/openshift/release/openshift-release-main__nightly-5.0-upgrade-from-stable-4.22.yaml index 9afbb472e0602..18840fc3ad145 100644 --- a/ci-operator/config/openshift/release/openshift-release-main__nightly-5.0-upgrade-from-stable-4.22.yaml +++ b/ci-operator/config/openshift/release/openshift-release-main__nightly-5.0-upgrade-from-stable-4.22.yaml @@ -225,6 +225,41 @@ tests: - ref: network-flow-matrix-tests - ref: single-node-e2e-test workflow: openshift-upgrade-aws-single-node +- as: e2e-platform-external-aws-upgrade + cron: 0 0 1 * * + reporter_config: + channel: '#forum-ocp-splat-alerts-aws' + job_states_to_report: + - failure + - error + report_template: | + :red_jenkins_circle: :external-link::aws: Periodical job *{{.Spec.Job}}* ended with *{{.Status.State}}*. (<{{.Status.URL}}|View logs>) () + steps: + cluster_profile: openshift-org-aws + env: + TEST_TYPE: upgrade-conformance + observers: + enable: + - observers-resource-watch + workflow: openshift-e2e-external-aws +- as: e2e-platform-external-aws-ccm-upgrade + cron: 0 0 1 * * + reporter_config: + channel: '#forum-ocp-splat-alerts-aws' + job_states_to_report: + - failure + - error + report_template: | + :red_jenkins_circle: :external-link::aws: Periodical job *{{.Spec.Job}}* ended with *{{.Status.State}}*. (<{{.Status.URL}}|View logs>) () + steps: + cluster_profile: openshift-org-aws + env: + PLATFORM_EXTERNAL_CCM_ENABLED: "yes" + TEST_TYPE: upgrade-conformance + observers: + enable: + - observers-resource-watch + workflow: openshift-e2e-external-aws zz_generated_metadata: branch: main org: openshift diff --git a/ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml b/ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml index 4c41989c233b9..63d77dc69d5cd 100644 --- a/ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml +++ b/ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml @@ -234137,6 +234137,190 @@ periodics: - name: result-aggregator secret: secretName: result-aggregator +- agent: kubernetes + cluster: build09 + cron: 0 0 1 * * + decorate: true + decoration_config: + skip_cloning: true + extra_refs: + - base_ref: main + org: openshift + repo: release + labels: + ci-operator.openshift.io/cloud: aws + ci-operator.openshift.io/cloud-cluster-profile: openshift-org-aws + ci-operator.openshift.io/variant: nightly-4.22-upgrade-from-stable-4.21 + ci.openshift.io/generator: prowgen + ci.openshift.io/no-builds: "true" + job-release: "4.22" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-openshift-release-main-nightly-4.22-upgrade-from-stable-4.21-e2e-platform-external-aws-ccm-upgrade + reporter_config: + slack: + channel: '#forum-ocp-splat-alerts-aws' + job_states_to_report: + - failure + - error + report_template: | + :red_jenkins_circle: :external-link::aws: Periodical job *{{.Spec.Job}}* ended with *{{.Status.State}}*. (<{{.Status.URL}}|View logs>) () + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --lease-server-credentials-file=/etc/boskos/credentials + - --report-credentials-file=/etc/report/credentials + - --secret-dir=/secrets/ci-pull-credentials + - --target=e2e-platform-external-aws-ccm-upgrade + - --variant=nightly-4.22-upgrade-from-stable-4.21 + command: + - ci-operator + env: + - name: HTTP_SERVER_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + ports: + - containerPort: 8080 + name: http + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /etc/boskos + name: boskos + readOnly: true + - mountPath: /secrets/ci-pull-credentials + name: ci-pull-credentials + readOnly: true + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: boskos + secret: + items: + - key: credentials + path: credentials + secretName: boskos-credentials + - name: ci-pull-credentials + secret: + secretName: ci-pull-credentials + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator +- agent: kubernetes + cluster: build09 + cron: 0 0 1 * * + decorate: true + decoration_config: + skip_cloning: true + extra_refs: + - base_ref: main + org: openshift + repo: release + labels: + ci-operator.openshift.io/cloud: aws + ci-operator.openshift.io/cloud-cluster-profile: openshift-org-aws + ci-operator.openshift.io/variant: nightly-4.22-upgrade-from-stable-4.21 + ci.openshift.io/generator: prowgen + ci.openshift.io/no-builds: "true" + job-release: "4.22" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-openshift-release-main-nightly-4.22-upgrade-from-stable-4.21-e2e-platform-external-aws-upgrade + reporter_config: + slack: + channel: '#forum-ocp-splat-alerts-aws' + job_states_to_report: + - failure + - error + report_template: | + :red_jenkins_circle: :external-link::aws: Periodical job *{{.Spec.Job}}* ended with *{{.Status.State}}*. (<{{.Status.URL}}|View logs>) () + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --lease-server-credentials-file=/etc/boskos/credentials + - --report-credentials-file=/etc/report/credentials + - --secret-dir=/secrets/ci-pull-credentials + - --target=e2e-platform-external-aws-upgrade + - --variant=nightly-4.22-upgrade-from-stable-4.21 + command: + - ci-operator + env: + - name: HTTP_SERVER_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + ports: + - containerPort: 8080 + name: http + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /etc/boskos + name: boskos + readOnly: true + - mountPath: /secrets/ci-pull-credentials + name: ci-pull-credentials + readOnly: true + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: boskos + secret: + items: + - key: credentials + path: credentials + secretName: boskos-credentials + - name: ci-pull-credentials + secret: + secretName: ci-pull-credentials + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator - agent: kubernetes cluster: vsphere02 cron: 42 2 * * 4 @@ -294555,6 +294739,190 @@ periodics: - name: result-aggregator secret: secretName: result-aggregator +- agent: kubernetes + cluster: build09 + cron: 0 0 1 * * + decorate: true + decoration_config: + skip_cloning: true + extra_refs: + - base_ref: main + org: openshift + repo: release + labels: + ci-operator.openshift.io/cloud: aws + ci-operator.openshift.io/cloud-cluster-profile: openshift-org-aws + ci-operator.openshift.io/variant: nightly-5.0-upgrade-from-stable-4.22 + ci.openshift.io/generator: prowgen + ci.openshift.io/no-builds: "true" + job-release: "5.0" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-openshift-release-main-nightly-5.0-upgrade-from-stable-4.22-e2e-platform-external-aws-ccm-upgrade + reporter_config: + slack: + channel: '#forum-ocp-splat-alerts-aws' + job_states_to_report: + - failure + - error + report_template: | + :red_jenkins_circle: :external-link::aws: Periodical job *{{.Spec.Job}}* ended with *{{.Status.State}}*. (<{{.Status.URL}}|View logs>) () + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --lease-server-credentials-file=/etc/boskos/credentials + - --report-credentials-file=/etc/report/credentials + - --secret-dir=/secrets/ci-pull-credentials + - --target=e2e-platform-external-aws-ccm-upgrade + - --variant=nightly-5.0-upgrade-from-stable-4.22 + command: + - ci-operator + env: + - name: HTTP_SERVER_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + ports: + - containerPort: 8080 + name: http + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /etc/boskos + name: boskos + readOnly: true + - mountPath: /secrets/ci-pull-credentials + name: ci-pull-credentials + readOnly: true + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: boskos + secret: + items: + - key: credentials + path: credentials + secretName: boskos-credentials + - name: ci-pull-credentials + secret: + secretName: ci-pull-credentials + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator +- agent: kubernetes + cluster: build09 + cron: 0 0 1 * * + decorate: true + decoration_config: + skip_cloning: true + extra_refs: + - base_ref: main + org: openshift + repo: release + labels: + ci-operator.openshift.io/cloud: aws + ci-operator.openshift.io/cloud-cluster-profile: openshift-org-aws + ci-operator.openshift.io/variant: nightly-5.0-upgrade-from-stable-4.22 + ci.openshift.io/generator: prowgen + ci.openshift.io/no-builds: "true" + job-release: "5.0" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-openshift-release-main-nightly-5.0-upgrade-from-stable-4.22-e2e-platform-external-aws-upgrade + reporter_config: + slack: + channel: '#forum-ocp-splat-alerts-aws' + job_states_to_report: + - failure + - error + report_template: | + :red_jenkins_circle: :external-link::aws: Periodical job *{{.Spec.Job}}* ended with *{{.Status.State}}*. (<{{.Status.URL}}|View logs>) () + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --lease-server-credentials-file=/etc/boskos/credentials + - --report-credentials-file=/etc/report/credentials + - --secret-dir=/secrets/ci-pull-credentials + - --target=e2e-platform-external-aws-upgrade + - --variant=nightly-5.0-upgrade-from-stable-4.22 + command: + - ci-operator + env: + - name: HTTP_SERVER_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + ports: + - containerPort: 8080 + name: http + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /etc/boskos + name: boskos + readOnly: true + - mountPath: /secrets/ci-pull-credentials + name: ci-pull-credentials + readOnly: true + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: boskos + secret: + items: + - key: credentials + path: credentials + secretName: boskos-credentials + - name: ci-pull-credentials + secret: + secretName: ci-pull-credentials + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator - agent: kubernetes cluster: vsphere02 cron: 49 2 * * 4 From 9f9eebdbd984287aa1c20ab3c365d8cca992e221 Mon Sep 17 00:00:00 2001 From: Chai Bot Date: Mon, 8 Jun 2026 22:16:25 +0000 Subject: [PATCH 2/2] chore: use @monthly cron syntax for platform-external upgrade jobs --- ...lease-main__nightly-4.22-upgrade-from-stable-4.21.yaml | 4 ++-- ...elease-main__nightly-5.0-upgrade-from-stable-4.22.yaml | 4 ++-- .../release/openshift-release-main-periodics.yaml | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ci-operator/config/openshift/release/openshift-release-main__nightly-4.22-upgrade-from-stable-4.21.yaml b/ci-operator/config/openshift/release/openshift-release-main__nightly-4.22-upgrade-from-stable-4.21.yaml index ed7c750543639..9d385e231954b 100644 --- a/ci-operator/config/openshift/release/openshift-release-main__nightly-4.22-upgrade-from-stable-4.21.yaml +++ b/ci-operator/config/openshift/release/openshift-release-main__nightly-4.22-upgrade-from-stable-4.21.yaml @@ -206,7 +206,7 @@ tests: workflow: opct-conformance-external-aws timeout: 6h0m0s - as: e2e-platform-external-aws-upgrade - cron: 0 0 1 * * + cron: '@monthly' reporter_config: channel: '#forum-ocp-splat-alerts-aws' job_states_to_report: @@ -223,7 +223,7 @@ tests: - observers-resource-watch workflow: openshift-e2e-external-aws - as: e2e-platform-external-aws-ccm-upgrade - cron: 0 0 1 * * + cron: '@monthly' reporter_config: channel: '#forum-ocp-splat-alerts-aws' job_states_to_report: diff --git a/ci-operator/config/openshift/release/openshift-release-main__nightly-5.0-upgrade-from-stable-4.22.yaml b/ci-operator/config/openshift/release/openshift-release-main__nightly-5.0-upgrade-from-stable-4.22.yaml index 18840fc3ad145..d95dc9ec1b123 100644 --- a/ci-operator/config/openshift/release/openshift-release-main__nightly-5.0-upgrade-from-stable-4.22.yaml +++ b/ci-operator/config/openshift/release/openshift-release-main__nightly-5.0-upgrade-from-stable-4.22.yaml @@ -226,7 +226,7 @@ tests: - ref: single-node-e2e-test workflow: openshift-upgrade-aws-single-node - as: e2e-platform-external-aws-upgrade - cron: 0 0 1 * * + cron: '@monthly' reporter_config: channel: '#forum-ocp-splat-alerts-aws' job_states_to_report: @@ -243,7 +243,7 @@ tests: - observers-resource-watch workflow: openshift-e2e-external-aws - as: e2e-platform-external-aws-ccm-upgrade - cron: 0 0 1 * * + cron: '@monthly' reporter_config: channel: '#forum-ocp-splat-alerts-aws' job_states_to_report: diff --git a/ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml b/ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml index 63d77dc69d5cd..f2a8efa17d2e3 100644 --- a/ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml +++ b/ci-operator/jobs/openshift/release/openshift-release-main-periodics.yaml @@ -234139,7 +234139,7 @@ periodics: secretName: result-aggregator - agent: kubernetes cluster: build09 - cron: 0 0 1 * * + cron: '@monthly' decorate: true decoration_config: skip_cloning: true @@ -234231,7 +234231,7 @@ periodics: secretName: result-aggregator - agent: kubernetes cluster: build09 - cron: 0 0 1 * * + cron: '@monthly' decorate: true decoration_config: skip_cloning: true @@ -294741,7 +294741,7 @@ periodics: secretName: result-aggregator - agent: kubernetes cluster: build09 - cron: 0 0 1 * * + cron: '@monthly' decorate: true decoration_config: skip_cloning: true @@ -294833,7 +294833,7 @@ periodics: secretName: result-aggregator - agent: kubernetes cluster: build09 - cron: 0 0 1 * * + cron: '@monthly' decorate: true decoration_config: skip_cloning: true