From 4f5fd1589dc7f2ddfc17e77165a283c4d9d9284a Mon Sep 17 00:00:00 2001 From: Carlos Eduardo Arango Gutierrez Date: Mon, 5 Aug 2024 20:29:46 +0200 Subject: [PATCH] [no-relnote] Run a parallel staging e2e test We are in the process of testing a hosted GHA Runner Signed-off-by: Carlos Eduardo Arango Gutierrez --- .github/workflows/e2e.yaml | 2 +- .github/workflows/staging_e2e.yaml | 58 +++++++++++++++++++++ tests/e2e/{holodeck.yaml => infra/aws.yaml} | 0 tests/e2e/infra/vsphere.yml | 30 +++++++++++ 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/staging_e2e.yaml rename tests/e2e/{holodeck.yaml => infra/aws.yaml} (100%) create mode 100644 tests/e2e/infra/vsphere.yml diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 1da666c08..8ff3d2718 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -40,7 +40,7 @@ jobs: aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws_ssh_key: ${{ secrets.AWS_SSH_KEY }} - holodeck_config: "tests/e2e/holodeck.yaml" + holodeck_config: "tests/e2e/infra/aws.yaml" - name: Run e2e tests env: KUBECONFIG: ${{ github.workspace }}/kubeconfig diff --git a/.github/workflows/staging_e2e.yaml b/.github/workflows/staging_e2e.yaml new file mode 100644 index 000000000..9bd7641d3 --- /dev/null +++ b/.github/workflows/staging_e2e.yaml @@ -0,0 +1,58 @@ +# Copyright 2024 NVIDIA CORPORATION +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: [Staging] End-to-end Tests + +on: + workflow_run: + workflows: [Image] + types: + - completed + branches: + - main + - release-* + +jobs: + staging-e2e: + runs-on: pdx01-arc-runners + if: ${{ github.event.workflow_run.conclusion == 'success' }} && ${{ github.event.workflow_run.event == 'push' }} + steps: + - uses: actions/checkout@v4 + name: Check out code + - name: Calculate build vars + id: vars + run: | + echo "COMMIT_SHORT_SHA=${GITHUB_SHA:0:8}" >> $GITHUB_ENV + echo "HOLODECK_VCENTER_USERNAME=${HOLODECK_VCENTER_USERNAME}" >> $GITHUB_ENV + echo "HOLODECK_VCENTER_PASSWORD=${HOLODECK_VCENTER_PASSWORD}" >> $GITHUB_ENV + echo "VSPHERE_SSH_KEY=${VSPHERE_SSH_KEY}" >> $GITHUB_ENV + - name: Set up Holodeck + uses: NVIDIA/holodeck@v0.2.1 + with: + holodeck_config: "tests/e2e/infra/vsphere.yaml" + - name: Run e2e tests + env: + KUBECONFIG: ${{ github.workspace }}/kubeconfig + E2E_IMAGE_REPO: ghcr.io/nvidia/k8s-device-plugin + E2E_IMAGE_TAG: ${COMMIT_SHORT_SHA}-ubuntu22.04 + LOG_ARTIFACTS: ${{ github.workspace }}/e2e_logs + run: | + make test-e2e + - name: Archive test logs + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: e2e-test-logs + path: ./e2e_logs/ + retention-days: 15 diff --git a/tests/e2e/holodeck.yaml b/tests/e2e/infra/aws.yaml similarity index 100% rename from tests/e2e/holodeck.yaml rename to tests/e2e/infra/aws.yaml diff --git a/tests/e2e/infra/vsphere.yml b/tests/e2e/infra/vsphere.yml new file mode 100644 index 000000000..7f364523d --- /dev/null +++ b/tests/e2e/infra/vsphere.yml @@ -0,0 +1,30 @@ +apiVersion: holodeck.nvidia.com/v1alpha1 +kind: Environment +metadata: + name: holodeck-vsphere-e2e-test + description: "end-to-end test infrastructure" +spec: + provider: vsphere + auth: + keyName: cnt-ci + privateKey: /home/nvidia/.ssh/gpu_runner + VsphereVirtualMachine: + vCenterURL: "pdx01egxvc01.nvidia.com" + datacenter: "PDX01" + datastore: "PDX01EGX_vSAN_001" + cluster: "PDX01EGX001" + network: "PDX01EGXDVS001_Internal_307_10.185.111.0_24" + vmFolder: "GitHub ARC" + resoursePool: "CNT-ARC" + templateImage: "GPU_UBUNTU_TEMPLATE" + containerRuntime: + install: true + name: containerd + nvidiaContainerToolkit: + install: true + nvidiaDriver: + install: true + kubernetes: + install: true + installer: kubeadm + version: v1.28.5