Allow PVC expansion #1268
Workflow file for this run
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: Kind Integration Tests | |
on: | |
push: | |
branches: | |
- master | |
- 1.10.x | |
pull_request: | |
branches: [master] | |
jobs: | |
build_docker_images: | |
name: Build Docker Images | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Set version value | |
id: vars | |
run: | | |
echo "version=$(make version)" >> $GITHUB_OUTPUT | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Build and push | |
id: docker_build | |
uses: docker/build-push-action@v4 | |
with: | |
file: Dockerfile | |
context: . | |
push: false | |
tags: k8ssandra/cass-operator:v${{ steps.vars.outputs.version }} | |
platforms: linux/amd64 | |
outputs: type=docker,dest=/tmp/k8ssandra-cass-operator.tar | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: logger.Dockerfile | |
push: false | |
tags: k8ssandra/system-logger:v${{ steps.vars.outputs.version }} | |
outputs: type=docker,dest=/tmp/k8ssandra-system-logger.tar | |
platforms: linux/amd64 | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache | |
- name: Upload cass-operator image | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cass-operator | |
path: /tmp/k8ssandra-cass-operator.tar | |
- name: Upload system-logger image | |
uses: actions/upload-artifact@v4 | |
with: | |
name: system-logger | |
path: /tmp/k8ssandra-system-logger.tar | |
# This job is only for tests that don't run or don't pass against 4.0 yet | |
# kind_311_tests: | |
# needs: build_docker_images | |
# strategy: | |
# matrix: | |
# integration_test: | |
# - additional_seeds #TODO: Fails against C* 4.0, fix in https://github.com/k8ssandra/cass-operator/issues/459 | |
# - scale_down_unbalanced_racks #TODO: Fails against C* 4.0 and DSE 6.8, fix in https://github.com/k8ssandra/cass-operator/issues/459 | |
# runs-on: ubuntu-latest | |
# env: | |
# CGO_ENABLED: 0 | |
# M_INTEG_DIR: ${{ matrix.integration_test }} | |
# M_SERVER_VERSION: 3.11.17 | |
# M_SERVER_TYPE: cassandra | |
# steps: | |
# - uses: actions/checkout@v4 | |
# if: github.event_name == 'pull_request' | |
# with: | |
# ref: ${{ github.event.pull_request.head.sha }} | |
# - uses: actions/checkout@v4 | |
# if: github.event_name != 'pull_request' | |
# - uses: ./.github/actions/run-integ-test | |
# with: | |
# integration_test: ${{ matrix.integration_test }} | |
# - name: Archive k8s logs | |
# if: ${{ failure() }} | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: k8s-logs-${{ matrix.integration_test }} | |
# path: ./build/kubectl_dump | |
# # This job is only for tests that don't run or don't pass against 4.1 yet | |
# kind_40_tests: | |
# needs: build_docker_images | |
# strategy: | |
# matrix: | |
# version: | |
# - "4.0.12" | |
# integration_test: | |
# - cdc_successful # OSS only | |
# - config_fql | |
# runs-on: ubuntu-latest | |
# env: | |
# CGO_ENABLED: 0 | |
# M_INTEG_DIR: ${{ matrix.integration_test }} | |
# steps: | |
# - uses: actions/checkout@v4 | |
# if: github.event_name == 'pull_request' | |
# with: | |
# ref: ${{ github.event.pull_request.head.sha }} | |
# - uses: actions/checkout@v4 | |
# if: github.event_name != 'pull_request' | |
# - uses: ./.github/actions/run-integ-test | |
# with: | |
# integration_test: ${{ matrix.integration_test }} | |
# - name: Archive k8s logs | |
# if: ${{ failure() }} | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: k8s-logs-${{ matrix.integration_test }} | |
# path: ./build/kubectl_dump | |
# kind_dse_tests: | |
# needs: build_docker_images | |
# strategy: | |
# matrix: | |
# version: | |
# - "6.8.46" | |
# integration_test: | |
# - cdc_successful | |
# include: | |
# - version: 6.8.46 | |
# serverImage: datastax/dse-mgmtapi-6_8:6.8.46-ubi8 # DSE 6.8.46 | |
# serverType: dse | |
# integration_test: "cdc_successful" | |
# fail-fast: true | |
# runs-on: ubuntu-latest | |
# env: | |
# CGO_ENABLED: 0 | |
# M_INTEG_DIR: ${{ matrix.integration_test }} | |
# M_SERVER_VERSION: ${{ matrix.version }} | |
# M_SERVER_IMAGE: ${{ matrix.serverImage }} | |
# M_SERVER_TYPE: ${{ matrix.serverType }} | |
# steps: | |
# - uses: actions/checkout@v4 | |
# if: github.event_name == 'pull_request' | |
# with: | |
# ref: ${{ github.event.pull_request.head.sha }} | |
# - uses: actions/checkout@v4 | |
# if: github.event_name != 'pull_request' | |
# - uses: ./.github/actions/run-integ-test | |
# with: | |
# integration_test: ${{ matrix.integration_test }} | |
# - name: Archive k8s logs | |
# if: ${{ failure() }} | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: k8s-logs-smoke_test-${{ matrix.version }} | |
# path: ./build/kubectl_dump | |
# kind_int_tests: | |
# needs: build_docker_images | |
# strategy: | |
# matrix: | |
# version: | |
# - "4.1.4" | |
# integration_test: | |
# # Single worker tests: | |
# - additional_serviceoptions | |
# - additional_volumes | |
# # - delete_node_terminated_container # This does not test any operator behavior | |
# - podspec_simple | |
# # - smoke_test_oss # Converted to test_all_the_things, see below job | |
# # - smoke_test_dse # Converted to test_all_the_things, see below job | |
# # - terminate | |
# # - timeout_prestop_termination | |
# # - upgrade_operator # See kind_311_tests job, Only works for 3.11 right now | |
# - webhook_validation | |
# # Three worker tests: | |
# - canary_upgrade | |
# # - config_change_condition # config_change takes care of testing the same | |
# #- cdc_successful # OSS only | |
# # - delete_node_lost_readiness # DSE specific behavior | |
# - host_network | |
# - internode-encryption-generated | |
# #- no_infinite_reconcile # smoke_test_* should take care of this | |
# - node_replace | |
# - nodeport_service | |
# - rolling_restart | |
# - rolling_restart_with_override | |
# # - stop_resume | |
# - superuser-secret-generated | |
# - superuser-secret-provided | |
# - test_bad_config_and_fix | |
# - test_mtls_mgmt_api | |
# - upgrade_operator | |
# # More than 3 workers tests: | |
# - add_racks | |
# #- additional_seeds #TODO: Fails against C* 4.0, fix in https://github.com/k8ssandra/cass-operator/issues/459 | |
# - cluster_wide_install | |
# - config_change | |
# - config_secret | |
# # - multi_cluster_management | |
# #- oss_test_all_the_things # This is now the smoke test, see kind_smoke_tests job | |
# - scale_down | |
# # - scale_down_not_enough_space # Not enough stable test | |
# #- scale_down_unbalanced_racks #TODO: Fails against C* 4.0 and DSE, fix in https://github.com/k8ssandra/cass-operator/issues/459 | |
# - scale_up | |
# - scale_up_stop_resume | |
# - seed_selection | |
# #- config_fql # OSS only | |
# - decommission_dc | |
# # - stop_resume_scale_up # Odd insufficient CPU issues in kind+GHA | |
# # let other tests continue to run | |
# # even if one fails | |
# fail-fast: false | |
# runs-on: ubuntu-latest | |
# env: | |
# CGO_ENABLED: 0 | |
# M_INTEG_DIR: ${{ matrix.integration_test }} | |
# M_SERVER_VERSION: ${{ matrix.version }} | |
# steps: | |
# - uses: actions/checkout@v4 | |
# if: github.event_name == 'pull_request' | |
# with: | |
# ref: ${{ github.event.pull_request.head.sha }} | |
# - uses: actions/checkout@v4 | |
# if: github.event_name != 'pull_request' | |
# - uses: ./.github/actions/run-integ-test | |
# with: | |
# integration_test: ${{ matrix.integration_test }} | |
# - name: Archive k8s logs | |
# if: ${{ failure() }} | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: k8s-logs-${{ matrix.integration_test }}-${{ matrix.version }} | |
# path: ./build/kubectl_dump | |
# kind_smoke_tests: | |
# needs: build_docker_images | |
# strategy: | |
# matrix: | |
# version: | |
# - "3.11.17" | |
# - "4.0.12" | |
# - "4.1.4" | |
# - "6.8.46" | |
# integration_test: | |
# - test_all_the_things | |
# include: | |
# - version: 6.8.46 | |
# serverImage: datastax/dse-mgmtapi-6_8:6.8.46-ubi8 # DSE 6.8.46 | |
# serverType: dse | |
# integration_test: "test_all_the_things" | |
# fail-fast: true | |
# runs-on: ubuntu-latest | |
# env: | |
# CGO_ENABLED: 0 | |
# M_INTEG_DIR: ${{ matrix.integration_test }} | |
# M_SERVER_VERSION: ${{ matrix.version }} | |
# M_SERVER_IMAGE: ${{ matrix.serverImage }} | |
# M_SERVER_TYPE: ${{ matrix.serverType }} | |
# steps: | |
# - uses: actions/checkout@v4 | |
# if: github.event_name == 'pull_request' | |
# with: | |
# ref: ${{ github.event.pull_request.head.sha }} | |
# - uses: actions/checkout@v4 | |
# if: github.event_name != 'pull_request' | |
# - uses: ./.github/actions/run-integ-test | |
# with: | |
# integration_test: ${{ matrix.integration_test }} | |
# - name: Archive k8s logs | |
# if: ${{ failure() }} | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: k8s-logs-smoke_test-${{ matrix.version }} | |
# path: ./build/kubectl_dump | |
check_topolvm: | |
name: TopoLVM kind installation with volumeExpansion | |
needs: build_docker_images | |
strategy: | |
matrix: | |
version: | |
- "4.1.4" | |
integration_test: | |
- pvc_expansion | |
fail-fast: true | |
runs-on: ubuntu-latest | |
env: | |
CGO_ENABLED: 0 | |
M_INTEG_DIR: ${{ matrix.integration_test }} | |
M_SERVER_VERSION: ${{ matrix.version }} | |
steps: | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
with: | |
repository: topolvm/topolvm | |
path: topolvm | |
ref: topolvm-chart-v15.0.0 | |
- name: Create kind cluster from TopoLVM example | |
run: | | |
cd topolvm/example | |
make setup | |
make run | |
- name: Verify the output | |
run: | | |
kubectl get nodes | |
kubectl get pvc | |
kubectl get pv | |
kubectl get storageclass | |
sudo lvscan | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: 'go.mod' | |
cache: true | |
# The runners already have the latest versions of tools, no need to reinstall them | |
- name: Link tools | |
shell: bash | |
run: | | |
mkdir bin | |
ln -s /usr/local/bin/kustomize bin/kustomize | |
- name: Download cass-operator image | |
uses: actions/download-artifact@v4 | |
with: | |
name: cass-operator | |
path: /tmp | |
- name: Download system-logger image | |
uses: actions/download-artifact@v4 | |
with: | |
name: system-logger | |
path: /tmp | |
- name: Load Docker images | |
shell: bash | |
id: load | |
run: | | |
echo "operator_img=$(docker load --input /tmp/k8ssandra-cass-operator.tar | cut -f 3 -d' ')" >> $GITHUB_OUTPUT | |
echo "logger_img=$(docker load --input /tmp/k8ssandra-system-logger.tar | cut -f 3 -d' ')" >> $GITHUB_OUTPUT | |
- name: Load image on the nodes of the cluster | |
shell: bash | |
run: | | |
kind load docker-image --name=topolvm-example ${{ steps.load.outputs.operator_img }} | |
kind load docker-image --name=topolvm-example ${{ steps.load.outputs.logger_img }} | |
- name: Run integration test | |
shell: bash | |
run: | | |
IMG=${{ steps.load.outputs.operator_img }} LOG_IMG=${{ steps.load.outputs.logger_img }} make integ-test | |
- name: Display the end result output | |
run: | | |
kubectl get pvc | |
kubectl get pv | |
sudo lvscan | |
- name: Archive k8s logs | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: k8s-logs-topolvm-test-${{ matrix.version }} | |
path: ./build/kubectl_dump |