-
Notifications
You must be signed in to change notification settings - Fork 24
/
storage_csm_powermax_v280.yaml
414 lines (403 loc) · 18.4 KB
/
storage_csm_powermax_v280.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
#
# 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.
#
#
apiVersion: storage.dell.com/v1
kind: ContainerStorageModule
metadata:
name: powermax
namespace: powermax
spec:
# Add fields here
driver:
csiDriverType: "powermax"
csiDriverSpec:
# fsGroupPolicy: Defines if the underlying volume supports changing ownership and permission of the volume before being mounted.
# Allowed values: ReadWriteOnceWithFSType, File , None
# Default value: ReadWriteOnceWithFSType
fSGroupPolicy: "ReadWriteOnceWithFSType"
# storageCapacity: Helps the scheduler to schedule the pod on a node satisfying the topology constraints, only if the requested capacity is available on the storage array
# Allowed values:
# true: enable storage capacity tracking
# false: disable storage capacity tracking
storageCapacity: true
# Config version for CSI PowerMax v2.8.0 driver
configVersion: v2.8.0
# replica: Define the number of PowerMax controller nodes
# to deploy to the Kubernetes release
# Allowed values: n, where n > 0
# Default value: None
replicas: 2
# Default credential secret for Powermax, if not set it to ""
authSecret: powermax-creds
dnsPolicy: ClusterFirstWithHostNet
forceUpdate: false
forceRemoveDriver: true
common:
# Image for CSI PowerMax driver v2.8.0
image: dellemc/csi-powermax:v2.8.0
# imagePullPolicy: Policy to determine if the image should be pulled prior to starting the container.
# Allowed values:
# Always: Always pull the image.
# IfNotPresent: Only pull the image if it does not already exist on the node.
# Never: Never pull the image.
# Default value: None
imagePullPolicy: IfNotPresent
envs:
# X_CSI_MANAGED_ARRAYS: Serial ID of the arrays that will be used for provisioning
# Default value: None
# Examples: "000000000001", "000000000002"
- name: X_CSI_MANAGED_ARRAYS
value: ""
# X_CSI_POWERMAX_ENDPOINT: Address of the Unisphere server that is managing the PowerMax arrays
# In case of multi-array, provide an endpoint of locally attached array
# Default value: None
# Example: https://0.0.0.1:8443
- name: X_CSI_POWERMAX_ENDPOINT
value: ""
# X_CSI_K8S_CLUSTER_PREFIX: Define a prefix that is appended onto
# all resources created in the Array
# This should be unique per K8s/CSI deployment
# maximum length of this value is 3 characters
# Default value: None
# Examples: "XYZ", "EMC"
- name: X_CSI_K8S_CLUSTER_PREFIX
value: "OCP"
# Specify kubelet config dir path.
# Ensure that the config.yaml file is present at this path.
# Default value: None
- name: KUBELET_CONFIG_DIR
value: /var/lib/kubelet
# X_CSI_POWERMAX_PORTGROUPS: Define the set of existing port groups that the driver will use.
# It is a comma separated list of portgroup names.
# Required only in case of iSCSI port groups
# Allowed values: iSCSI Port Group names
# Default value: None
# Examples: "pg1", "pg1, pg2"
- name: X_CSI_POWERMAX_PORTGROUPS
value: "iSCSI-PG-LAT"
# "X_CSI_TRANSPORT_PROTOCOL" can be "FC" or "FIBRE" for fibrechannel,
# "ISCSI" for iSCSI, or "" for autoselection.
# Allowed values:
# "FC" - Fiber Channel protocol
# "FIBER" - Fiber Channel protocol
# "ISCSI" - iSCSI protocol
# "" - Automatic selection of transport protocol
# Default value: "" <empty>
- name: X_CSI_TRANSPORT_PROTOCOL
value: "ISCSI"
# X_CSI_POWERMAX_PROXY_SERVICE_NAME: Refers to the name of the proxy service in kubernetes
# Allowed values: "csipowermax-reverseproxy"
# default values: "csipowermax-reverseproxy"
- name: X_CSI_POWERMAX_PROXY_SERVICE_NAME
value: "csipowermax-reverseproxy"
# VMware/vSphere virtualization support
# set X_CSI_VSPHERE_ENABLED to true, if you to enable VMware virtualized environment support via RDM
# Allowed values:
# "true" - vSphere volumes are enabled
# "false" - vSphere volumes are disabled
# Default value: "false"
- name: "X_CSI_VSPHERE_ENABLED"
value: "false"
# X_CSI_VSPHERE_PORTGROUP: An existing portGroup that driver will use for vSphere
# recommended format: csi-x-VC-PG, x can be anything of user choice
# Allowed value: valid existing port group on the array
# Default value: "" <empty>
- name: "X_CSI_VSPHERE_PORTGROUP"
value: ""
# X_CSI_VSPHERE_HOSTNAME: An existing host(initiator group)/ host group(cascaded initiator group) that driver will use for vSphere
# this host should contain initiators from all the ESXs/ESXi host where the cluster is deployed
# recommended format: csi-x-VC-HN, x can be anything of user choice
# Allowed value: valid existing host/host group on the array
# Default value: "" <empty>
- name: "X_CSI_VSPHERE_HOSTNAME"
value: ""
# X_CSI_VCENTER_HOST: URL/endpoint of the vCenter where all the ESX are present
# Allowed value: valid vCenter host endpoint
# Default value: "" <empty>
- name: "X_CSI_VCENTER_HOST"
value: ""
controller:
envs:
# X_CSI_HEALTH_MONITOR_ENABLED: Enable/Disable health monitor of CSI volumes from node plugin- volume usage, volume condition
# Allowed values:
# true: enable checking of health condition of CSI volumes
# false: disable checking of health condition of CSI volumes
# Default value: false
- name: X_CSI_HEALTH_MONITOR_ENABLED
value: "false"
# nodeSelector: Define node selection constraints for controller pods.
# For the pod to be eligible to run on a node, the node must have each
# of the indicated key-value pairs as labels.
# Leave as blank to consider all nodes
# Allowed values: map of key-value pairs
# Default value: None
nodeSelector:
# Uncomment if nodes you wish to use have the node-role.kubernetes.io/control-plane taint
# node-role.kubernetes.io/control-plane: ""
# tolerations: Define tolerations that would be applied to controller deployment
# Leave as blank to install controller on worker nodes
# Allowed values: map of key-value pairs
# Default value: None
tolerations:
# Uncomment if nodes you wish to use have the node-role.kubernetes.io/control-plane taint
# - key: "node-role.kubernetes.io/control-plane"
# operator: "Exists"
# effect: "NoSchedule"
node:
envs:
# X_CSI_POWERMAX_ISCSI_ENABLE_CHAP: Determine if the driver is going to configure
# ISCSI node databases on the nodes with the CHAP credentials
# If enabled, the CHAP secret must be provided in the credentials secret
# and set to the key "chapsecret"
# Allowed values:
# "true" - CHAP is enabled
# "false" - CHAP is disabled
# Default value: "false"
- name: X_CSI_POWERMAX_ISCSI_ENABLE_CHAP
value: "false"
# X_CSI_HEALTH_MONITOR_ENABLED: Enable/Disable health monitor of CSI volumes from node plugin- volume usage, volume condition
# Allowed values:
# true: enable checking of health condition of CSI volumes
# false: disable checking of health condition of CSI volumes
# Default value: false
- name: X_CSI_HEALTH_MONITOR_ENABLED
value: "false"
# X_CSI_TOPOLOGY_CONTROL_ENABLED provides a way to filter topology keys on a node based on array and transport protocol
# if enabled, user can create custom topology keys by editing node-topology-config configmap.
# Allowed values:
# true: enable the filtration based on config map
# false: disable the filtration based on config map
# Default value: false
- name: X_CSI_TOPOLOGY_CONTROL_ENABLED
value: "false"
# X_CSI_MAX_VOLUMES_PER_NODE: Defines the maximum PowerMax volumes that the controller can schedule on the node
# Allowed values: Any value greater than or equal to 0
# Default value: "0"
- name: X_CSI_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
# of the indicated key-value pairs as labels.
# Leave as blank to consider all nodes
# Allowed values: map of key-value pairs
# Default value: None
nodeSelector:
# Uncomment if nodes you wish to use have the node-role.kubernetes.io/control-plane taint
# node-role.kubernetes.io/control-plane: ""
# tolerations: Define tolerations that would be applied to node daemonset
# Add/Remove tolerations as per requirement
# Leave as blank if you wish to not apply any tolerations
# Allowed values: map of key-value pairs
# Default value: None
tolerations:
- key: "node.kubernetes.io/memory-pressure"
operator: "Exists"
effect: "NoExecute"
- key: "node.kubernetes.io/disk-pressure"
operator: "Exists"
effect: "NoExecute"
- key: "node.kubernetes.io/network-unavailable"
operator: "Exists"
effect: "NoExecute"
sideCars:
# health monitor is disabled by default, refer to driver documentation before enabling it
- name: external-health-monitor
enabled: false
args: [ "--monitor-interval=60s" ]
# Uncomment the following to configure how often external-provisioner polls the driver to detect changed capacity
# Configure only when the storageCapacity is set as "true"
# Allowed values: 1m,2m,3m,...,10m,...,60m etc. Default value: 5m
#- name: provisioner
# args: ["--capacity-poll-interval=5m"]
modules:
# CSI Powermax Reverseproxy is a mandatory module for Powermax
- name: csireverseproxy
# enabled: Always set to true
enabled: true
forceRemoveModule: true
configVersion: v2.7.0
components:
- name: csipowermax-reverseproxy
# image: Define the container images used for the reverse proxy
# Default value: None
# Example: "csipowermax-reverseproxy:v2.7.0"
image: dellemc/csipowermax-reverseproxy:v2.7.0
envs:
# "tlsSecret" defines the TLS secret that is created with certificate
# and its associated key
# Default value: None
# Example: "tls-secret"
- name: X_CSI_REVPROXY_TLS_SECRET
value: "csirevproxy-tls-secret"
- name: X_CSI_REVPROXY_PORT
value: "2222"
- name: X_CSI_CONFIG_MAP_NAME
value: "powermax-reverseproxy-config"
# Authorization: enable csm-authorization for RBAC
- name: authorization
# enabled: Enable/Disable csm-authorization
enabled: false
configVersion: v1.8.0
components:
- name: karavi-authorization-proxy
image: dellemc/csm-authorization-sidecar:v1.8.0
envs:
# proxyHost: hostname of the csm-authorization server
- name: "PROXY_HOST"
value: "csm-authorization.com"
# skipCertificateValidation: Enable/Disable certificate validation of the csm-authorization server
- name: "SKIP_CERTIFICATE_VALIDATION"
value: "true"
# Replication: allows configuring replication module
# Replication CRDs must be installed before installing driver
- name: replication
# enabled: Enable/Disable replication feature
# Allowed values:
# true: enable replication feature(install dell-csi-replicator sidecar)
# false: disable replication feature(do not install dell-csi-replicator sidecar)
# Default value: false
enabled: false
configVersion: v1.6.0
components:
- name: dell-csi-replicator
# image: Image to use for dell-csi-replicator. This shouldn't be changed
# Allowed values: string
# Default value: None
image: dellemc/dell-csi-replicator:v1.6.0
envs:
# replicationPrefix: prefix to prepend to storage classes parameters
# Allowed values: string
# Default value: replication.storage.dell.com
- name: "X_CSI_REPLICATION_PREFIX"
value: "replication.storage.dell.com"
# replicationContextPrefix: prefix to use for naming of resources created by replication feature
# Allowed values: string
# Default value: powermax
- name: "X_CSI_REPLICATION_CONTEXT_PREFIX"
value: "powermax"
- name: dell-replication-controller-manager
# image: Defines controller image. This shouldn't be changed
# Allowed values: string
image: dellemc/dell-replication-controller:v1.6.0
envs:
# TARGET_CLUSTERS_IDS: comma separated list of cluster IDs of the targets clusters. DO NOT include the source(wherever CSM Operator is deployed) cluster ID
# Set the value to "self" in case of stretched/single cluster configuration
# Allowed values: string
- name: "TARGET_CLUSTERS_IDS"
value: "target-cluster-1"
# Replication log level
# Allowed values: "error", "warn"/"warning", "info", "debug"
# Default value: "debug"
- name: "REPLICATION_CTRL_LOG_LEVEL"
value: "debug"
# replicas: Defines number of controller replicas
# Allowed values: int
# Default value: 1
- name: "REPLICATION_CTRL_REPLICAS"
value: "1"
# retryIntervalMin: Initial retry interval of failed reconcile request.
# It doubles with each failure, upto retry-interval-max
# Allowed values: time
- name: "RETRY_INTERVAL_MIN"
value: "1s"
# RETRY_INTERVAL_MAX: Maximum retry interval of failed reconcile request
# Allowed values: time
- name: "RETRY_INTERVAL_MAX"
value: "5m"
# observability: allows to configure observability
- name: observability
# enabled: Enable/Disable observability
enabled: false
configVersion: v1.6.0
components:
- name: topology
# enabled: Enable/Disable topology
enabled: false
# image: Defines karavi-topology image. This shouldn't be changed
# Allowed values: string
image: dellemc/csm-topology:v1.6.0
envs:
# topology log level
# Valid values: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, PANIC
# Default value: "INFO"
- name: "TOPOLOGY_LOG_LEVEL"
value: "INFO"
- name: otel-collector
# enabled: Enable/Disable OpenTelemetry Collector
enabled: false
# image: Defines otel-collector image. This shouldn't be changed
# Allowed values: string
image: otel/opentelemetry-collector:0.42.0
envs:
# image of nginx proxy image
# Allowed values: string
# Default value: "nginxinc/nginx-unprivileged:1.20"
- name: "NGINX_PROXY_IMAGE"
value: "nginxinc/nginx-unprivileged:1.20"
- name: cert-manager
# enabled: Enable/Disable cert-manager
# Allowed values:
# true: enable deployment of cert-manager
# false: disable deployment of cert-manager only if it's already deployed
# Default value: false
enabled: false
- name: metrics-powermax
# enabled: Enable/Disable PowerMax metrics
enabled: false
# image: Defines PowerMax metrics image. This shouldn't be changed
image: dellemc/csm-metrics-powermax:v1.1.0
envs:
# POWERMAX_MAX_CONCURRENT_QUERIES: set the default max concurrent queries to PowerMax
# Allowed values: int
# Default value: 10
- name: "POWERMAX_MAX_CONCURRENT_QUERIES"
value: "10"
# POWERMAX_CAPACITY_METRICS_ENABLED: enable/disable collection of capacity metrics
# Allowed values: ture, false
# Default value: true
- name: "POWERMAX_CAPACITY_METRICS_ENABLED"
value: "true"
# POWERMAX_PERFORMANCE_METRICS_ENABLED: enable/disable collection of volume performance metrics
# Allowed values: ture, false
# Default value: true
- name: "POWERMAX_PERFORMANCE_METRICS_ENABLED"
value: "true"
# POWERMAX_CAPACITY_POLL_FREQUENCY: set polling frequency to get capacity metrics data
# Allowed values: int
# Default value: 10
- name: "POWERMAX_CAPACITY_POLL_FREQUENCY"
value: "10"
# POWERMAX_PERFORMANCE_POLL_FREQUENCY: set polling frequency to get volume performance data
# Allowed values: int
# Default value: 10
- name: "POWERMAX_PERFORMANCE_POLL_FREQUENCY"
value: "10"
# PowerMax metrics log level
# Valid values: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, PANIC
# Default value: "INFO"
- name: "POWERMAX_LOG_LEVEL"
value: "INFO"
# PowerMax Metrics Output logs in the specified format
# Valid values: TEXT, JSON
# Default value: "TEXT"
- name: "POWERMAX_LOG_FORMAT"
value: "TEXT"
# otel collector address
# Allowed values: String
# Default value: "otel-collector:55680"
- name: "COLLECTOR_ADDRESS"
value: "otel-collector:55680"
# configMap name which has all array/endpoint related info
- name: "X_CSI_CONFIG_MAP_NAME"
value: "powermax-reverseproxy-config"