Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Powerstore, Powermax and their supported modules chart changes for CSM installation Wizard #174

Merged
merged 8 commits into from
Feb 21, 2023
10 changes: 5 additions & 5 deletions charts/container-storage-modules/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ dependencies:
condition: csm-replication.enabled

- name: karavi-observability
version: 1.4.0
version: 1.5.0
repository: file://../karavi-observability
condition: karavi-observability.enabled

Expand All @@ -69,7 +69,7 @@ dependencies:
repository: file://../csm-authorization
condition: csm-authorization.enabled

#- name: csi-powermax
#version: 2.5.0
#repository: file://../csi-powermax
#condition: csi-powermax.enabled
- name: csi-powermax
version: 2.5.0
repository: file://../csi-powermax
condition: csi-powermax.enabled
134 changes: 120 additions & 14 deletions charts/container-storage-modules/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,26 +23,80 @@ csi-powerstore:
driverRepository: dellemc
## Controller ATTRIBUTES
controller:
controllerCount: 1
controllerCount: 2
healthMonitor:
enabled: false
nodeSelector:
replication:
enabled: false
image: dellemc/dell-csi-replicator:v1.3.0
image: dellemc/dell-csi-replicator:v1.4.0
vgsnapshot:
enabled: false
image: dellemc/csi-volumegroup-snapshotter:v1.1.0
snapshot:
enabled: false
enabled: true
resizer:
enabled: false
enabled: true
## Node ATTRIBUTES
node:
healthMonitor:
enabled: false
nodeSelector:

# Uncomment if CSM for Resiliency and CSI Driver pods monitor are enabled
# tolerations:
# - key: "offline.vxflexos.storage.dell.com"
# operator: "Exists"
# effect: "NoSchedule"
# - key: "vxflexos.podmon.storage.dell.com"
# operator: "Exists"
# effect: "NoSchedule"
# - key: "offline.unity.storage.dell.com"
# operator: "Exists"
# effect: "NoSchedule"
# - key: "unity.podmon.storage.dell.com"
# operator: "Exists"
# effect: "NoSchedule"
# - key: "offline.isilon.storage.dell.com"
# operator: "Exists"
# effect: "NoSchedule"
# - key: "isilon.podmon.storage.dell.com"
# operator: "Exists"
# effect: "NoSchedule"
# - key: "offline.powerstore.storage.dell.com"
# operator: "Exists"
# effect: "NoSchedule"
# - key: "powerstore.podmon.storage.dell.com"
# operator: "Exists"
# effect: "NoSchedule"
storageCapacity:
enabled: true
# Enable this feature only after contact support for additional information
podmon:
enabled: false
image: dellemc/podmon:v1.4.0
controller:
args:
- "--csisock=unix:/var/run/csi/csi.sock"
- "--labelvalue=csi-powerstore"
- "--arrayConnectivityPollRate=60"
- "--driverPath=csi-powerstore.dellemc.com"
- "--mode=controller"
- "--skipArrayConnectionValidation=false"
- "--driver-config-params=/powerstore-config-params/driver-config-params.yaml"
- "--driverPodLabelValue=dell-storage"
- "--ignoreVolumelessPods=false"
node:
args:
- "--csisock=unix:/var/lib/kubelet/plugins/csi-powerstore.dellemc.com/csi_sock"
- "--labelvalue=csi-powerstore"
- "--arrayConnectivityPollRate=60"
- "--driverPath=csi-powerstore.dellemc.com"
- "--mode=node"
- "--leaderelection=false"
- "--driver-config-params=/powerstore-config-params/driver-config-params.yaml"
- "--driverPodLabelValue=dell-storage"
- "--ignoreVolumelessPods=false"

## K8S/Replication Module ATTRIBUTES
##########################################
csm-replication:
Expand All @@ -60,20 +114,21 @@ karavi-observability:
enabled: false
karaviMetricsPowerscale:
enabled: false
karaviMetricsPowermax:
enabled: false
cert-manager:
enabled: false

## K8S/Application-mobility Module ATTRIBUTES
##########################################
csm-application-mobility:
enabled: false
namespace:

