mirror of
https://github.com/TECHNOFAB11/zfs-localpv.git
synced 2025-12-12 06:20:11 +01:00
Application can now create a storageclass to create zfs filesystem apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: openebs-zfspv5 allowVolumeExpansion: true parameters: blocksize: "4k" fstype: "zfs" poolname: "zfspv-pool" provisioner: zfs.csi.openebs.io ZFSPV was supporting ext2/3/4 and xfs filesystem only which adds one extra filesystem layer on top of ZFS filesystem. So now we can driectly write to the ZFS filesystem and get the optimal performance by directly creating ZFS filesystem for storage. Signed-off-by: Pawan <pawan@mayadata.io>
122 lines
2.9 KiB
YAML
122 lines
2.9 KiB
YAML
apiVersion: storage.k8s.io/v1
|
|
kind: StorageClass
|
|
metadata:
|
|
name: openebs-zfspv
|
|
allowVolumeExpansion: true
|
|
parameters:
|
|
volblocksize: "4k"
|
|
compression: "on"
|
|
dedup: "on"
|
|
thinprovision: "yes"
|
|
poolname: "zfspv-pool"
|
|
provisioner: zfs.csi.openebs.io
|
|
---
|
|
kind: PersistentVolumeClaim
|
|
apiVersion: v1
|
|
metadata:
|
|
name: csi-zfspv
|
|
spec:
|
|
storageClassName: openebs-zfspv
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 4Gi
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
annotations:
|
|
name: sqltest
|
|
namespace: default
|
|
data:
|
|
sql-test.sh: |
|
|
#!/bin/bash
|
|
|
|
DB_PREFIX="Inventory"
|
|
DB_SUFFIX=`echo $(mktemp) | cut -d '.' -f 2`
|
|
DB_NAME="${DB_PREFIX}_${DB_SUFFIX}"
|
|
|
|
|
|
echo -e "\nWaiting for mysql server to start accepting connections.."
|
|
retries=10;wait_retry=30
|
|
for i in `seq 1 $retries`; do
|
|
mysql -uroot -pk8sDem0 -e 'status' > /dev/null 2>&1
|
|
rc=$?
|
|
[ $rc -eq 0 ] && break
|
|
sleep $wait_retry
|
|
done
|
|
|
|
if [ $rc -ne 0 ];
|
|
then
|
|
echo -e "\nFailed to connect to db server after trying for $(($retries * $wait_retry))s, exiting\n"
|
|
exit 1
|
|
fi
|
|
mysql -uroot -pk8sDem0 -e "CREATE DATABASE $DB_NAME;"
|
|
mysql -uroot -pk8sDem0 -e "CREATE TABLE Hardware (id INTEGER, name VARCHAR(20), owner VARCHAR(20),description VARCHAR(20));" $DB_NAME
|
|
mysql -uroot -pk8sDem0 -e "INSERT INTO Hardware (id, name, owner, description) values (1, "dellserver", "basavaraj", "controller");" $DB_NAME
|
|
mysql -uroot -pk8sDem0 -e "DROP DATABASE $DB_NAME;"
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: percona
|
|
labels:
|
|
name: percona
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
name: percona
|
|
template:
|
|
metadata:
|
|
labels:
|
|
name: percona
|
|
spec:
|
|
containers:
|
|
- resources:
|
|
name: percona
|
|
image: openebs/tests-custom-percona:latest
|
|
imagePullPolicy: IfNotPresent
|
|
args:
|
|
- "--ignore-db-dir"
|
|
- "lost+found"
|
|
env:
|
|
- name: MYSQL_ROOT_PASSWORD
|
|
value: k8sDem0
|
|
ports:
|
|
- containerPort: 3306
|
|
name: percona
|
|
volumeMounts:
|
|
- mountPath: /var/lib/mysql
|
|
name: demo-vol1
|
|
- mountPath: /sql-test.sh
|
|
subPath: sql-test.sh
|
|
name: sqltest-configmap
|
|
livenessProbe:
|
|
exec:
|
|
command: ["bash", "sql-test.sh"]
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 1
|
|
timeoutSeconds: 10
|
|
volumes:
|
|
- name: demo-vol1
|
|
persistentVolumeClaim:
|
|
claimName: csi-zfspv
|
|
- name: sqltest-configmap
|
|
configMap:
|
|
name: sqltest
|
|
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: percona-mysql
|
|
labels:
|
|
name: percona-mysql
|
|
spec:
|
|
ports:
|
|
- port: 3306
|
|
targetPort: 3306
|
|
selector:
|
|
name: percona
|