diff --git a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.16__multi-stable-4.16-upgrade-from-stable-4.16.yaml b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.16__multi-stable-4.16-upgrade-from-stable-4.16.yaml index 97e02e41e93fe..618f3e2403a91 100644 --- a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.16__multi-stable-4.16-upgrade-from-stable-4.16.yaml +++ b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.16__multi-stable-4.16-upgrade-from-stable-4.16.yaml @@ -41,6 +41,11 @@ build_root: namespace: openshift tag: golang-1.18 releases: + amd64-latest: + release: + architecture: amd64 + channel: candidate + version: "4.16" latest: prerelease: architecture: multi @@ -62,6 +67,18 @@ resources: cpu: 100m memory: 200Mi tests: +- as: aws-ipi-ovn-hypershift-multi-f7 + cron: 44 22 7,14,23,30 * * + steps: + cluster_profile: aws-qe + env: + BASE_DOMAIN: qe.devcluster.openshift.com + HYPERSHIFT_HC_RELEASE_IMAGE: release:amd64-latest + HYPERSHIFT_TARGET_MULTIARCH: "true" + TEST_FILTERS: ~DisconnectedOnly&;~HyperShiftMGMT&;~MicroShiftOnly&;~NonHyperShiftHOST& + test: + - chain: openshift-upgrade-qe-test-hypershift-to-multi + workflow: cucushift-installer-rehearse-aws-ipi-ovn-hypershift - as: aws-ipi-ovn-ipsec-arm-mixarch-f28 cron: 2 4 22 * * steps: diff --git a/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.16-periodics.yaml b/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.16-periodics.yaml index fb6f7b9c311ad..4c79ca3f6b350 100644 --- a/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.16-periodics.yaml +++ b/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.16-periodics.yaml @@ -70173,6 +70173,93 @@ periodics: - name: result-aggregator secret: secretName: result-aggregator +- agent: kubernetes + cluster: build05 + cron: 44 22 7,14,23,30 * * + decorate: true + decoration_config: + skip_cloning: true + extra_refs: + - base_ref: release-4.16 + org: openshift + repo: openshift-tests-private + labels: + ci-operator.openshift.io/cloud: aws + ci-operator.openshift.io/cloud-cluster-profile: aws-qe + ci-operator.openshift.io/variant: multi-stable-4.16-upgrade-from-stable-4.16 + ci.openshift.io/generator: prowgen + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-openshift-openshift-tests-private-release-4.16-multi-stable-4.16-upgrade-from-stable-4.16-aws-ipi-ovn-hypershift-multi-f7 + 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 + - --oauth-token-path=/usr/local/github-credentials/oauth + - --report-credentials-file=/etc/report/credentials + - --secret-dir=/secrets/ci-pull-credentials + - --secret-dir=/usr/local/aws-ipi-ovn-hypershift-multi-f7-cluster-profile + - --target=aws-ipi-ovn-hypershift-multi-f7 + - --variant=multi-stable-4.16-upgrade-from-stable-4.16 + 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/aws-ipi-ovn-hypershift-multi-f7-cluster-profile + name: cluster-profile + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /usr/local/github-credentials + name: github-credentials-openshift-ci-robot-private-git-cloner + 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: cluster-profile + secret: + secretName: cluster-secrets-aws-qe + - name: github-credentials-openshift-ci-robot-private-git-cloner + secret: + secretName: github-credentials-openshift-ci-robot-private-git-cloner + - 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: build05 cron: 2 4 22 * * diff --git a/ci-operator/step-registry/cucushift/upgrade/hypershift/control-plane/toimage/cucushift-upgrade-hypershift-control-plane-toimage-commands.sh b/ci-operator/step-registry/cucushift/upgrade/hypershift/control-plane/toimage/cucushift-upgrade-hypershift-control-plane-toimage-commands.sh index 12910477cfad5..9cb39afd4fa35 100644 --- a/ci-operator/step-registry/cucushift/upgrade/hypershift/control-plane/toimage/cucushift-upgrade-hypershift-control-plane-toimage-commands.sh +++ b/ci-operator/step-registry/cucushift/upgrade/hypershift/control-plane/toimage/cucushift-upgrade-hypershift-control-plane-toimage-commands.sh @@ -106,6 +106,14 @@ oc annotate hostedcluster -n "$HYPERSHIFT_NAMESPACE" "$cluster_name" "hypershift set +x oc patch hostedcluster "$cluster_name" -n "$HYPERSHIFT_NAMESPACE" --type=merge -p '{"spec":{"release":{"image":"'"${OPENSHIFT_UPGRADE_RELEASE_IMAGE_OVERRIDE}"'"}}}' +if [ -n "${HYPERSHIFT_TARGET_MULTIARCH}" ]; then + echo "target hc multiarch is ${HYPERSHIFT_TARGET_MULTIARCH}" + platform=$(oc get hostedcluster "$cluster_name" -n "$HYPERSHIFT_NAMESPACE" --ignore-not-found -o=jsonpath='{.spec.platform.type}') + if [ "${platform}" == "AWS" ] ; then + oc patch hostedcluster "$cluster_name" -n "$HYPERSHIFT_NAMESPACE" --type=merge -p '{"spec":{"platform":{"aws":{"multiArch": "'"${HYPERSHIFT_TARGET_MULTIARCH}"'"}}}}' + fi +fi + _upgradeReady=1 for ((i=1; i<=120; i++)); do count=$(oc get hostedcluster -n "$HYPERSHIFT_NAMESPACE" "$cluster_name" -ojsonpath='{.status.version.history[?(@.image=="'"${OPENSHIFT_UPGRADE_RELEASE_IMAGE_OVERRIDE}"'")].state}' | grep -c Completed || true) diff --git a/ci-operator/step-registry/cucushift/upgrade/hypershift/control-plane/toimage/cucushift-upgrade-hypershift-control-plane-toimage-ref.yaml b/ci-operator/step-registry/cucushift/upgrade/hypershift/control-plane/toimage/cucushift-upgrade-hypershift-control-plane-toimage-ref.yaml index 0e519bc36a0d2..44f40bc65c665 100644 --- a/ci-operator/step-registry/cucushift/upgrade/hypershift/control-plane/toimage/cucushift-upgrade-hypershift-control-plane-toimage-ref.yaml +++ b/ci-operator/step-registry/cucushift/upgrade/hypershift/control-plane/toimage/cucushift-upgrade-hypershift-control-plane-toimage-ref.yaml @@ -14,6 +14,9 @@ ref: - name: HYPERSHIFT_NAMESPACE default: "clusters" documentation: "The Namespace where to create the HostedCluster and NodePools" + - name: HYPERSHIFT_TARGET_MULTIARCH + default: "" + documentation: "hypershift hostedcluster upgrade target architecture, true or false" dependencies: - name: "release:target" env: "OPENSHIFT_UPGRADE_RELEASE_IMAGE_OVERRIDE" diff --git a/ci-operator/step-registry/openshift/upgrade/qe/test/hypershift/to-multi/OWNERS b/ci-operator/step-registry/openshift/upgrade/qe/test/hypershift/to-multi/OWNERS new file mode 100644 index 0000000000000..d85a24f31f5e9 --- /dev/null +++ b/ci-operator/step-registry/openshift/upgrade/qe/test/hypershift/to-multi/OWNERS @@ -0,0 +1,9 @@ +approvers: +- jhou1 +- liangxia +- jianzhangbjz +- kuiwang02 +- jiajliu +- shellyyang1989 +- aleskandro +- LiangquanLi930 diff --git a/ci-operator/step-registry/openshift/upgrade/qe/test/hypershift/to-multi/openshift-upgrade-qe-test-hypershift-to-multi-chain.metadata.json b/ci-operator/step-registry/openshift/upgrade/qe/test/hypershift/to-multi/openshift-upgrade-qe-test-hypershift-to-multi-chain.metadata.json new file mode 100644 index 0000000000000..60e094e22e520 --- /dev/null +++ b/ci-operator/step-registry/openshift/upgrade/qe/test/hypershift/to-multi/openshift-upgrade-qe-test-hypershift-to-multi-chain.metadata.json @@ -0,0 +1,15 @@ +{ + "path": "openshift/upgrade/qe/test/hypershift/to-multi/openshift-upgrade-qe-test-hypershift-to-multi-chain.yaml", + "owners": { + "approvers": [ + "jhou1", + "liangxia", + "jianzhangbjz", + "kuiwang02", + "jiajliu", + "shellyyang1989", + "aleskandro", + "LiangquanLi930" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/openshift/upgrade/qe/test/hypershift/to-multi/openshift-upgrade-qe-test-hypershift-to-multi-chain.yaml b/ci-operator/step-registry/openshift/upgrade/qe/test/hypershift/to-multi/openshift-upgrade-qe-test-hypershift-to-multi-chain.yaml new file mode 100644 index 0000000000000..ef77844488921 --- /dev/null +++ b/ci-operator/step-registry/openshift/upgrade/qe/test/hypershift/to-multi/openshift-upgrade-qe-test-hypershift-to-multi-chain.yaml @@ -0,0 +1,16 @@ +chain: + as: openshift-upgrade-qe-test-hypershift-to-multi + steps: + - ref: cucushift-pre + - ref: openshift-extended-upgrade-pre + - ref: cucushift-upgrade-prepare + - ref: cucushift-upgrade-hypershift-control-plane-toimage + - ref: hypershift-aws-create-nodepool + - ref: openshift-extended-upgrade-post + - ref: cucushift-upgrade-check + - ref: openshift-upgrade-qe-test-report + documentation: |- + The chain executes upgrade-prepare, which creates test data on the cluster; + then upgrade the HyperShift HostedCluster(CP) to multi-arch release; + then create an arm64 nodepool; + then execute upgrade-check, which checks the prepared test data.