Skip to content

Allow PVC expansion #1273

Allow PVC expansion

Allow PVC expansion #1273

Workflow file for this run

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: 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: Archive k8s logs
# if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: k8s-logs-topolvm-test-${{ matrix.version }}
path: ./build/kubectl_dump