Run only DSE read_only_fs tests #1378
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 | ||
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@v6 | ||
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@v6 | ||
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 | ||
kind_smoke_tests: | ||
needs: build_docker_images | ||
strategy: | ||
matrix: | ||
version: | ||
- "6.8.50" | ||
- "6.9.2" | ||
integration_test: | ||
- smoke_test_read_only_fs | ||
include: | ||
- version: 6.8.50 | ||
serverImage: datastax/dse-mgmtapi-6_8:6.8.50-ubi8 # DSE 6.8.50 | ||
serverType: dse | ||
- version: 6.9.2 | ||
serverImage: datastax/dse-mgmtapi-6_8:6.9.2-ubi # DSE 6.9.2 | ||
serverType: dse | ||
- version: 1.0.0 | ||
serverImage: datastax/hcd:1.0.0-ubi # HCD 1.0.0 | ||
serverType: hcd | ||
exclude: | ||
- version: 3.11.17 | ||
integration_test: "smoke_test_read_only_fs" | ||
- version: 4.0.13 | ||
integration_test: "smoke_test_read_only_fs" | ||
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 | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: k8s-logs-smoke_test-${{ matrix.version }} | ||
path: ./build/kubectl_dump | ||
name: TopoLVM kind installation with volumeExpansion | ||
needs: build_docker_images | ||
strategy: | ||
matrix: | ||
version: | ||
- "4.1.6" | ||
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: Install necessary tools for LVM setup | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y lvm2 xfsprogs thin-provisioning-tools | ||
- 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.2.0 | ||
- name: Create LVM from TopoLVM's example setup | ||
run: | | ||
cd topolvm/example | ||
mkdir -p build | ||
mkdir -p bin | ||
make start-lvmd | ||
make KIND=$(type -a -P kind) launch-kind | ||
- name: Set up Go | ||
uses: actions/setup-go@v5 | ||
with: | ||
go-version-file: 'go.mod' | ||
cache: true | ||
- name: Install TopoLVM controller | ||
run: | | ||
make cert-manager | ||
helm repo add topolvm https://topolvm.github.io/topolvm | ||
helm repo update | ||
kubectl create namespace topolvm-system | ||
kubectl label namespace topolvm-system topolvm.io/webhook=ignore | ||
kubectl label namespace kube-system topolvm.io/webhook=ignore | ||
helm install --namespace=topolvm-system topolvm topolvm/topolvm -f topolvm/example/values.yaml | ||
kubectl wait --for=condition=available --timeout=120s -n topolvm-system deployments/topolvm-controller | ||
kubectl wait --for=condition=ready --timeout=120s -n topolvm-system -l="app.kubernetes.io/component=controller,app.kubernetes.io/name=topolvm" pod | ||
kubectl wait --for=condition=ready --timeout=120s -n topolvm-system certificate/topolvm-mutatingwebhook | ||
- 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 |