Skip to content

Commit

Permalink
Added new storageclass for NFS support (#181)
Browse files Browse the repository at this point in the history
Added new storageclass for NFS support
  • Loading branch information
KshitijaKakde authored Apr 17, 2023
1 parent d9a363c commit 43a666a
Show file tree
Hide file tree
Showing 3 changed files with 139 additions and 0 deletions.
20 changes: 20 additions & 0 deletions helm/csi-vxflexos/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ kubeletConfigDir: /var/lib/kubelet
# Default value: none
defaultFsType: ext4

# externalAccess: allows to specify additional entries for host to access NFS volumes. Both single IP address and subnet are valid entries.
# Allowed Values: x.x.x.x/xx or x.x.x.x
# Default Value: None
externalAccess:

# imagePullPolicy: Policy to determine if the image should be pulled prior to starting the container.
# Allowed values:
# Always: Always pull the image.
Expand All @@ -46,6 +51,21 @@ defaultFsType: ext4
# Default value: None
imagePullPolicy: IfNotPresent

# nfsAcls: enables setting permissions on NFS mount directory
# This value acts as default value for NFS ACL (nfsAcls), if not specified for an array config in secret
# Permissions can be specified in two formats:
# 1) Unix mode (NFSv3)
# 2) NFSv4 ACLs (NFSv4)
# NFSv4 ACLs are supported on NFSv4 share only.
# Allowed values:
# 1) Unix mode: valid octal mode number
# Examples: "0777", "777", "0755"
# 2) NFSv4 acls: valid NFSv4 acls, seperated by comma
# Examples: "A::OWNER@:RWX,A::GROUP@:RWX", "A::OWNER@:rxtncy"
# Optional: true
# Default value: "0777"
nfsAcls: "0777"

# "enablesnapshotcgdelete"- a boolean that, when enabled, will delete all snapshots in a consistency group
# everytime a snap in the group is deleted
# Allowed values: true, false
Expand Down
22 changes: 22 additions & 0 deletions samples/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,28 @@
# defines the MDM(s) that SDC should register with on start.
# Allowed values: a list of IP addresses or hostnames separated by comma.
# Default value: none

# NFS is only supported on arrays >= 4.0
# nasName: what NAS should be used for NFS volumes
# Allowed Values: string - (name of NAS server)
# Default Value: None
nasName: "nas-server"

# nfsAcls: enables setting permissions on NFS mount directory
# This value will be used if a storage class does not have the NFS ACL (nfsAcls) parameter specified
# Permissions can be specified in two formats:
# 1) Unix mode (NFSv3)
# 2) NFSv4 ACLs (NFSv4)
# NFSv4 ACLs are supported on NFSv4 share only.
# Allowed values:
# 1) Unix mode: valid octal mode number
# Examples: "0777", "777", "0755"
# 2) NFSv4 acls: valid NFSv4 acls, seperated by comma
# Examples: "A::OWNER@:RWX,A::GROUP@:RWX", "A::OWNER@:rxtncy"
# Optional: true
# Default value: "0777"
# nfsAcls: "0777"

mdm: "10.0.0.1,10.0.0.2"
- username: "admin"
password: "Password123"
Expand Down
97 changes: 97 additions & 0 deletions samples/storageclass/storageclass-nfs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: vxflexos-nfs
provisioner: csi-vxflexos.dellemc.com
# reclaimPolicy: PVs that are dynamically created by a StorageClass will have the reclaim policy specified here
# Allowed values:
# Reclaim: retain the PV after PVC deletion
# Delete: delete the PV after PVC deletion
# Optional: true
# Default value: Delete
reclaimPolicy: Delete
# allowVolumeExpansion: allows the users to resize the volume by editing the corresponding PVC object
# Allowed values:
# true: allow users to resize the PVC
# false: does not allow users to resize the PVC
# Optional: true
# Default value: false
allowVolumeExpansion: true
parameters:
# Storage pool to use on system
# Optional: false
storagepool: <STORAGE_POOL> # Insert Storage pool
# Protection domain that storage pool above belongs to
# Needed if array has two storagepools that share the same name, but belong to different protection domains
# Optional: true
# Uncomment the line below if you want to use protectiondomain
# protectiondomain: # Insert Protection domain name
# System you would like this storage class to use
# Allowed values: one string for system ID
# Optional: false
systemID: <SYSTEM_ID> # Insert System ID
# format options to pass to mkfs
# Allowed values: A string dictating the fs options you want passed
# Optional: true
# Uncomment the line below if you want to use mkfsFormatOption
# mkfsFormatOption: "<mkfs_format_option>" # Insert file system format option
# Filesytem type for volumes created by storageclass
# Default value: None if defaultFsType is not mentioned in values.yaml
# Else defaultFsType value mentioned in values.yaml
# will be used as default value
csi.storage.k8s.io/fstype: nfs
# Limit the volume network bandwidth
# Value is a positive number in granularity of 1024 Kbps; 0 = unlimited
# Allowed values: one string for bandwidth limit in Kbps
# Optional: false
# Uncomment the line below if you want to use bandwidthLimitInKbps
# bandwidthLimitInKbps: <BANDWIDTH_LIMIT_IN_KBPS> # Insert bandwidth limit in Kbps
# Limit the volume IOPS
# The number of IOPS must be greater than 10; 0 = unlimited
# Allowed values: one string for iops limit
# Optional: false
# Uncomment the line below if you want to use iopsLimit
# iopsLimit: <IOPS_LIMIT> # Insert iops limit

# nasName: NAS server's name. If not specified, value from secret.yaml will be used
# Allowed values: string
# Optional: true
# Default value: None
nasName: "nas-server"

# allowRoot: enables or disables root squashing (valid only for NFS)
# Allowed values:
# true: will allow root users to use their privileges
# false: will prevent root users on NFS clients from exercising root privileges on the NFS server
# Optional: true
# Default value: false
allowRoot: "false"

# nfsAcls: enables setting permissions on NFS mount directory
# This value overrides the NFS ACL (nfsAcls) attribute of corresponding array config in secret, if present
# Permissions can be specified in two formats:
# 1) Unix mode (NFSv3)
# 2) NFSv4 ACLs (NFSv4)
# NFSv4 ACLs are supported on NFSv4 share only.
# Allowed values:
# 1) Unix mode: valid octal mode number
# Examples: "0777", "777", "0755"
# 2) NFSv4 acls: valid NFSv4 acls, seperated by comma
# Examples: "A::OWNER@:RWX,A::GROUP@:RWX", "A::OWNER@:rxtncy"
# Optional: true
# Default value: "0777"
# nfsAcls: "0777"

# volumeBindingMode determines how volume binding and dynamic provisioning should occur
# Allowed values:
# Immediate: volume binding and dynamic provisioning occurs once PVC is created
# WaitForFirstConsumer: delay the binding and provisioning of PV until a pod using the PVC is created.
# Optional: false
# Default value: WaitForFirstConsumer (required for topology section below)
volumeBindingMode: WaitForFirstConsumer
# allowedTopologies helps scheduling pods on worker nodes which match all of below expressions.
allowedTopologies:
- matchLabelExpressions:
- key: csi-vxflexos.dellemc.com/<SYSTEM_ID> # Insert System ID
values:
- csi-vxflexos.dellemc.com

0 comments on commit 43a666a

Please sign in to comment.