Skip to content

Commit

Permalink
CSI-PowerStore: Adding support for feature volume limits (#286)
Browse files Browse the repository at this point in the history
* Powerstore 2.8 support and changes for volume limits feature

* updating driver version in test file

* removed older config files and driver sample

* UT fix

* updated driver version in powerstore config sample yaml

* updated namespace variable for configmap
  • Loading branch information
ChristianAtDell committed Oct 15, 2024
1 parent 4298056 commit b688602
Show file tree
Hide file tree
Showing 31 changed files with 453 additions and 41 deletions.
13 changes: 9 additions & 4 deletions config/samples/storage_v1_csm_powerstore.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ spec:
# true: enable storage capacity tracking
# false: disable storage capacity tracking
storageCapacity: true
# Config version for CSI PowerStore v2.7.0 driver
configVersion: v2.7.0
# Config version for CSI PowerStore v2.8.0 driver
configVersion: v2.8.0
# authSecret: This is the secret used to validate the default PowerStore secret used for installation
# Allowed values: <metadataName specified in the Manifest>-config
# For example: If the metadataName is set to powerstore, authSecret value should be set to powerstore-config
Expand All @@ -43,8 +43,8 @@ spec:
forceUpdate: false
forceRemoveDriver: true
common:
# Image for CSI PowerStore driver v2.7.0
image: "dellemc/csi-powerstore:v2.7.0"
# Image for CSI PowerStore driver v2.8.0
image: "dellemc/csi-powerstore:v2.8.0"
imagePullPolicy: IfNotPresent
envs:
- name: X_CSI_POWERSTORE_NODE_NAME_PREFIX
Expand Down Expand Up @@ -132,6 +132,11 @@ spec:
# Default value: false
- name: X_CSI_HEALTH_MONITOR_ENABLED
value: "false"
# X_CSI_POWERSTORE_MAX_VOLUMES_PER_NODE: Defines the maximum PowerStore volumes that can be created per node
# Allowed values: Any value greater than or equal to 0
# Default value: "0"
- name: X_CSI_POWERSTORE_MAX_VOLUMES_PER_NODE
value: "0"

# nodeSelector: Define node selection constraints for node pods.
# For the pod to be eligible to run on a node, the node must have each
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
# limitations under the License.
#
#

apiVersion: v1
kind: ServiceAccount
metadata:
Expand Down Expand Up @@ -132,7 +131,7 @@ spec:
topologyKey: kubernetes.io/hostname
containers:
- name: attacher
image: registry.k8s.io/sig-storage/csi-attacher:v4.0.0
image: registry.k8s.io/sig-storage/csi-attacher:v4.3.0
imagePullPolicy: IfNotPresent
args:
- "--csi-address=$(ADDRESS)"
Expand All @@ -148,7 +147,7 @@ spec:
- name: socket-dir
mountPath: /var/run/csi
- name: resizer
image: registry.k8s.io/sig-storage/csi-resizer:v1.6.0
image: registry.k8s.io/sig-storage/csi-resizer:v1.8.0
imagePullPolicy: IfNotPresent
args:
- "--csi-address=$(ADDRESS)"
Expand All @@ -161,7 +160,7 @@ spec:
- name: socket-dir
mountPath: /var/run/csi
- name: provisioner
image: registry.k8s.io/sig-storage/csi-provisioner:v3.3.0
image: registry.k8s.io/sig-storage/csi-provisioner:v3.5.0
imagePullPolicy: IfNotPresent
args:
- "--csi-address=$(ADDRESS)"
Expand Down Expand Up @@ -190,7 +189,7 @@ spec:
- name: socket-dir
mountPath: /var/run/csi
- name: snapshotter
image: registry.k8s.io/sig-storage/csi-snapshotter:v6.1.0
image: registry.k8s.io/sig-storage/csi-snapshotter:v6.2.2
imagePullPolicy: IfNotPresent
args:
- "--csi-address=$(ADDRESS)"
Expand All @@ -204,7 +203,7 @@ spec:
- name: socket-dir
mountPath: /var/run/csi
- name: external-health-monitor
image: registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.7.0
image: registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.9.0
imagePullPolicy: IfNotPresent
args:
- "--v=5"
Expand All @@ -224,7 +223,7 @@ spec:
- name: socket-dir
mountPath: /var/run/csi
- name: driver
image: dellemc/csi-powerstore:v2.5.0
image: dellemc/csi-powerstore:v2.8.0
imagePullPolicy: IfNotPresent
command: [ "/csi-powerstore" ]
args:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,8 @@ metadata:
data:
driver-config-params.yaml: |
CSI_LOG_LEVEL: "debug"
CSI_LOG_FORMAT: "JSON"
CSI_LOG_FORMAT: "JSON"
PODMON_CONTROLLER_LOG_LEVEL: "debug"
PODMON_CONTROLLER_LOG_FORMAT: "JSON"
PODMON_NODE_LOG_LEVEL: "debug"
PODMON_NODE_LOG_FORMAT: "JSON"
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
# limitations under the License.
#
#

apiVersion: v1
kind: ServiceAccount
metadata:
Expand Down Expand Up @@ -77,6 +76,7 @@ spec:
metadata:
labels:
app: <DriverDefaultReleaseName>-node
driver.dellemc.com: dell-storage
spec:
#nodeSelector:
#tolerations:
Expand All @@ -91,7 +91,7 @@ spec:
capabilities:
add: ["SYS_ADMIN"]
allowPrivilegeEscalation: true
image: dellemc/csi-powerstore:v2.5.0
image: dellemc/csi-powerstore:v2.8.0
imagePullPolicy: IfNotPresent
command: [ "/csi-powerstore" ]
args:
Expand All @@ -101,7 +101,7 @@ spec:
- name: ENABLE_TRACING
value:
- name: CSI_ENDPOINT
value: unix:///var/lib/kubelet/plugins/csi-powerstore.dellemc.com/csi_sock
value: unix://<KUBELET_CONFIG_DIR>/plugins/csi-powerstore.dellemc.com/csi_sock
- name: X_CSI_MODE
value: node
- name: X_CSI_POWERSTORE_KUBE_NODE_NAME
Expand All @@ -113,10 +113,12 @@ spec:
value: <X_CSI_POWERSTORE_NODE_NAME_PREFIX>
- name: X_CSI_POWERSTORE_NODE_ID_PATH
value: /node-id
- name: X_CSI_POWERSTORE_MAX_VOLUMES_PER_NODE
value: <X_CSI_POWERSTORE_MAX_VOLUMES_PER_NODE>
- name: X_CSI_POWERSTORE_NODE_CHROOT_PATH
value: /noderoot
- name: X_CSI_POWERSTORE_TMP_DIR
value: /var/lib/kubelet/plugins/csi-powerstore.dellemc.com/tmp
value: <KUBELET_CONFIG_DIR>/plugins/csi-powerstore.dellemc.com/tmp
- name: X_CSI_DRIVER_NAME
value: "csi-powerstore.dellemc.com"
- name: X_CSI_FC_PORTS_FILTER_FILE_PATH
Expand All @@ -133,12 +135,12 @@ spec:
value: "<X_CSI_HEALTH_MONITOR_ENABLED>"
volumeMounts:
- name: driver-path
mountPath: /var/lib/kubelet/plugins/csi-powerstore.dellemc.com
mountPath: <KUBELET_CONFIG_DIR>/plugins/csi-powerstore.dellemc.com
- name: csi-path
mountPath: /var/lib/kubelet/plugins/kubernetes.io/csi
mountPath: <KUBELET_CONFIG_DIR>/plugins/kubernetes.io/csi
mountPropagation: "Bidirectional"
- name: pods-path
mountPath: /var/lib/kubelet/pods
mountPath: <KUBELET_CONFIG_DIR>/pods
mountPropagation: "Bidirectional"
- name: dev
mountPath: /dev
Expand All @@ -159,12 +161,12 @@ spec:
- name: powerstore-config-params
mountPath: /powerstore-config-params
- name: registrar
image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.6.0
image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.8.0
imagePullPolicy: IfNotPresent
args:
- "--v=5"
- "--csi-address=$(ADDRESS)"
- --kubelet-registration-path=/var/lib/kubelet/plugins/csi-powerstore.dellemc.com/csi_sock
- --kubelet-registration-path=<KUBELET_CONFIG_DIR>/plugins/csi-powerstore.dellemc.com/csi_sock
env:
- name: ADDRESS
value: /csi/csi_sock
Expand All @@ -181,18 +183,18 @@ spec:
volumes:
- name: registration-dir
hostPath:
path: /var/lib/kubelet/plugins_registry/
path: <KUBELET_CONFIG_DIR>/plugins_registry/
type: DirectoryOrCreate
- name: driver-path
hostPath:
path: /var/lib/kubelet/plugins/csi-powerstore.dellemc.com
path: <KUBELET_CONFIG_DIR>/plugins/csi-powerstore.dellemc.com
type: DirectoryOrCreate
- name: csi-path
hostPath:
path: /var/lib/kubelet/plugins/kubernetes.io/csi
path: <KUBELET_CONFIG_DIR>/plugins/kubernetes.io/csi
- name: pods-path
hostPath:
path: /var/lib/kubelet/pods
path: <KUBELET_CONFIG_DIR>/pods
type: Directory
- name: dev
hostPath:
Expand Down Expand Up @@ -228,3 +230,15 @@ spec:
- name: powerstore-config
secret:
secretName: <DriverDefaultReleaseName>-config
- name: usr-bin
hostPath:
path: /usr/bin
type: Directory
- name: kubelet-pods
hostPath:
path: /var/lib/kubelet/pods
type: Directory
- name: var-run
hostPath:
path: /var/run
type: Directory
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@
# limitations under the License.
#
#
minUpgradePath: v2.6.0
minUpgradePath: v2.7.0
2 changes: 2 additions & 0 deletions operatorconfig/moduleconfig/common/version-values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ powerstore:
# List of Driver versions and modules that supports the version
v2.7.0:
resiliency: "v1.6.0"
v2.8.0:
resiliency: "v1.7.0"
powermax:
# List of Driver versions and modules that supports the version
v2.6.0:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#
#
# Copyright © 2023 Dell Inc. or its subsidiaries. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
name: podmon
image: dellemc/podmon:v1.7.0
imagePullPolicy: IfNotPresent
env:
- name: MY_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
volumeMounts:
- name: socket-dir
mountPath: /var/run/csi
- name: vxflexos-config-params
mountPath: /vxflexos-config-params
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#
#
# Copyright © 2023 Dell Inc. or its subsidiaries. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
name: podmon
image: dellemc/podmon:v1.7.0
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
capabilities:
add: ["SYS_ADMIN"]
allowPrivilegeEscalation: true
env:
- name: KUBE_NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
- name: X_CSI_PRIVATE_MOUNT_DIR
value: /var/lib/kubelet
- name: MY_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
volumeMounts:
- name: kubelet-pods
mountPath: <KUBELET_CONFIG_DIR>/pods
mountPropagation: "Bidirectional"
- name: driver-path
mountPath: <KUBELET_CONFIG_DIR>/plugins/vxflexos.emc.dell.com
mountPropagation: "Bidirectional"
- name: dev
mountPath: /dev
- name: usr-bin
mountPath: /usr-bin
- name: var-run
mountPath: /var/run
- name: vxflexos-config-params
mountPath: /vxflexos-config-params
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#
#
# Copyright © 2023 Dell Inc. or its subsidiaries. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
name: podmon
image: dellemc/podmon:v1.7.0
imagePullPolicy: IfNotPresent
env:
- name: MY_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
volumeMounts:
- name: socket-dir
mountPath: /var/run/csi
- name: csi-isilon-config-params
mountPath: /csi-isilon-config-params
Loading

0 comments on commit b688602

Please sign in to comment.