Skip to content

Commit

Permalink
ci: add volumesnapshotclasses for externalstorage
Browse files Browse the repository at this point in the history
added volumesnapshotclasses yaml and script for
external-storage test

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
  • Loading branch information
Madhu-1 authored and mergify[bot] committed Apr 4, 2024
1 parent 66f71ae commit 307a2f1
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 1 deletion.
6 changes: 5 additions & 1 deletion scripts/k8s-storage/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,13 @@ This job runs the [Kubernetes end-to-end external storage tests][1] with
different driver configurations/manifests (in the `driver-*.yaml` files). Each
driver configuration refers to a StorageClass that is used while testing.

The StorageClasses are created with the `create-storageclass.sh` script and the
The StorageClasses are created with the `create-storageclasses.sh` script and the
`sc-*.yaml.in` templates.

The VolumeSnapshotClasses are created with the
`create-volumesnapshotclasses.sh` script and the
`volumesnapshotclass-*.yaml.in` templates.

The Ceph-CSI Configuration from the `ceph-csi-config` ConfigMap is created with
`create-configmap.sh` after the deployment is finished. The ConfigMap is
referenced in the StorageClasses and contains the connection details for the
Expand Down
27 changes: 27 additions & 0 deletions scripts/k8s-storage/create-volumesnapshotclasses.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#!/bin/sh
#
# Create VolumeSnapshotClasses from a template (volumesnapshotclass-*.yaml.in) and replace keywords
# like @@CLUSTER_ID@@.
#
# These VolumeSnapshotClasses can then be used by driver-*.yaml manifests in the
# k8s-e2e-external-storage CI job.
#
# Requirements:
# - kubectl in the path
# - working KUBE_CONFIG either in environment, or default config files
# - deployment done with Rook
#

# exit on error
set -e

WORKDIR=$(dirname "${0}")

TOOLBOX_POD=$(kubectl -n rook-ceph get pods --no-headers -l app=rook-ceph-tools -o=jsonpath='{.items[0].metadata.name}')
FS_ID=$(kubectl -n rook-ceph exec "${TOOLBOX_POD}" -- ceph fsid)

for sc in "${WORKDIR}"/volumesnapshotclass-*.yaml.in
do
sed "s/@@CLUSTER_ID@@/${FS_ID}/" "${sc}" |
kubectl create -f -
done
11 changes: 11 additions & 0 deletions scripts/k8s-storage/volumesnapshotclass-cephfs.yaml.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: k8s-storage-e2e-cephfs
driver: cephfs.csi.ceph.com
parameters:
clusterID: @@CLUSTER_ID@@
csi.storage.k8s.io/snapshotter-secret-name: rook-csi-cephfs-provisioner
csi.storage.k8s.io/snapshotter-secret-namespace: rook-ceph
deletionPolicy: Delete

0 comments on commit 307a2f1

Please sign in to comment.