mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-12-18 11:00:25 +00:00
deploy: add support for nfs snapshot
This commit add external-snapshotter container and required rbac to support nfs snaphots. Example volumesnaphotclass, volumesnapshot, pvc-restore and pod-restore yamls are also added. Signed-off-by: Rakshith R <rar@redhat.com>
This commit is contained in:
parent
24515b509f
commit
5983d5730a
@ -70,6 +70,20 @@ spec:
|
|||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: socket-dir
|
- name: socket-dir
|
||||||
mountPath: /csi
|
mountPath: /csi
|
||||||
|
- name: csi-snapshotter
|
||||||
|
image: registry.k8s.io/sig-storage/csi-snapshotter:v5.0.1
|
||||||
|
args:
|
||||||
|
- "--csi-address=$(ADDRESS)"
|
||||||
|
- "--v=5"
|
||||||
|
- "--timeout=150s"
|
||||||
|
- "--leader-election=true"
|
||||||
|
env:
|
||||||
|
- name: ADDRESS
|
||||||
|
value: unix:///csi/csi-provisioner.sock
|
||||||
|
imagePullPolicy: "IfNotPresent"
|
||||||
|
volumeMounts:
|
||||||
|
- name: socket-dir
|
||||||
|
mountPath: /csi
|
||||||
- name: csi-nfsplugin
|
- name: csi-nfsplugin
|
||||||
# for stable functionality replace canary with latest release version
|
# for stable functionality replace canary with latest release version
|
||||||
image: quay.io/cephcsi/cephcsi:canary
|
image: quay.io/cephcsi/cephcsi:canary
|
||||||
|
@ -39,6 +39,18 @@ rules:
|
|||||||
- apiGroups: ["storage.k8s.io"]
|
- apiGroups: ["storage.k8s.io"]
|
||||||
resources: ["csinodes"]
|
resources: ["csinodes"]
|
||||||
verbs: ["get", "list", "watch"]
|
verbs: ["get", "list", "watch"]
|
||||||
|
- apiGroups: ["snapshot.storage.k8s.io"]
|
||||||
|
resources: ["volumesnapshotclasses"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
- apiGroups: ["snapshot.storage.k8s.io"]
|
||||||
|
resources: ["volumesnapshotcontents"]
|
||||||
|
verbs: ["get", "list", "watch", "update", "patch"]
|
||||||
|
- apiGroups: ["snapshot.storage.k8s.io"]
|
||||||
|
resources: ["volumesnapshotcontents/status"]
|
||||||
|
verbs: ["update", "patch"]
|
||||||
|
- apiGroups: ["snapshot.storage.k8s.io"]
|
||||||
|
resources: ["volumesnapshots"]
|
||||||
|
verbs: ["get", "list"]
|
||||||
---
|
---
|
||||||
kind: ClusterRoleBinding
|
kind: ClusterRoleBinding
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
17
examples/nfs/pod-restore.yaml
Normal file
17
examples/nfs/pod-restore.yaml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: csi-nfs-restore-demo-pod
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: web-server
|
||||||
|
image: docker.io/library/nginx:latest
|
||||||
|
volumeMounts:
|
||||||
|
- name: mypvc
|
||||||
|
mountPath: /var/lib/www
|
||||||
|
volumes:
|
||||||
|
- name: mypvc
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-pvc-restore
|
||||||
|
readOnly: false
|
16
examples/nfs/pvc-restore.yaml
Normal file
16
examples/nfs/pvc-restore.yaml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: nfs-pvc-restore
|
||||||
|
spec:
|
||||||
|
storageClassName: csi-nfs-sc
|
||||||
|
dataSource:
|
||||||
|
name: nfs-pvc-snapshot
|
||||||
|
kind: VolumeSnapshot
|
||||||
|
apiGroup: snapshot.storage.k8s.io
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
9
examples/nfs/snapshot.yaml
Normal file
9
examples/nfs/snapshot.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
apiVersion: snapshot.storage.k8s.io/v1
|
||||||
|
kind: VolumeSnapshot
|
||||||
|
metadata:
|
||||||
|
name: nfs-pvc-snapshot
|
||||||
|
spec:
|
||||||
|
volumeSnapshotClassName: csi-nfsplugin-snapclass
|
||||||
|
source:
|
||||||
|
persistentVolumeClaimName: csi-nfs-pvc
|
23
examples/nfs/snapshotclass.yaml
Normal file
23
examples/nfs/snapshotclass.yaml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
apiVersion: snapshot.storage.k8s.io/v1
|
||||||
|
kind: VolumeSnapshotClass
|
||||||
|
metadata:
|
||||||
|
name: csi-nfsplugin-snapclass
|
||||||
|
driver: nfs.csi.ceph.com
|
||||||
|
parameters:
|
||||||
|
# String representing a Ceph cluster to provision storage from.
|
||||||
|
# Should be unique across all Ceph clusters in use for provisioning,
|
||||||
|
# cannot be greater than 36 bytes in length, and should remain immutable for
|
||||||
|
# the lifetime of the StorageClass in use.
|
||||||
|
# Ensure to create an entry in the configmap named ceph-csi-config, based on
|
||||||
|
# csi-config-map-sample.yaml, to accompany the string chosen to
|
||||||
|
# represent the Ceph cluster in clusterID below
|
||||||
|
clusterID: <cluster-id>
|
||||||
|
|
||||||
|
# Prefix to use for naming CephFS snapshots.
|
||||||
|
# If omitted, defaults to "csi-snap-".
|
||||||
|
# snapshotNamePrefix: "foo-bar-"
|
||||||
|
|
||||||
|
csi.storage.k8s.io/snapshotter-secret-name: csi-cephfs-secret
|
||||||
|
csi.storage.k8s.io/snapshotter-secret-namespace: default
|
||||||
|
deletionPolicy: Delete
|
Loading…
Reference in New Issue
Block a user