Rook supports six versions of kubernetes but we only want to spend CI resources for testing four of them. In order to align with this commitment, this change lets rook run integration test suites on kubernetes v1.34 instead of v1.33 for release testing. As a result, the latest patch releases of kubernetes v1.31, v1.32, v1.34, and v1.35 are tested for rook releases. In addition, k8s version specification is made more systematic to use the pattern v1.3X.Y instead of 1.3X.Y. Signed-off-by: Michael Adam <obnox@samba.org>
295 lines
11 KiB
YAML
295 lines
11 KiB
YAML
name: Integration tests on master/release
|
|
on:
|
|
push:
|
|
tags:
|
|
- v*
|
|
branches:
|
|
- master
|
|
- release-*
|
|
|
|
defaults:
|
|
run:
|
|
# reference: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#using-a-specific-shell
|
|
shell: bash --noprofile --norc -eo pipefail -x {0}
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
# Required for go-ceph rgw/admin account APIs which are gated behind
|
|
# the ceph_preview build tag. Can be removed when go-ceph promotes
|
|
# the account API out of preview.
|
|
GOFLAGS: "-tags=ceph_preview"
|
|
|
|
jobs:
|
|
TestCephHelmSuite:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
kubernetes-version: ["v1.31.14", "v1.32.13", "v1.34.8", "v1.35.5"]
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup cluster resources
|
|
uses: ./.github/workflows/integration-test-setup-cluster-resources
|
|
with:
|
|
kubernetes-version: ${{ matrix.kubernetes-version }}
|
|
|
|
- name: TestCephHelmSuite
|
|
run: |
|
|
tests/scripts/github-action-helper.sh collect_udev_logs_in_background
|
|
tests/scripts/github-action-helper.sh create_helm_tag
|
|
export DEVICE_FILTER=$(tests/scripts/github-action-helper.sh find_extra_block_dev)
|
|
SKIP_TEST_CLEANUP=false SKIP_CLEANUP_POLICY=false go test -v -timeout 1800s -run CephHelmSuite github.com/rook/rook/tests/integration
|
|
|
|
- name: collect common logs
|
|
if: always()
|
|
run: |
|
|
export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/"
|
|
export CLUSTER_NAMESPACE="helm-ns"
|
|
export OPERATOR_NAMESPACE="helm-ns-system"
|
|
tests/scripts/collect-logs.sh
|
|
|
|
- name: Artifact
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
if: failure()
|
|
with:
|
|
name: ceph-helm-suite-artifact-${{ matrix.kubernetes-version }}
|
|
path: /home/runner/work/rook/rook/tests/integration/_output/tests/
|
|
|
|
TestCephMultiClusterDeploySuite:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
kubernetes-version: ["v1.31.14", "v1.32.13", "v1.34.8", "v1.35.5"]
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup cluster resources
|
|
uses: ./.github/workflows/integration-test-setup-cluster-resources
|
|
with:
|
|
kubernetes-version: ${{ matrix.kubernetes-version }}
|
|
|
|
- name: TestCephMultiClusterDeploySuite
|
|
run: |
|
|
tests/scripts/github-action-helper.sh collect_udev_logs_in_background
|
|
DEVICE_NAME="$(tests/scripts/github-action-helper.sh find_extra_block_dev)"
|
|
export BLOCK="$/dev/${DEVICE_NAME}"
|
|
export TEST_SCRATCH_DEVICE="/dev/${DEVICE_NAME}"
|
|
export DEVICE_FILTER="$DEVICE_NAME"
|
|
go test -v -timeout 1800s -run CephMultiClusterDeploySuite github.com/rook/rook/tests/integration
|
|
|
|
- name: collect common logs
|
|
if: always()
|
|
run: |
|
|
export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/"
|
|
export OPERATOR_NAMESPACE="multi-core-system"
|
|
CLUSTER_NAMESPACE="multi-core" tests/scripts/collect-logs.sh
|
|
CLUSTER_NAMESPACE="multi-external" tests/scripts/collect-logs.sh
|
|
|
|
- name: Artifact
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
if: failure()
|
|
with:
|
|
name: ceph-multi-cluster-deploy-suite-artifact-${{ matrix.kubernetes-version }}
|
|
path: /home/runner/work/rook/rook/tests/integration/_output/tests/
|
|
|
|
TestCephSmokeSuite:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
kubernetes-version: ["v1.31.14", "v1.32.13", "v1.34.8", "v1.35.5"]
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup cluster resources
|
|
uses: ./.github/workflows/integration-test-setup-cluster-resources
|
|
with:
|
|
kubernetes-version: ${{ matrix.kubernetes-version }}
|
|
|
|
- name: TestCephSmokeSuite
|
|
run: |
|
|
tests/scripts/github-action-helper.sh collect_udev_logs_in_background
|
|
export DEVICE_FILTER=$(tests/scripts/github-action-helper.sh find_extra_block_dev)
|
|
SKIP_CLEANUP_POLICY=false go test -v -timeout 1800s -run CephSmokeSuite github.com/rook/rook/tests/integration
|
|
|
|
- name: collect common logs
|
|
if: always()
|
|
run: |
|
|
export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/"
|
|
export CLUSTER_NAMESPACE="smoke-ns"
|
|
export OPERATOR_NAMESPACE="smoke-ns-system"
|
|
tests/scripts/collect-logs.sh
|
|
|
|
- name: Artifact
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
if: failure()
|
|
with:
|
|
name: ceph-smoke-suite-artifact-${{ matrix.kubernetes-version }}
|
|
path: /home/runner/work/rook/rook/tests/integration/_output/tests/
|
|
|
|
TestCephUpgradeSuite:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
kubernetes-version: ["v1.31.14", "v1.32.13", "v1.34.8", "v1.35.5"]
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup cluster resources
|
|
uses: ./.github/workflows/integration-test-setup-cluster-resources
|
|
with:
|
|
kubernetes-version: ${{ matrix.kubernetes-version }}
|
|
|
|
- name: TestCephUpgradeSuite
|
|
run: |
|
|
tests/scripts/github-action-helper.sh collect_udev_logs_in_background
|
|
export DEVICE_FILTER=$(tests/scripts/github-action-helper.sh find_extra_block_dev)
|
|
go test -v -timeout 2400s -run CephUpgradeSuite/TestUpgradeRook github.com/rook/rook/tests/integration
|
|
|
|
- name: collect common logs
|
|
if: always()
|
|
run: |
|
|
export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/"
|
|
export CLUSTER_NAMESPACE="upgrade"
|
|
export OPERATOR_NAMESPACE="upgrade-system"
|
|
tests/scripts/collect-logs.sh
|
|
|
|
- name: Artifact
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
if: failure()
|
|
with:
|
|
name: ceph-upgrade-suite-artifact-${{ matrix.kubernetes-version }}
|
|
path: /home/runner/work/rook/rook/tests/integration/_output/tests/
|
|
|
|
TestHelmUpgradeSuite:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
kubernetes-version: ["v1.31.14", "v1.32.13", "v1.34.8", "v1.35.5"]
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup cluster resources
|
|
uses: ./.github/workflows/integration-test-setup-cluster-resources
|
|
with:
|
|
kubernetes-version: ${{ matrix.kubernetes-version }}
|
|
|
|
- name: TestHelmUpgradeSuite
|
|
run: |
|
|
tests/scripts/github-action-helper.sh create_helm_tag
|
|
tests/scripts/github-action-helper.sh collect_udev_logs_in_background
|
|
export DEVICE_FILTER=$(tests/scripts/github-action-helper.sh find_extra_block_dev)
|
|
go test -v -timeout 1800s -run CephUpgradeSuite/TestUpgradeHelm github.com/rook/rook/tests/integration
|
|
|
|
- name: collect common logs
|
|
if: always()
|
|
run: |
|
|
export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/"
|
|
export CLUSTER_NAMESPACE="upgrade"
|
|
export OPERATOR_NAMESPACE="upgrade-system"
|
|
tests/scripts/collect-logs.sh
|
|
|
|
- name: Artifact
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
if: failure()
|
|
with:
|
|
name: ceph-upgrade-suite-artifact-${{ matrix.kubernetes-version }}
|
|
path: /home/runner/work/rook/rook/tests/integration/_output/tests/
|
|
|
|
TestCephObjectSuite:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
kubernetes-version: ["v1.31.14"] # test only on oldest supported k8s version
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup cluster resources
|
|
uses: ./.github/workflows/integration-test-setup-cluster-resources
|
|
with:
|
|
kubernetes-version: ${{ matrix.kubernetes-version }}
|
|
|
|
- name: TestCephObjectSuite (without TLS)
|
|
run: |
|
|
tests/scripts/github-action-helper.sh collect_udev_logs_in_background
|
|
export DEVICE_FILTER=$(tests/scripts/github-action-helper.sh find_extra_block_dev)
|
|
SKIP_CLEANUP_POLICY=false go test -v -timeout 2400s -failfast -run CephObjectSuite/TestWithoutTLS github.com/rook/rook/tests/integration
|
|
|
|
- name: collect common logs
|
|
if: always()
|
|
run: |
|
|
export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/"
|
|
export CLUSTER_NAMESPACE="object-ns"
|
|
export OPERATOR_NAMESPACE="object-ns-system"
|
|
tests/scripts/collect-logs.sh
|
|
|
|
- name: Artifact
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
if: failure()
|
|
with:
|
|
name: ceph-object-suite-artifact-${{ matrix.kubernetes-version }}
|
|
path: /home/runner/work/rook/rook/tests/integration/_output/tests/
|
|
|
|
TestCephObjectSuiteTLS:
|
|
runs-on: ubuntu-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
kubernetes-version: ["v1.35.5"] # test only on latest supported k8s version
|
|
steps:
|
|
- name: checkout
|
|
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: setup cluster resources
|
|
uses: ./.github/workflows/integration-test-setup-cluster-resources
|
|
with:
|
|
kubernetes-version: ${{ matrix.kubernetes-version }}
|
|
|
|
- name: TestCephObjectSuiteTLS
|
|
run: |
|
|
tests/scripts/github-action-helper.sh collect_udev_logs_in_background
|
|
export DEVICE_FILTER=$(tests/scripts/github-action-helper.sh find_extra_block_dev)
|
|
SKIP_CLEANUP_POLICY=false go test -v -timeout 2400s -failfast -run CephObjectSuite/TestWithTLS github.com/rook/rook/tests/integration
|
|
|
|
- name: collect common logs
|
|
if: always()
|
|
run: |
|
|
export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/"
|
|
export CLUSTER_NAMESPACE="object-ns"
|
|
export OPERATOR_NAMESPACE="object-ns-system"
|
|
tests/scripts/collect-logs.sh
|
|
|
|
- name: Artifact
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
if: failure()
|
|
with:
|
|
name: ceph-object-suite-tls-artifact-${{ matrix.kubernetes-version }}
|
|
path: /home/runner/work/rook/rook/tests/integration/_output/tests/
|