Files
my-rook-config/tests/scripts/localPathPV.sh
T

210 lines
4.1 KiB
Bash
Raw Normal View History

#!/bin/bash
2020-08-31 18:12:33 +02:00
set -ex
2020-08-31 20:50:47 +02:00
test_scratch_device=/dev/nvme0n1
if [ $# -ge 1 ] ; then
test_scratch_device=$1
fi
2020-10-27 14:25:08 +01:00
db_device=$2
wal_device=$3
2020-11-18 12:13:04 +01:00
sudo lsblk
sudo test ! -b "${test_scratch_device}" && echo "invalid scratch device, not a block device: ${test_scratch_device}" >&2 && exit 1
2020-08-31 18:12:33 +02:00
2020-08-05 09:04:34 +00:00
sudo rm -rf /var/lib/rook/rook-integration-test
sudo mkdir -p /var/lib/rook/rook-integration-test/mon1 /var/lib/rook/rook-integration-test/mon2 /var/lib/rook/rook-integration-test/mon3
node_name=$(kubectl get nodes -o jsonpath={.items[*].metadata.name})
kubectl label nodes ${node_name} rook.io/has-disk=true
kubectl delete pv -l type=local
cat <<eof | kubectl apply -f -
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-vol1
labels:
type: local
spec:
2020-08-31 18:12:33 +02:00
storageClassName: manual
capacity:
storage: 5Gi
accessModes:
2020-08-31 18:12:33 +02:00
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
local:
2020-08-05 09:04:34 +00:00
path: "/var/lib/rook/rook-integration-test/mon1"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: rook.io/has-disk
operator: In
values:
- "true"
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-vol2
labels:
type: local
spec:
2020-08-31 18:12:33 +02:00
storageClassName: manual
capacity:
storage: 5Gi
accessModes:
2020-08-31 18:12:33 +02:00
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
local:
2020-08-05 09:04:34 +00:00
path: "/var/lib/rook/rook-integration-test/mon2"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: rook.io/has-disk
operator: In
values:
- "true"
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-vol3
labels:
type: local
spec:
2020-08-31 18:12:33 +02:00
storageClassName: manual
capacity:
storage: 5Gi
accessModes:
2020-08-31 18:12:33 +02:00
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
volumeMode: Filesystem
local:
2020-08-05 09:04:34 +00:00
path: "/var/lib/rook/rook-integration-test/mon3"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: rook.io/has-disk
operator: In
values:
- "true"
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-vol4
labels:
type: local
spec:
2020-08-31 18:12:33 +02:00
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
2020-08-31 18:12:33 +02:00
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
volumeMode: Block
local:
2020-08-31 18:12:33 +02:00
path: "${test_scratch_device}"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: rook.io/has-disk
operator: In
values:
- "true"
---
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: manual
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
2020-10-27 14:25:08 +01:00
reclaimPolicy: Delete
eof
2020-10-27 14:25:08 +01:00
function add_db_pvc {
cat <<eof | kubectl apply -f -
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-vol5
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
volumeMode: Block
local:
path: "${db_device}"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: rook.io/has-disk
operator: In
values:
- "true"
eof
}
function add_wal_pvc {
cat <<eof | kubectl apply -f -
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: local-vol6
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 2Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
volumeMode: Block
local:
path: "${wal_device}"
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: rook.io/has-disk
operator: In
values:
- "true"
eof
}
########
# MAIN #
########
# Add a db device if needed
if [ -n "$db_device" ]; then
add_db_pvc
fi
# Add a wal device if needed
if [ -n "$wal_device" ]; then
add_wal_pvc
fi
kubectl get pv