diff --git a/Makefile b/Makefile index 525a5d5d802d9..5eb908154f978 100644 --- a/Makefile +++ b/Makefile @@ -39,6 +39,7 @@ update: $(MAKE) jobs $(MAKE) ci-operator-config $(MAKE) prow-config + $(MAKE) registry-metadata release-controllers: ./hack/generators/release-controllers/generate-release-controllers.py . diff --git a/ci-operator/config/openshift/release/openshift-release-master__ocp-4.5-ci.yaml b/ci-operator/config/openshift/release/openshift-release-master__ocp-4.5-ci.yaml new file mode 100644 index 0000000000000..c374927eee857 --- /dev/null +++ b/ci-operator/config/openshift/release/openshift-release-master__ocp-4.5-ci.yaml @@ -0,0 +1,26 @@ +releases: + initial: + release: + channel: stable + version: "4.4" + latest: + candidate: + product: ocp + stream: ci + version: "4.5" +resources: + '*': + requests: + cpu: 100m + memory: 200Mi +tests: +- as: e2e-44-stable-to-45-ci + cron: 0 */6 * * * + steps: + cluster_profile: aws + workflow: openshift-upgrade-aws +zz_generated_metadata: + branch: master + org: openshift + repo: release + variant: ocp-4.5-ci diff --git a/ci-operator/jobs/openshift/release/openshift-release-master-periodics.yaml b/ci-operator/jobs/openshift/release/openshift-release-master-periodics.yaml index cf0d3e9f91973..3da47bf63ebc2 100644 --- a/ci-operator/jobs/openshift/release/openshift-release-master-periodics.yaml +++ b/ci-operator/jobs/openshift/release/openshift-release-master-periodics.yaml @@ -293,6 +293,78 @@ periodics: - name: result-aggregator secret: secretName: result-aggregator +- agent: kubernetes + cluster: api.ci + cron: 0 */6 * * * + decorate: true + decoration_config: + skip_cloning: true + extra_refs: + - base_ref: master + org: openshift + repo: release + labels: + ci-operator.openshift.io/prowgen-controlled: "true" + ci-operator.openshift.io/variant: ocp-4.5-ci + job-release: "4.5" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-openshift-release-master-ocp-4.5-ci-e2e-44-stable-to-45-ci + spec: + containers: + - args: + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --lease-server-password-file=/etc/boskos/password + - --report-password-file=/etc/report/password.txt + - --report-username=ci + - --secret-dir=/secrets/ci-pull-credentials + - --secret-dir=/usr/local/e2e-44-stable-to-45-ci-cluster-profile + - --target=e2e-44-stable-to-45-ci + - --variant=ocp-4.5-ci + command: + - ci-operator + image: ci-operator:latest + imagePullPolicy: Always + name: "" + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /etc/boskos + name: boskos + readOnly: true + - mountPath: /secrets/ci-pull-credentials + name: ci-pull-credentials + readOnly: true + - mountPath: /usr/local/e2e-44-stable-to-45-ci-cluster-profile + name: cluster-profile + - 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: password + path: password + secretName: boskos-credentials + - name: ci-pull-credentials + secret: + secretName: ci-pull-credentials + - name: cluster-profile + projected: + sources: + - secret: + name: cluster-secrets-aws + - name: pull-secret + secret: + secretName: regcred + - name: result-aggregator + secret: + secretName: result-aggregator - agent: kubernetes cluster: api.ci cron: 0 0 */2 * * diff --git a/ci-operator/step-registry/ipi/conf/aws/ipi-conf-aws-ref.yaml b/ci-operator/step-registry/ipi/conf/aws/ipi-conf-aws-ref.yaml index cdf1d2e3f183c..af9c8e4d4866c 100644 --- a/ci-operator/step-registry/ipi/conf/aws/ipi-conf-aws-ref.yaml +++ b/ci-operator/step-registry/ipi/conf/aws/ipi-conf-aws-ref.yaml @@ -1,6 +1,6 @@ ref: as: ipi-conf-aws - from: base + from: tools commands: ipi-conf-aws-commands.sh resources: requests: diff --git a/ci-operator/step-registry/ipi/conf/ipi-conf-ref.yaml b/ci-operator/step-registry/ipi/conf/ipi-conf-ref.yaml index 5379dac28d44f..8de876baffa9e 100644 --- a/ci-operator/step-registry/ipi/conf/ipi-conf-ref.yaml +++ b/ci-operator/step-registry/ipi/conf/ipi-conf-ref.yaml @@ -1,6 +1,6 @@ ref: as: ipi-conf - from: base + from: tools commands: ipi-conf-commands.sh resources: requests: diff --git a/ci-operator/step-registry/ipi/install/install/ipi-install-install-commands.sh b/ci-operator/step-registry/ipi/install/install/ipi-install-install-commands.sh index 7ec20a7fc0b54..6e182e922cb49 100755 --- a/ci-operator/step-registry/ipi/install/install/ipi-install-install-commands.sh +++ b/ci-operator/step-registry/ipi/install/install/ipi-install-install-commands.sh @@ -6,14 +6,14 @@ set -o pipefail trap 'CHILDREN=$(jobs -p); if test -n "${CHILDREN}"; then kill ${CHILDREN} && wait; fi' TERM -if [[ -z "$RELEASE_IMAGE_LATEST" ]]; then - echo "RELEASE_IMAGE_LATEST is an empty string, exiting" +if [[ -z "$OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE" ]]; then + echo "OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE is an empty string, exiting" exit 1 fi +echo "Installing from release ${OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE}" export SSH_PRIV_KEY_PATH=${CLUSTER_PROFILE_DIR}/ssh-privatekey export PULL_SECRET_PATH=${CLUSTER_PROFILE_DIR}/pull-secret -export OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE=${RELEASE_IMAGE_LATEST} export OPENSHIFT_INSTALL_INVOKER=openshift-internal-ci/${JOB_NAME}/${BUILD_ID} export HOME=/tmp diff --git a/ci-operator/step-registry/ipi/install/install/ipi-install-install-ref.yaml b/ci-operator/step-registry/ipi/install/install/ipi-install-install-ref.yaml index 67eebe50f90d2..2df217c667d40 100644 --- a/ci-operator/step-registry/ipi/install/install/ipi-install-install-ref.yaml +++ b/ci-operator/step-registry/ipi/install/install/ipi-install-install-ref.yaml @@ -6,5 +6,10 @@ ref: requests: cpu: 1000m memory: 2Gi + dependencies: + - name: "release:latest" + env: OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE + - name: "release:latest" + env: RELEASE_IMAGE_LATEST documentation: |- The IPI install step runs the OpenShift Installer in order to bring up an OpenShift cluster, using the provided cluster profile to choose a target IaaS platform. Anything that needs to be configured using manifests should generate them before this step and put them in the SHARED_DIR with the filename manifest_(manifest_name).yml so that this step can pull in the manifest in. diff --git a/ci-operator/step-registry/metadata.json b/ci-operator/step-registry/metadata.json index 79e0f64785f2e..42ecc23706557 100644 --- a/ci-operator/step-registry/metadata.json +++ b/ci-operator/step-registry/metadata.json @@ -1531,6 +1531,23 @@ ] } }, + "openshift-upgrade-aws-workflow.yaml": { + "path": "openshift/upgrade/aws/openshift-upgrade-aws-workflow.yaml", + "owners": { + "approvers": [ + "smarterclayton", + "wking", + "stevekuznetsov", + "vrutkovs", + "abhinavdahiya", + "deads2k", + "crawford", + "ewolinetz", + "csrwng", + "staebler" + ] + } + }, "operatorhub-subscribe-ref.yaml": { "path": "operatorhub/subscribe/operatorhub-subscribe-ref.yaml", "owners": { diff --git a/ci-operator/step-registry/openshift/upgrade/OWNERS b/ci-operator/step-registry/openshift/upgrade/OWNERS new file mode 120000 index 0000000000000..2388f3a8fecc1 --- /dev/null +++ b/ci-operator/step-registry/openshift/upgrade/OWNERS @@ -0,0 +1 @@ +./../OWNERS \ No newline at end of file diff --git a/ci-operator/step-registry/openshift/upgrade/aws/OWNERS b/ci-operator/step-registry/openshift/upgrade/aws/OWNERS new file mode 120000 index 0000000000000..0fa7ad0bc6c58 --- /dev/null +++ b/ci-operator/step-registry/openshift/upgrade/aws/OWNERS @@ -0,0 +1 @@ +./../../OWNERS \ No newline at end of file diff --git a/ci-operator/step-registry/openshift/upgrade/aws/openshift-upgrade-aws-workflow.yaml b/ci-operator/step-registry/openshift/upgrade/aws/openshift-upgrade-aws-workflow.yaml new file mode 100644 index 0000000000000..59f53ee8ca2a0 --- /dev/null +++ b/ci-operator/step-registry/openshift/upgrade/aws/openshift-upgrade-aws-workflow.yaml @@ -0,0 +1,16 @@ +workflow: + as: openshift-upgrade-aws + steps: + pre: + - chain: ipi-aws-pre + test: + - ref: openshift-e2e-test + post: + - chain: ipi-aws-post + dependencies: + OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE: "release:initial" + env: + TEST_COMMAND: "run-upgrade" + TEST_SUITE: "all" + documentation: |- + The Openshift E2E AWS workflow executes the upgrade end-to-end test suite on AWS with a default cluster configuration, exercising an upgrade during the process.