Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
298 changes: 298 additions & 0 deletions operatorconfig/driverconfig/powerflex/v2.15.2/controller.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,298 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: <DriverDefaultReleaseName>-controller
namespace: <DriverDefaultReleaseNamespace>
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: <DriverDefaultReleaseName>-controller
rules:
- apiGroups: [""]
resources: ["events"]
verbs: ["list", "watch", "create", "update", "patch"]
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "delete", "patch", "update"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "watch", "update"]
- apiGroups: [""]
resources: ["persistentvolumeclaims/status"]
verbs: ["patch"]
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get", "list", "watch"]
- apiGroups: ["storage.k8s.io"]
resources: ["volumeattachments"]
verbs: ["get", "list", "watch", "patch"]
- apiGroups: ["storage.k8s.io"]
resources: ["csinodes"]
verbs: ["get", "list", "watch", "update"]
- apiGroups: ["storage.k8s.io"]
resources: ["volumeattachments/status"]
verbs: ["patch"]
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
# below for snapshotter
- apiGroups: ["snapshot.storage.k8s.io"]
resources: ["volumesnapshotclasses"]
verbs: ["get", "list", "watch"]
- apiGroups: ["snapshot.storage.k8s.io"]
resources: ["volumesnapshotcontents"]
verbs: ["get", "list", "watch", "patch"]
- apiGroups: ["snapshot.storage.k8s.io"]
resources: ["volumesnapshots"]
verbs: ["get", "list", "watch", "update", "create", "delete"]
- apiGroups: ["snapshot.storage.k8s.io"]
resources: ["volumesnapshots/status", "volumesnapshotcontents/status"]
verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
verbs: ["create", "list", "watch", "delete"]
# Permissions for CSIStorageCapacity
- apiGroups: ["storage.k8s.io"]
resources: ["csistoragecapacities"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
# Permissions for ReplicationReplicator
- apiGroups: [""]
resources: ["namespaces"]
verbs: ["create", "get", "list", "watch"]
# Permissions for configmaps needed by NFS without SDC
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["create", "delete", "get", "list", "watch", "update", "patch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: <DriverDefaultReleaseName>-controller
subjects:
- kind: ServiceAccount
name: <DriverDefaultReleaseName>-controller
namespace: <DriverDefaultReleaseNamespace>
roleRef:
kind: ClusterRole
name: <DriverDefaultReleaseName>-controller
apiGroup: rbac.authorization.k8s.io
---
# Role for Driver-specific Permissions in a Namespace
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: <DriverDefaultReleaseName>-controller
namespace: <DriverDefaultReleaseNamespace>
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["update", "patch"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get", "list"]
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
verbs: ["get", "watch", "list", "delete", "update", "create"]
- apiGroups: ["apps"]
resources: ["replicasets"]
verbs: ["get"]
---
# RoleBinding for Driver-specific Role
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: <DriverDefaultReleaseName>-controller
namespace: <DriverDefaultReleaseNamespace>
subjects:
- kind: ServiceAccount
name: <DriverDefaultReleaseName>-controller
namespace: <DriverDefaultReleaseNamespace>
roleRef:
kind: Role
name: <DriverDefaultReleaseName>-controller
apiGroup: rbac.authorization.k8s.io
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: <DriverDefaultReleaseName>-controller
namespace: <DriverDefaultReleaseNamespace>
annotations:
com.dell.karavi-authorization-proxy: "true"
spec:
strategy:
rollingUpdate:
maxUnavailable: 1
selector:
matchLabels:
name: <DriverDefaultReleaseName>-controller
replicas: 2
template:
metadata:
labels:
name: <DriverDefaultReleaseName>-controller
csmNamespace: <CSM_NAMESPACE>
annotations:
kubectl.kubernetes.io/default-container: driver
spec:
affinity:
nodeSelector:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: name
operator: In
values:
- <DriverDefaultReleaseName>-controller
topologyKey: kubernetes.io/hostname
serviceAccountName: <DriverDefaultReleaseName>-controller
containers:
- name: attacher
image: registry.k8s.io/sig-storage/csi-attacher:v4.9.0
imagePullPolicy: IfNotPresent
args:
- "--csi-address=$(ADDRESS)"
- "--v=5"
- "--leader-election=true"
env:
- name: ADDRESS
value: /var/run/csi/csi.sock
volumeMounts:
- name: socket-dir
mountPath: /var/run/csi
- name: provisioner
image: registry.k8s.io/sig-storage/csi-provisioner:v5.3.0
imagePullPolicy: IfNotPresent
args:
- "--csi-address=$(ADDRESS)"
- "--feature-gates=Topology=true"
- "--volume-name-prefix=csivol"
- "--volume-name-uuid-length=10"
- "--leader-election=true"
- "--timeout=120s"
- "--v=5"
- "--default-fstype=ext4"
- "--extra-create-metadata"
- "--enable-capacity=true"
- "--capacity-ownerref-level=2"
- "--capacity-poll-interval=5m"
env:
- name: ADDRESS
value: /var/run/csi/csi.sock
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
volumeMounts:
- name: socket-dir
mountPath: /var/run/csi
- name: csi-external-health-monitor-controller
image: registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.15.0
imagePullPolicy: IfNotPresent
args:
- "--csi-address=$(ADDRESS)"
- "--v=5"
- "--leader-election=true"
- "--enable-node-watcher=true"
- "--http-endpoint=:8080"
- "--monitor-interval=60s"
- "--timeout=180s"
env:
- name: ADDRESS
value: /var/run/csi/csi.sock
volumeMounts:
- name: socket-dir
mountPath: /var/run/csi
- name: snapshotter
image: registry.k8s.io/sig-storage/csi-snapshotter:v8.3.0
imagePullPolicy: IfNotPresent
args:
- "--csi-address=$(ADDRESS)"
- "--timeout=120s"
- "--v=5"
- "--leader-election=true"
env:
- name: ADDRESS
value: /var/run/csi/csi.sock
volumeMounts:
- name: socket-dir
mountPath: /var/run/csi
- name: resizer
image: registry.k8s.io/sig-storage/csi-resizer:v1.14.0
imagePullPolicy: IfNotPresent
args:
- "--csi-address=$(ADDRESS)"
- "--v=5"
- "--leader-election=true"
env:
- name: ADDRESS
value: /var/run/csi/csi.sock
volumeMounts:
- name: socket-dir
mountPath: /var/run/csi
- name: driver
image: quay.io/dell/container-storage-modules/csi-vxflexos:v2.15.2
imagePullPolicy: IfNotPresent
command: ["/csi-vxflexos.sh"]
args:
- "--array-config=/vxflexos-config/config"
- "--driver-config-params=/vxflexos-config-params/driver-config-params.yaml"
env:
- name: CSI_ENDPOINT
value: /var/run/csi/csi.sock
- name: X_CSI_MODE
value: controller
- name: X_CSI_VXFLEXOS_ENABLESNAPSHOTCGDELETE
value: false
- name: X_CSI_VXFLEXOS_ENABLELISTVOLUMESNAPSHOT
value: false
- name: SSL_CERT_DIR
value: /certs
- name: X_CSI_HEALTH_MONITOR_ENABLED
value: "<X_CSI_HEALTH_MONITOR_ENABLED>"
- name: X_CSI_QUOTA_ENABLED
value: <X_CSI_QUOTA_ENABLED>
- name: X_CSI_POWERFLEX_EXTERNAL_ACCESS
value: <X_CSI_POWERFLEX_EXTERNAL_ACCESS>
- name: GOSCALEIO_DEBUG
value: <GOSCALEIO_DEBUG>
- name: GOSCALEIO_SHOWHTTP
value: <GOSCALEIO_SHOWHTTP>
- name: X_CSI_PROBE_TIMEOUT
value: <X_CSI_PROBE_TIMEOUT>
volumeMounts:
- name: socket-dir
mountPath: /var/run/csi
- name: vxflexos-config
mountPath: /vxflexos-config
- name: vxflexos-config-params
mountPath: /vxflexos-config-params
- name: certs
mountPath: /certs
readOnly: true
volumes:
- name: socket-dir
emptyDir:
- name: vxflexos-config
secret:
secretName: <DriverDefaultReleaseName>-config
- name: vxflexos-config-params
configMap:
name: <DriverDefaultReleaseName>-config-params
- name: certs
projected:
sources:
- secret:
name: <DriverDefaultReleaseName>-certs-0
items:
- key: cert-0
path: cert-0
14 changes: 14 additions & 0 deletions operatorconfig/driverconfig/powerflex/v2.15.2/csidriver.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
name: csi-vxflexos.dellemc.com
labels:
security.openshift.io/csi-ephemeral-volume-profile: restricted
spec:
fsGroupPolicy: ReadWriteOnceWithFSType
attachRequired: true
podInfoOnMount: true
storageCapacity: false
volumeLifecycleModes:
- Persistent
- Ephemeral
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: <DriverDefaultReleaseName>-config-params
namespace: <DriverDefaultReleaseNamespace>
data:
driver-config-params.yaml: |-
CSI_LOG_LEVEL: "info"
CSI_LOG_FORMAT: "TEXT"
PODMON_CONTROLLER_LOG_LEVEL: "debug"
PODMON_CONTROLLER_LOG_FORMAT: "TEXT"
PODMON_NODE_LOG_LEVEL: "debug"
PODMON_NODE_LOG_FORMAT: "TEXT"
Loading