From 9864c48429d0767bff4bdc1a022af228536980b8 Mon Sep 17 00:00:00 2001 From: lwan Date: Wed, 19 Oct 2022 16:04:03 +0800 Subject: [PATCH] Add Arm64 ipi on Azure profiles for QE --- ...s-private-release-4.12__arm64-nightly.yaml | 30 ++++ ...-tests-private-release-4.12-periodics.yaml | 164 ++++++++++++++++++ .../ipi/conf/azure/ipi-conf-azure-commands.sh | 21 ++- .../ipi/conf/azure/ipi-conf-azure-ref.yaml | 4 + .../install/ipi-install-install-commands.sh | 4 +- 5 files changed, 217 insertions(+), 6 deletions(-) diff --git a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.12__arm64-nightly.yaml b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.12__arm64-nightly.yaml index cd10b9c0174e2..9bfe8759e7377 100644 --- a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.12__arm64-nightly.yaml +++ b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.12__arm64-nightly.yaml @@ -226,6 +226,36 @@ tests: test: - chain: openshift-e2e-test-qe workflow: cucushift-installer-rehearse-aws-ipi-proxy-cco-manual-security-token-service +- as: e2e-azure-ipi-ovn-p1 + cron: 0 15 */2 * * + steps: + cluster_profile: azure-arm64-qe + dependencies: + OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE: release:arm64-latest + env: + BASE_DOMAIN: qe.azure.devcluster.openshift.com + COMPUTE_NODE_TYPE: Standard_D4ps_v5 + E2E_RUN_TAGS: '@azure-ipi and @arm64 and @network-ovnkubernetes and not @fips' + OCP_ARCH: arm64 + TAG_VERSION: '@4.12' + test: + - chain: openshift-e2e-test-qe + workflow: cucushift-installer-rehearse-azure-ipi-ovn +- as: e2e-azure-ipi-sdn-p3 + cron: 0 16 */28 * * + steps: + cluster_profile: azure-arm64-qe + dependencies: + OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE: release:arm64-latest + env: + BASE_DOMAIN: qe.azure.devcluster.openshift.com + COMPUTE_NODE_TYPE: Standard_D4ps_v5 + E2E_RUN_TAGS: '@azure-ipi and @arm64 and @network-openshiftsdn and not @fips' + OCP_ARCH: arm64 + TAG_VERSION: '@4.12' + test: + - chain: openshift-e2e-test-qe + workflow: cucushift-installer-rehearse-azure-ipi-sdn zz_generated_metadata: branch: release-4.12 org: openshift diff --git a/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.12-periodics.yaml b/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.12-periodics.yaml index 3436508963ccc..c2cd5e5bf2538 100644 --- a/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.12-periodics.yaml +++ b/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.12-periodics.yaml @@ -13077,6 +13077,170 @@ periodics: - name: result-aggregator secret: secretName: result-aggregator +- agent: kubernetes + cluster: build05 + cron: 0 15 */2 * * + decorate: true + decoration_config: + skip_cloning: true + extra_refs: + - base_ref: release-4.12 + org: openshift + repo: openshift-tests-private + labels: + ci-operator.openshift.io/cloud: azure-arm64 + ci-operator.openshift.io/cloud-cluster-profile: azure-arm64-qe + ci-operator.openshift.io/variant: arm64-nightly + ci.openshift.io/generator: prowgen + job-release: "4.12" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-openshift-openshift-tests-private-release-4.12-arm64-nightly-e2e-azure-ipi-ovn-p1 + 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/e2e-azure-ipi-ovn-p1-cluster-profile + - --target=e2e-azure-ipi-ovn-p1 + - --variant=arm64-nightly + 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-azure-ipi-ovn-p1-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: /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-azure-arm64-qe + - name: github-credentials-openshift-ci-robot-private-git-cloner + secret: + secretName: github-credentials-openshift-ci-robot-private-git-cloner + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator +- agent: kubernetes + cluster: build05 + cron: 0 16 */28 * * + decorate: true + decoration_config: + skip_cloning: true + extra_refs: + - base_ref: release-4.12 + org: openshift + repo: openshift-tests-private + labels: + ci-operator.openshift.io/cloud: azure-arm64 + ci-operator.openshift.io/cloud-cluster-profile: azure-arm64-qe + ci-operator.openshift.io/variant: arm64-nightly + ci.openshift.io/generator: prowgen + job-release: "4.12" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-openshift-openshift-tests-private-release-4.12-arm64-nightly-e2e-azure-ipi-sdn-p3 + 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/e2e-azure-ipi-sdn-p3-cluster-profile + - --target=e2e-azure-ipi-sdn-p3 + - --variant=arm64-nightly + 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-azure-ipi-sdn-p3-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: /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-azure-arm64-qe + - name: github-credentials-openshift-ci-robot-private-git-cloner + secret: + secretName: github-credentials-openshift-ci-robot-private-git-cloner + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator - agent: kubernetes cluster: build05 cron: 0 3 */2 * * diff --git a/ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-commands.sh b/ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-commands.sh index 1b7001741d88b..d2f212569e50e 100755 --- a/ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-commands.sh +++ b/ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-commands.sh @@ -30,13 +30,24 @@ if [[ "${SIZE_VARIANT}" == "compact" ]]; then workers=0 fi master_type=null +master_type_prefix="" if [[ "${SIZE_VARIANT}" == "xlarge" ]]; then - master_type=Standard_D32s_v3 + master_type_prefix=Standard_D32 elif [[ "${SIZE_VARIANT}" == "large" ]]; then - master_type=Standard_D16s_v3 + master_type_prefix=Standard_D16 elif [[ "${SIZE_VARIANT}" == "compact" ]]; then - master_type=Standard_D8s_v3 + master_type_prefix=Standard_D8 fi +if [ -n "${master_type_prefix}" ]; then + if [ "${OCP_ARCH}" = "amd64" ]; then + master_type=${master_type_prefix}s_v3 + elif [ "${OCP_ARCH}" = "arm64" ]; then + master_type=${master_type_prefix}ps_v5 + fi +fi + +echo "Using control plane instance type: ${master_type}" +echo "Using compute instance type: ${COMPUTE_NODE_TYPE}" cat >> "${CONFIG}" << EOF baseDomain: ${BASE_DOMAIN} @@ -44,12 +55,14 @@ platform: azure: region: ${REGION} controlPlane: + architecture: ${OCP_ARCH} name: master platform: azure: type: ${master_type} compute: -- name: worker +- architecture: ${OCP_ARCH} + name: worker replicas: ${workers} platform: azure: diff --git a/ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-ref.yaml b/ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-ref.yaml index ae0b83ae2b954..acd965a647930 100644 --- a/ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-ref.yaml +++ b/ci-operator/step-registry/ipi/conf/azure/ipi-conf-azure-ref.yaml @@ -30,6 +30,10 @@ ref: default: 'Standard_D4s_v3' documentation: |- The instance type to use for compute nodes + - name: OCP_ARCH + default: "amd64" + documentation: |- + The architecture of the control plane nodes (e.g., amd64, arm64). - name: BASE_DOMAIN default: ci.azure.devcluster.openshift.com documentation: |- 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 4602149172190..557ca42a62af1 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 @@ -268,7 +268,7 @@ fi case "${CLUSTER_TYPE}" in aws|aws-arm64|aws-usgov) export AWS_SHARED_CREDENTIALS_FILE=${CLUSTER_PROFILE_DIR}/.awscred;; -azure4|azuremag) export AZURE_AUTH_LOCATION=${CLUSTER_PROFILE_DIR}/osServicePrincipal.json;; +azure4|azuremag|azure-arm64) export AZURE_AUTH_LOCATION=${CLUSTER_PROFILE_DIR}/osServicePrincipal.json;; azurestack) export AZURE_AUTH_LOCATION=${SHARED_DIR}/osServicePrincipal.json;; gcp) export GOOGLE_CLOUD_KEYFILE_JSON=${CLUSTER_PROFILE_DIR}/gce.json;; ibmcloud) @@ -302,7 +302,7 @@ wait "$!" # Platform specific manifests adjustments case "${CLUSTER_TYPE}" in -azure4) inject_boot_diagnostics ${dir} ;; +azure4|azure-arm64) inject_boot_diagnostics ${dir} ;; aws|aws-arm64|aws-usgov) if [[ "${SPOT_INSTANCES:-}" == 'true' ]]; then inject_spot_instance_config ${dir}