mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-12-18 02:50:30 +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:
|
||||
- name: socket-dir
|
||||
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
|
||||
# for stable functionality replace canary with latest release version
|
||||
image: quay.io/cephcsi/cephcsi:canary
|
||||
|
@ -39,6 +39,18 @@ rules:
|
||||
- apiGroups: ["storage.k8s.io"]
|
||||
resources: ["csinodes"]
|
||||
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
|
||||
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