e2e: server daily version 20241023 #4171
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: e2e tests | |
on: | |
push: | |
branches: [main, k8s-sync-*] | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
operator_image: | |
description: 'Name of an existing operator image. Leave blank to build one with the default name' | |
type: string | |
required: false | |
full_vertica_image: | |
description: 'Name of an existing full vertica v2 image. Leave blank to build one with the default name' | |
type: string | |
required: false | |
minimal_vertica_image: | |
description: 'Name of an existing minimal vertica v2 image. Leave blank to build one with the default name' | |
type: string | |
required: false | |
legacy_vertica_image: | |
description: 'Name of an existing full image with admintools and SSH support. Leave blank to build one with the default name' | |
type: string | |
required: false | |
vlogger_image: | |
description: 'Name of an existing vlogger image. Leave blank to build oe with the default name' | |
type: string | |
required: false | |
e2e_test_suites: | |
description: 'E2E test suites to run' | |
required: false | |
type: choice | |
default: all | |
options: | |
- all | |
- none | |
- admintools leg 1 | |
- admintools leg 2 | |
- admintools leg 3 | |
- admintools leg 4 | |
- admintools leg 5 | |
- admintools server upgrade | |
- admintools operator upgrade | |
- admintools udx | |
- vcluster leg 1 | |
- vcluster leg 2 | |
- vcluster leg 3 | |
- vcluster leg 4 | |
- vcluster leg 5 | |
- vcluster leg 6 | |
- vcluster leg 7 | |
- leg 8 | |
- vcluster leg 9 | |
- vcluster server upgrade | |
- vcluster udx | |
run_security_scan: | |
description: 'What images to scan?' | |
type: choice | |
default: 'all, except vertica server' | |
options: | |
- all | |
- none | |
- all, except vertica server | |
build_release_assets: | |
description: 'Build the release assets?' | |
type: choice | |
options: | |
- all | |
- none | |
default: all | |
required: false | |
reason: | |
description: 'Descriptive name of the workflow run' | |
required: false | |
default: '' | |
run-name: ${{ inputs.reason }} | |
jobs: | |
build: | |
uses: ./.github/workflows/build-images.yml | |
with: | |
vlogger_image: ${{ inputs.vlogger_image }} | |
operator_image: ${{ inputs.operator_image }} | |
minimal_vertica_image: ${{ inputs.minimal_vertica_image }} | |
full_vertica_image: ${{ inputs.full_vertica_image }} | |
legacy_vertica_image: ${{ inputs.legacy_vertica_image }} | |
run_security_scan: ${{ inputs.run_security_scan }} | |
secrets: | |
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} | |
unittests: | |
uses: ./.github/workflows/unittests.yml | |
secrets: | |
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} | |
scorecardtests: | |
uses: ./.github/workflows/scorecardtests.yml | |
build-release-assets: | |
uses: ./.github/workflows/build-release-assets.yml | |
if: ${{ inputs.build_release_assets == 'all' || inputs.build_release_assests == '' }} | |
e2e-leg-1-admintools: | |
if: ${{ ! contains(github.ref, 'k8s-sync') && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'admintools leg 1' || inputs.e2e_test_suites == '') }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-1' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.legacy-vertica-image }} | |
vertica-deployment-method: admintools | |
communal-storage-type: azb | |
deploy-with: olm | |
need-legacy-image: true | |
e2e-leg-1-admintools-previous-release: | |
if: ${{ ! contains(github.ref, 'k8s-sync') && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'admintools leg 1' || inputs.e2e_test_suites == '') }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-1' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: "opentext/vertica-k8s:23.4.0-0-minimal" | |
artifact-suffix: "-23.4.0-release" | |
vertica-deployment-method: admintools | |
communal-storage-type: azb | |
deploy-with: olm | |
e2e-leg-1-vcluster: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster leg 1' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-1' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.full-vertica-image }} | |
vertica-deployment-method: vclusterops | |
communal-storage-type: azb | |
deploy-with: olm | |
e2e-leg-2-admintools: | |
if: ${{ ! contains(github.ref, 'k8s-sync') && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'admintools leg 2' || inputs.e2e_test_suites == '') }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-2' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.legacy-vertica-image }} | |
vertica-deployment-method: admintools | |
communal-storage-type: hostpath | |
controllers-scope: namespace | |
need-legacy-image: true | |
e2e-leg-2-admintools-previous-release: | |
if: ${{ ! contains(github.ref, 'k8s-sync') && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'admintools leg 2' || inputs.e2e_test_suites == '') }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-2' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: "opentext/vertica-k8s:12.0.4-0-minimal" | |
artifact-suffix: "-12.0.4-release" | |
vertica-deployment-method: admintools | |
communal-storage-type: hostpath | |
controllers-scope: namespace | |
e2e-leg-2-vcluster: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster leg 2' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-2' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.minimal-vertica-image }} | |
vertica-deployment-method: vclusterops | |
communal-storage-type: hostpath | |
controllers-scope: namespace | |
e2e-leg-3-admintools: | |
if: ${{ ! contains(github.ref, 'k8s-sync') && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'admintools leg 3' || inputs.e2e_test_suites == '') }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-3' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.legacy-vertica-image }} | |
vertica-deployment-method: admintools | |
communal-storage-type: hostpath | |
need-legacy-image: true | |
e2e-leg-3-vclusterops-previous-release: | |
if: ${{ inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster leg 3' || inputs.e2e_test_suites == '' }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-3' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: "opentext/vertica-k8s:24.1.0-0-minimal" | |
artifact-suffix: "-24.1.0-release" | |
vertica-deployment-method: vclusterops | |
communal-storage-type: hostpath | |
e2e-leg-3-vcluster: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster leg 3' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-3' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.full-vertica-image }} | |
vertica-deployment-method: vclusterops | |
communal-storage-type: hostpath | |
e2e-leg-4-admintools: | |
if: ${{ ! contains(github.ref, 'k8s-sync') && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'admintools leg 4' || inputs.e2e_test_suites == '') }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-4' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.legacy-vertica-image }} | |
vertica-deployment-method: admintools | |
communal-storage-type: s3 | |
vertica-superuser-name: dbadmin | |
# All helm deployments will use cert-manager to create the webhook cert | |
helm-overrides: '--set webhook.certSource=cert-manager' | |
need-legacy-image: true | |
e2e-leg-4-vcluster: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster leg 4' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-4' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.minimal-vertica-image }} | |
vertica-deployment-method: vclusterops | |
communal-storage-type: s3 | |
vertica-superuser-name: myadmin | |
# All helm deployments will use cert-manager to create the webhook cert | |
helm-overrides: '--set webhook.certSource=cert-manager' | |
e2e-leg-5-admintools: | |
if: ${{ ! contains(github.ref, 'k8s-sync') && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'admintools leg 5' || inputs.e2e_test_suites == '') }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-5' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.legacy-vertica-image }} | |
vertica-deployment-method: admintools | |
communal-storage-type: hostpath | |
# We cannot parallelize these tests because they each deploy/undeploy | |
# the cluster scoped operator. You can only have a single verticadb | |
# operator running in the k8s cluster. | |
e2e-parallelism: 1 | |
need-base-vertica-image: 'true' | |
need-legacy-image: true | |
e2e-leg-5-vcluster: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster leg 5' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-5' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.minimal-vertica-image }} | |
vertica-deployment-method: vclusterops | |
communal-storage-type: hostpath | |
# We cannot parallelize these tests because they each deploy/undeploy | |
# the cluster scoped operator. You can only have a single verticadb | |
# operator running in the k8s cluster. | |
e2e-parallelism: 1 | |
need-base-vertica-image: 'true' | |
e2e-leg-6-vcluster: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster leg 6' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-6' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.full-vertica-image }} | |
vertica-deployment-method: vclusterops | |
communal-storage-type: hostpath | |
minimum-vertica-image: '24.2.0' | |
e2e-leg-6-vcluster-revivedb: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster leg 6' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-6-revivedb' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.full-vertica-image }} | |
vertica-deployment-method: vclusterops | |
communal-storage-type: hostpath | |
minimum-vertica-image: '24.2.0' | |
e2e-leg-7-vcluster: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster leg 7' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-7' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.full-vertica-image }} | |
vertica-deployment-method: vclusterops | |
communal-storage-type: hostpath | |
minimum-vertica-image: '24.2.0' | |
e2e-leg-8-vcluster-offline: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'leg 8' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-8-offline' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.full-vertica-image }} | |
# The initial deployment method is admintools, and it eventually changes | |
# to vclusterops as the operator upgrades the server version | |
vertica-deployment-method: admintools | |
communal-storage-type: azb | |
minimum-vertica-image: '24.2.0' | |
e2e-leg-8-vcluster-online: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'leg 8' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-8-online' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.full-vertica-image }} | |
# The initial deployment method is admintools, and it eventually changes | |
# to vclusterops as the operator upgrades the server version | |
vertica-deployment-method: admintools | |
communal-storage-type: azb | |
minimum-vertica-image: '24.2.0' | |
e2e-leg-9-vcluster: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster leg 9' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-9' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.minimal-vertica-image }} | |
vertica-deployment-method: vclusterops | |
communal-storage-type: s3 | |
minimum-vertica-image: '24.3.0' | |
# Include the vertica license so we can test scaling past 3 nodes. | |
vertica-license: ${{ secrets.VERTICA_LICENSE }} | |
need-base-vertica-image: 'true' | |
e2e-leg-10-vcluster: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster leg 9' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'leg-10' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.minimal-vertica-image }} | |
vertica-deployment-method: vclusterops | |
communal-storage-type: s3 | |
minimum-vertica-image: '24.3.0' | |
# Include the vertica license so we can test scaling past 3 nodes. | |
vertica-license: ${{ secrets.VERTICA_LICENSE }} | |
need-base-vertica-image: 'true' | |
e2e-server-upgrade-admintools: | |
if: ${{ ! contains(github.ref, 'k8s-sync') && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'admintools server upgrade' || inputs.e2e_test_suites == '') }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'server-upgrade' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.legacy-vertica-image }} | |
vertica-deployment-method: admintools | |
communal-storage-type: s3 | |
need-base-vertica-image: 'true' | |
need-legacy-image: true | |
e2e-server-upgrade-vcluster: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster server upgrade' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'server-upgrade' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.full-vertica-image }} | |
vertica-deployment-method: vclusterops | |
communal-storage-type: s3 | |
need-base-vertica-image: 'true' | |
e2e-operator-upgrade: | |
if: ${{ ! contains(github.ref, 'k8s-sync') && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'admintools operator upgrade' || inputs.e2e_test_suites == '') }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'operator-upgrade' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.legacy-vertica-image }} | |
communal-storage-type: s3 | |
# We cannot parallelize these tests because they each deploy/undeploy | |
# the cluster scoped operator. You can only have a single verticadb | |
# operator running in the k8s cluster. | |
e2e-parallelism: 1 | |
vertica-deployment-method: admintools | |
need-legacy-image: true | |
e2e-udx-admintools: | |
if: ${{ ! contains(github.ref, 'k8s-sync') && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'admintools udx' || inputs.e2e_test_suites == '') }} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'udx' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
vertica-image: ${{ needs.build.outputs.legacy-vertica-image }} | |
vertica-deployment-method: admintools | |
communal-storage-type: s3 | |
need-legacy-image: true | |
# For admintools udx test, we are not using the test image, | |
# and we still need to download some test packages. | |
skip-download-test-packages: false | |
e2e-udx-vcluster: | |
if: ${{ ! github.event.pull_request.head.repo.fork && (inputs.e2e_test_suites == 'all' || inputs.e2e_test_suites == 'vcluster udx' || inputs.e2e_test_suites == '')}} | |
needs: [build] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Test | |
uses: ./.github/actions/run-e2e-leg | |
with: | |
leg-identifier: 'udx' | |
dockerhub-username: ${{ secrets.DOCKERHUB_USERNAME }} | |
dockerhub-token: ${{ secrets.DOCKERHUB_TOKEN }} | |
vlogger-image: ${{ needs.build.outputs.vlogger-image }} | |
operator-image: ${{ needs.build.outputs.operator-image }} | |
# We must pass the full image since the minimal image cannot run Java UDx's | |
vertica-image: ${{ needs.build.outputs.full-vertica-image }} | |
vertica-deployment-method: vclusterops | |
communal-storage-type: s3 | |
upload-operator-to-private-repo: | |
needs: [ | |
build, | |
e2e-leg-1-vcluster, | |
e2e-leg-2-vcluster, | |
e2e-leg-3-vclusterops-previous-release, | |
e2e-leg-3-vcluster, | |
e2e-leg-4-vcluster, | |
e2e-leg-5-vcluster, | |
e2e-leg-6-vcluster, | |
e2e-leg-6-vcluster-revivedb, | |
e2e-leg-7-vcluster, | |
e2e-leg-8-vcluster-offline, | |
e2e-leg-8-vcluster-online, | |
e2e-leg-9-vcluster, | |
e2e-leg-10-vcluster, | |
e2e-server-upgrade-vcluster, | |
e2e-operator-upgrade, | |
e2e-udx-vcluster, | |
e2e-leg-1-admintools, | |
e2e-leg-2-admintools, | |
e2e-leg-3-admintools, | |
e2e-leg-4-admintools, | |
e2e-leg-5-admintools, | |
e2e-server-upgrade-admintools, | |
e2e-udx-admintools | |
] | |
runs-on: ubuntu-latest | |
if: ${{ always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') && contains('server daily version', github.event.workflow_run.display_title) && contains('verticareleng', github.actor) }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
path: vertica-kubernetes | |
fetch-depth: 0 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Upload new image | |
run: | | |
docker buildx imagetools create --tag opentext/verticadb-operator-private:${{ github.sha }} ${{ needs.build.outputs.operator-image }} | |
sync-vcluster: | |
name: Sync-vcluster-repo | |
needs: [ | |
e2e-leg-1-vcluster, | |
e2e-leg-2-vcluster, | |
e2e-leg-3-vclusterops-previous-release, | |
e2e-leg-3-vcluster, | |
e2e-leg-4-vcluster, | |
e2e-leg-5-vcluster, | |
e2e-leg-6-vcluster, | |
e2e-leg-6-vcluster-revivedb, | |
e2e-leg-7-vcluster, | |
e2e-leg-8-vcluster-offline, | |
e2e-leg-8-vcluster-online, | |
e2e-leg-9-vcluster, | |
e2e-leg-10-vcluster, | |
e2e-server-upgrade-vcluster, | |
e2e-operator-upgrade, | |
e2e-udx-vcluster | |
] | |
runs-on: ubuntu-latest | |
if: ${{ always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') && contains(github.ref, 'k8s-sync') && (github.event_name == 'push')}} | |
steps: | |
- name: Check out | |
uses: actions/checkout@v4 | |
- name: Run Sync script | |
run: | | |
echo "Running sync script" | |
scripts/vcluster-sync.sh ${{ github.ref }} main ${{ secrets.VCLUSTER_CICD }} | |
notification: | |
name: team-notification | |
needs: [sync-vcluster] | |
runs-on: ubuntu-latest | |
if: ${{ always() && contains(github.ref, 'k8s-sync') }} | |
steps: | |
- name: Get vcluster commit url | |
run: | | |
VCLUSTER_REF=$(echo ${{ github.event.head_commit.message }} | awk '{print $NF}') | |
echo "VCLUSTER_URL=${{ github.server_url }}/vertica/vcluster/commit/$VCLUSTER_REF" >> $GITHUB_ENV | |
- name: notification on success | |
if: ${{ always() && contains(needs.sync-vcluster.result, 'success') }} | |
uses: jdcargile/[email protected] | |
with: | |
github-token: ${{ github.token }} | |
ms-teams-webhook-uri: ${{ secrets.MS_TEAMS_WEBHOOK_URI }} | |
notification-summary: Success | worflow ${{ github.workflow }} on branch ${{ github.ref_name }} with <a href="${{ env.VCLUSTER_URL }}">VCluster commit changes</a> | |
notification-color: 28a745 | |
verbose-logging: true | |
- name: notification on failure | |
if: ${{ always() && ! contains(needs.sync-vcluster.result, 'success') }} | |
uses: jdcargile/[email protected] | |
with: | |
github-token: ${{ github.token }} | |
ms-teams-webhook-uri: ${{ secrets.MS_TEAMS_WEBHOOK_URI }} | |
notification-summary: Failure | worflow ${{ github.workflow }} on branch ${{ github.ref_name }} with <a href="${{ env.VCLUSTER_URL }}">VCluster commit changes</a> | |
notification-color: dc3545 | |
verbose-logging: true |