namespace:
# csm-application-mobility requires velero. If velero is already installed on the cluster, specify the namespace in which velero is deployed. Default value is "velero"
veleroNamespace: velero
# csm-application-mobility requires velero. If velero is not already present in cluster, set enabled to true to install it too.
velero:
enabled: false
enabled: true
credentials:
secretContents:
cloud: |
Expand Down Expand Up @@ -110,8 +165,9 @@ csm-authorization:
cert-manager:
enabled: false
redis:
namespace:
storageClass:
namespace:
# set the storageClass for redis to use. otherwise, the default storage class is used
# storageClass:

## K8S/Cert-manager ATTRIBUTES
##########################################
Expand All @@ -121,7 +177,57 @@ cert-manager:

## K8S/Powermax ATTRIBUTES
##########################################
#csi-powermax:
#enabled: false
#namespace:

csi-powermax:
enabled: false
namespace:
global:
storageArrays:
- storageArrayId: "000000000001"
endpoint: https://primary-1.unisphe.re:8443
backupEndpoint: https://backup-1.unisphe.re:8443
# - storageArrayId: "000000000002"
# endpoint: https://primary-2.unisphe.re:8443
# backupEndpoint: https://backup-2.unisphe.re:8443
managementServers:
- endpoint: https://primary-1.unisphe.re:8443
- endpoint: https://backup-1.unisphe.re:8443
# - endpoint: https://primary-2.unisphe.re:8443
# - endpoint: https://backup-2.unisphe.re:8443
version: "v2.5.0"
images:
driverRepository: "dellemc"
clusterPrefix: ABC
portGroups: PortGroup1, PortGroup2, PortGroup3
controller:
controllerCount: 2
snapshot:
enabled: true
resizer:
enabled: true
healthMonitor:
enabled: false
nodeSelector:
node:
healthMonitor:
enabled: false
nodeSelector:
csireverseproxy:
image: dellemc/csipowermax-reverseproxy:v2.4.0
deployAsSidecar: true
namespace:
replication:
enabled: false
image: dellemc/dell-csi-replicator:v1.3.0
migration:
enabled: false
image: dellemc/dell-csi-migrator:v1.0.0
authorization:
enabled: false
sidecarProxyImage: dellemc/csm-authorization-sidecar:v1.5.0
vSphere:
enabled: false
fcPortGroup: "csi-vsphere-VC-PG"
fcHostName: "csi-vsphere-VC-HN"
vCenterHost: "00.000.000.00"
vCenterUserName: "user"
vCenterPassword: "pwd"
28 changes: 28 additions & 0 deletions charts/csi-powermax/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
apiVersion: v1
name: csi-powermax
version: 2.5.0
appVersion: "2.5.0"
kubeVersion: ">= 1.23.0 < 1.27.0"
#If you are using a complex K8s version like "v1.23.3-mirantis-1", use this kubeVersion check instead
#WARNING: this version of the check will allow the use of alpha and beta versions, which is NOT SUPPORTED
#kubeVersion: ">= 1.23.0-0 < 1.27.0-0"
description: |
PowerMax CSI (Container Storage Interface) driver Kubernetes
integration. This chart includes everything required to provision via CSI as
well as a PowerMax StorageClass.
keywords:
- csi
- storage
dependencies:
- name: csireverseproxy
version: 2.4.0
condition: required
home: https://github.com/dell/csi-powermax
icon: https://avatars1.githubusercontent.com/u/20958494?s=200&v=4
sources:
- https://github.com/dell/csi-powermax
maintainers:
- name: DellEMC
sources:
- https://github.com/dell/csi-powermax

9 changes: 9 additions & 0 deletions charts/csi-powermax/charts/csireverseproxy/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: v2
name: csireverseproxy
description: A Helm chart for CSI PowerMax ReverseProxy

type: application

version: 2.4.0

