diff --git a/.github/actions/build/action.yaml b/.github/actions/build/action.yaml index bc113db5..e7afe090 100644 --- a/.github/actions/build/action.yaml +++ b/.github/actions/build/action.yaml @@ -104,6 +104,9 @@ runs: make run-ready make run-healthy + # Run a test to verify that TopoLVM is functioning properly + make env "CMD=./src/topolvm/tests/createWorkloads.sh" + for i in $(seq 2 ${{ inputs.node-count }}); do make add-node done @@ -113,7 +116,6 @@ runs: # Clean is necessary to avoid conflicts with other actions that may # potentially run in subsequent actions make clean - # Uncomment this to enable tmate-debug on failure # - name: Pause and open tmate debug session # if: failure() diff --git a/src/topolvm/assets/kustomization.yaml b/src/topolvm/assets/kustomization.yaml index a66be925..043f7f6c 100644 --- a/src/topolvm/assets/kustomization.yaml +++ b/src/topolvm/assets/kustomization.yaml @@ -6,3 +6,4 @@ resources: patches: - path: topolvm_mutatingwebhook_patch.yaml - path: topolvm_service_patch.yaml + - path: topolvm_configmap-lvmd_patch.yaml diff --git a/src/topolvm/assets/topolvm_configmap-lvmd_patch.yaml b/src/topolvm/assets/topolvm_configmap-lvmd_patch.yaml new file mode 100644 index 00000000..0c5d4d7d --- /dev/null +++ b/src/topolvm/assets/topolvm_configmap-lvmd_patch.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: topolvm-lvmd-0 + namespace: topolvm-system +data: + lvmd.yaml: "socket-name: /run/topolvm/lvmd.sock\ndevice-classes: \n - default: true\n name: ssd\n spare-gb: 0\n volume-group: myvg1\n" + diff --git a/src/topolvm/generate_manifests.sh b/src/topolvm/generate_manifests.sh index 22ffb28e..baf239ca 100755 --- a/src/topolvm/generate_manifests.sh +++ b/src/topolvm/generate_manifests.sh @@ -92,6 +92,17 @@ metadata: annotations: service.beta.openshift.io/serving-cert-secret-name: topolvm-mutatingwebhook EOF + # lvmd configmap patch to override the spare-db:0 + cat >"${ASSETS_DIR}/topolvm_configmap-lvmd_patch.yaml" <<'EOF' +apiVersion: v1 +kind: ConfigMap +metadata: + name: topolvm-lvmd-0 + namespace: topolvm-system +data: + lvmd.yaml: "socket-name: /run/topolvm/lvmd.sock\ndevice-classes: \n - default: true\n name: ssd\n spare-gb: 0\n volume-group: myvg1\n" +EOF + # Generate kustomize cat >"${ASSETS_DIR}/kustomization.yaml" <<'EOF' @@ -103,6 +114,7 @@ resources: patches: - path: topolvm_mutatingwebhook_patch.yaml - path: topolvm_service_patch.yaml + - path: topolvm_configmap-lvmd_patch.yaml EOF } diff --git a/src/topolvm/tests/createWorkloads.sh b/src/topolvm/tests/createWorkloads.sh new file mode 100755 index 00000000..4b5deebf --- /dev/null +++ b/src/topolvm/tests/createWorkloads.sh @@ -0,0 +1,98 @@ +#!/bin/bash + +set -eux + +# Set KUBECONFIG path - use dynamic IP-based path +KUBECONFIG=${KUBECONFIG:-/var/lib/microshift/resources/kubeadmin/kubeconfig} + +ns="test-lvms" +appLabel="app-lvms" + +echo "INFO:" "Create Namespace, PVC and Deployment resources......" +oc --kubeconfig "${KUBECONFIG}" create ns ${ns} + +cat < /mnt/storage/testfile' +data=$(oc --kubeconfig "${KUBECONFIG}" exec -n ${ns} "${podName}" -- /bin/sh -c 'cat /mnt/storage/testfile') +if [[ ${data} =~ "Storage_Test" ]]; then + echo "SUCCESS:" "Data successfully written into Pod" +else + echo "ERROR:" "Failed to write data into the Pod" + exit 1 +fi