appVersion: 2.4.0
82 changes: 82 additions & 0 deletions charts/csi-powermax/charts/csireverseproxy/conf/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
mode: {{ .Values.mode }}
port: {{ .Values.port }}
logLevel: {{ .Values.global.logLevel | default "debug" }}
logFormat: {{ .Values.global.logFormat | default "TEXT" }}
{{- if eq .Values.mode "Linked" }}
linkConfig:
primary:
{{- $primary := first .Values.global.managementServers }}
url: {{ required "Must provide a primary Unisphere HTTPS endpoint." $primary.endpoint }}
{{- if $primary.certSecret }}
{{- $check := toString $primary.skipCertificateValidation }}
skipCertificateValidation: {{ ternary $primary.skipCertificateValidation true (or (eq $check "true") (eq $check "false")) }}
{{- else }}
skipCertificateValidation: true
{{- end }}
certSecret: {{ $primary.certSecret | default "" }}
{{- if $primary.limits }}
{{- $limits := $primary.limits }}
limits:
maxActiveRead: {{ $limits.maxActiveRead | default 0 }}
maxActiveWrite: {{ $limits.maxActiveWrite | default 0 }}
maxOutStandingRead: {{ $limits.maxOutStandingRead | default 0 }}
maxOutStandingWrite: {{ $limits.maxOutStandingWrite | default 0 }}
{{- end }}
{{- if first (rest .Values.global.managementServers) }}
{{- $backup := first (rest .Values.global.managementServers) }}
backup:
url: {{ required "Must provide a primary Unisphere HTTPS endpoint." $backup.endpoint }}
{{- if $backup.certSecret }}
{{- $check := toString $backup.skipCertificateValidation }}
skipCertificateValidation: {{ ternary $backup.skipCertificateValidation true (or (eq $check "true") (eq $check "false")) }}
{{- else }}
skipCertificateValidation: true
{{- end }}
certSecret: {{ $backup.certSecret | default "" }}
{{- if $backup.limits }}
{{- $limits := $backup.limits }}
limits:
maxActiveRead: {{ $limits.maxActiveRead | default 0 }}
maxActiveWrite: {{ $limits.maxActiveWrite | default 0 }}
maxOutStandingRead: {{ $limits.maxOutStandingRead | default 0 }}
maxOutStandingWrite: {{ $limits.maxOutStandingWrite | default 0 }}
{{- end }}
{{- end }}
{{- end }}
{{- if eq .Values.mode "StandAlone" }}
standAloneConfig:
{{- $defaultProxyCreds := .Values.global.defaultCredentialsSecret }}
storageArrays:
{{- $_ := first .Values.global.storageArrays }}
{{- range $index, $value := .Values.global.storageArrays }}
- storageArrayId: {{ required "Must provide a storage array id." $value.storageArrayId | toJson }}
primaryURL: {{ required "Must provide a primary Unisphere HTTPS endpoint." $value.endpoint }}
backupURL: {{ $value.backupEndpoint | default "" }}
proxyCredentialSecrets:
- {{ required "Must provide secret for proxy credentials" $defaultProxyCreds }}
{{- end }}
managementServers:
{{- $_ := first .Values.global.managementServers }}
{{- range $index, $value := .Values.global.managementServers }}
- url: {{required "Must provide a Unisphere HTTPS endpoint." $value.endpoint }}
{{- if empty $value.credentialsSecret }}
arrayCredentialSecret: {{ required "Must provide an array credential secret" $defaultProxyCreds }}
{{- else }}
arrayCredentialSecret: {{ required "Must provide an array credential secret" $value.credentialsSecret }}
{{- end }}
{{- if $value.certSecret }}
{{- $check := toString $value.skipCertificateValidation }}
skipCertificateValidation: {{ ternary $value.skipCertificateValidation true (or (eq $check "true") (eq $check "false")) }}
{{- else }}
skipCertificateValidation: true
{{- end }}
certSecret: {{ $value.certSecret | default "" }}
{{- if $value.limits }}
limits:
maxActiveRead: {{ $value.limits.maxActiveRead | default 0 }}
maxActiveWrite: {{ $value.limits.maxActiveWrite | default 0 }}
maxOutStandingRead: {{ $value.limits.maxOutStandingRead | default 0 }}
maxOutStandingWrite: {{ $value.limits.maxOutStandingWrite | default 0 }}
{{- end }}
{{- end }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-reverseproxy-config
namespace: {{ include "custom.namespace" . }}
data:
{{ tpl (.Files.Glob "conf/config.yaml").AsConfig . | indent 2 }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{{- if ne .Values.deployAsSidecar true }}
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ .Release.Name }}-reverseproxy
namespace: {{ include "custom.namespace" . }}
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["list", "watch", "get"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ .Release.Name }}-reverseproxy
namespace: {{ include "custom.namespace" . }}
subjects:
- kind: ServiceAccount
name: {{ .Release.Name }}-reverseproxy
namespace: {{ include "custom.namespace" . }}
roleRef:
kind: Role
name: {{ .Release.Name }}-reverseproxy
apiGroup: rbac.authorization.k8s.io
{{- end }}
Loading