minio, velero y tal
This commit is contained in:
5
seagate/seagate-exos-x-csi/templates/NOTES.txt
Normal file
5
seagate/seagate-exos-x-csi/templates/NOTES.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
Thank you for using Seagate Exos X provisioner. It will be up and running shortly.
|
||||
Run 'kubectl get pods' to verify that the new pods have a 'STATUS' of 'Running'.
|
||||
|
||||
In order to dynamically provide a persistant volume, create a storage class first.
|
||||
Please refer to this example to do so: https://github.com/Seagate/seagate-exos-x-csi/blob/main/example/storage-class.yaml
|
||||
10
seagate/seagate-exos-x-csi/templates/_helpers.tpl
Normal file
10
seagate/seagate-exos-x-csi/templates/_helpers.tpl
Normal file
@@ -0,0 +1,10 @@
|
||||
{{- define "csidriver.labels" -}}
|
||||
app.kubernetes.io/name: {{ .Chart.Name | kebabcase }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "csidriver.extraArgs" -}}
|
||||
{{- range .extraArgs }}
|
||||
- {{ toYaml . }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
126
seagate/seagate-exos-x-csi/templates/daemonset.yaml
Normal file
126
seagate/seagate-exos-x-csi/templates/daemonset.yaml
Normal file
@@ -0,0 +1,126 @@
|
||||
apiVersion: apps/v1
|
||||
kind: DaemonSet
|
||||
metadata:
|
||||
name: seagate-exos-x-csi-node-server
|
||||
labels:
|
||||
app.kubernetes.io/version: {{ .Chart.Version }}
|
||||
app.kubernetes.io/component: dynamic-provisionning-node
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
name: seagate-exos-x-csi-node-server
|
||||
{{ include "csidriver.labels" . | indent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
name: seagate-exos-x-csi-node-server
|
||||
{{ include "csidriver.labels" . | indent 8 }}
|
||||
spec:
|
||||
hostNetwork: true
|
||||
hostIPC: true
|
||||
{{ if .Values.pspAdmissionControllerEnabled }}serviceAccount: csi-node-registrar{{ end }}
|
||||
{{- if .Values.nodeServer.nodeAffinity }}
|
||||
affinity:
|
||||
nodeAffinity:
|
||||
{{ toYaml .Values.nodeServer.nodeAffinity | indent 10 }}
|
||||
{{- end }}
|
||||
{{- if .Values.nodeServer.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml .Values.nodeServer.nodeSelector | indent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: seagate-exos-x-csi-node
|
||||
image: {{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}
|
||||
command:
|
||||
- seagate-exos-x-csi-node
|
||||
- -bind=unix://{{ .Values.kubeletPath }}/plugins/csi-exos-x.seagate.com/csi.sock
|
||||
- -chroot=/host
|
||||
{{- include "csidriver.extraArgs" .Values.node | indent 10 }}
|
||||
env:
|
||||
- name: CSI_NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: CSI_NODE_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIP
|
||||
- name: CSI_NODE_SERVICE_PORT
|
||||
value: "978"
|
||||
securityContext:
|
||||
privileged: true
|
||||
volumeMounts:
|
||||
- name: plugin-dir
|
||||
mountPath: {{ .Values.kubeletPath }}/plugins/csi-exos-x.seagate.com
|
||||
- name: mountpoint-dir
|
||||
mountPath: {{ .Values.kubeletPath }}/pods
|
||||
mountPropagation: Bidirectional
|
||||
- name: san-iscsi-csi-run-dir
|
||||
mountPath: /var/run/csi-exos-x.seagate.com
|
||||
- name: device-dir
|
||||
mountPath: /dev
|
||||
- name: iscsi-dir
|
||||
mountPath: /etc/iscsi
|
||||
- name: host
|
||||
mountPath: /host
|
||||
mountPropagation: Bidirectional
|
||||
ports:
|
||||
- containerPort: 9808
|
||||
name: healthz
|
||||
protocol: TCP
|
||||
- containerPort: 9842
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: healthz
|
||||
periodSeconds: 60
|
||||
- name: liveness-probe
|
||||
image: {{.Values.nodeLivenessProbe.image.repository }}:{{ .Values.nodeLivenessProbe.image.tag }}
|
||||
args:
|
||||
- --csi-address=/csi/csi.sock
|
||||
{{- include "csidriver.extraArgs" .Values.nodeLivenessProbe | indent 10 }}
|
||||
volumeMounts:
|
||||
- name: plugin-dir
|
||||
mountPath: /csi
|
||||
- name: driver-registrar
|
||||
image: {{ .Values.csiNodeRegistrar.image.repository }}:{{ .Values.csiNodeRegistrar.image.tag }}
|
||||
args:
|
||||
- --csi-address=/csi/csi.sock
|
||||
- --kubelet-registration-path={{ .Values.kubeletPath }}/plugins/csi-exos-x.seagate.com/csi.sock
|
||||
{{- include "csidriver.extraArgs" .Values.csiNodeRegistrar | indent 10 }}
|
||||
volumeMounts:
|
||||
- name: plugin-dir
|
||||
mountPath: /csi
|
||||
- name: registration-dir
|
||||
mountPath: /registration
|
||||
{{- if .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{ toYaml .Values.imagePullSecrets | indent 8 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: registration-dir
|
||||
hostPath:
|
||||
path: {{ .Values.kubeletPath }}/plugins_registry/
|
||||
- name: mountpoint-dir
|
||||
hostPath:
|
||||
path: {{ .Values.kubeletPath }}/pods
|
||||
- name: plugin-dir
|
||||
hostPath:
|
||||
path: {{ .Values.kubeletPath }}/plugins/csi-exos-x.seagate.com
|
||||
type: DirectoryOrCreate
|
||||
- name: iscsi-dir
|
||||
hostPath:
|
||||
path: /etc/iscsi
|
||||
- name: device-dir
|
||||
hostPath:
|
||||
path: /dev
|
||||
- name: san-iscsi-csi-run-dir
|
||||
hostPath:
|
||||
path: /var/run/csi-exos-x.seagate.com
|
||||
- name: host
|
||||
hostPath:
|
||||
path: /
|
||||
94
seagate/seagate-exos-x-csi/templates/deployment.yaml
Normal file
94
seagate/seagate-exos-x-csi/templates/deployment.yaml
Normal file
@@ -0,0 +1,94 @@
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: seagate-exos-x-csi-controller-server
|
||||
labels:
|
||||
app.kubernetes.io/version: {{ .Chart.Version }}
|
||||
app.kubernetes.io/component: dynamic-provisionning-controller
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
|
||||
spec:
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app: seagate-exos-x-csi-controller-server
|
||||
{{ include "csidriver.labels" . | indent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: seagate-exos-x-csi-controller-server
|
||||
{{ include "csidriver.labels" . | indent 8 }}
|
||||
spec:
|
||||
serviceAccount: csi-provisioner
|
||||
containers:
|
||||
- name: seagate-exos-x-csi-controller
|
||||
image: {{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}
|
||||
command:
|
||||
- seagate-exos-x-csi-controller
|
||||
- -bind=unix:///csi/csi.sock
|
||||
{{- include "csidriver.extraArgs" .Values.controller | indent 10 }}
|
||||
env:
|
||||
- name: CSI_NODE_SERVICE_PORT
|
||||
value: "978"
|
||||
volumeMounts:
|
||||
- name: socket-dir
|
||||
mountPath: /csi
|
||||
- name: csi-run-dir
|
||||
mountPath: /var/run/csi-exos-x.seagate.com
|
||||
ports:
|
||||
- containerPort: 9842
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
- name: csi-provisioner
|
||||
image: {{ .Values.csiProvisioner.image.repository }}:{{ .Values.csiProvisioner.image.tag }}
|
||||
args:
|
||||
- --csi-address=/csi/csi.sock
|
||||
- --worker-threads=1
|
||||
- --timeout={{ .Values.csiProvisioner.timeout }}
|
||||
{{- include "csidriver.extraArgs" .Values.csiProvisioner | indent 10 }}
|
||||
imagePullPolicy: IfNotPresent
|
||||
volumeMounts:
|
||||
- name: socket-dir
|
||||
mountPath: /csi
|
||||
- name: csi-attacher
|
||||
image: {{ .Values.csiAttacher.image.repository }}:{{ .Values.csiAttacher.image.tag }}
|
||||
args:
|
||||
- --csi-address=/csi/csi.sock
|
||||
- --worker-threads=1
|
||||
- --timeout={{ .Values.csiAttacher.timeout }}
|
||||
{{- include "csidriver.extraArgs" .Values.csiAttacher | indent 10 }}
|
||||
imagePullPolicy: IfNotPresent
|
||||
volumeMounts:
|
||||
- name: socket-dir
|
||||
mountPath: /csi
|
||||
- name: csi-resizer
|
||||
image: {{ .Values.csiResizer.image.repository }}:{{ .Values.csiResizer.image.tag }}
|
||||
args:
|
||||
- --csi-address=/csi/csi.sock
|
||||
{{- include "csidriver.extraArgs" .Values.csiResizer | indent 10 }}
|
||||
imagePullPolicy: IfNotPresent
|
||||
volumeMounts:
|
||||
- name: socket-dir
|
||||
mountPath: /csi
|
||||
- name: csi-snapshotter
|
||||
image: {{ .Values.csiSnapshotter.image.repository }}:{{ .Values.csiSnapshotter.image.tag }}
|
||||
args:
|
||||
- --csi-address=/csi/csi.sock
|
||||
{{- include "csidriver.extraArgs" .Values.csiSnapshotter | indent 10 }}
|
||||
imagePullPolicy: IfNotPresent
|
||||
volumeMounts:
|
||||
- name: socket-dir
|
||||
mountPath: /csi
|
||||
{{- if .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{ toYaml .Values.imagePullSecrets | indent 8 }}
|
||||
{{- end }}
|
||||
volumes:
|
||||
- name: socket-dir
|
||||
emptyDir:
|
||||
medium: Memory
|
||||
- name: csi-run-dir
|
||||
hostPath:
|
||||
path: /var/run/csi-exos-x.seagate.com
|
||||
14
seagate/seagate-exos-x-csi/templates/podmonitor.yaml
Normal file
14
seagate/seagate-exos-x-csi/templates/podmonitor.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
{{- if .Values.podMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: PodMonitor
|
||||
metadata:
|
||||
name: seagate-exos-x-csi-node-exporter
|
||||
labels:
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
name: seagate-exos-x-csi-node-server
|
||||
podMetricsEndpoints:
|
||||
- port: metrics
|
||||
{{- end }}
|
||||
26
seagate/seagate-exos-x-csi/templates/psp.yaml
Normal file
26
seagate/seagate-exos-x-csi/templates/psp.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
{{- if .Values.pspAdmissionControllerEnabled -}}
|
||||
apiVersion: policy/v1beta1
|
||||
kind: PodSecurityPolicy
|
||||
metadata:
|
||||
name: seagate-exos-x-csi
|
||||
spec:
|
||||
privileged: true
|
||||
hostNetwork: true
|
||||
hostIPC: true
|
||||
hostPID: true
|
||||
seLinux:
|
||||
rule: RunAsAny
|
||||
supplementalGroups:
|
||||
rule: RunAsAny
|
||||
runAsUser:
|
||||
rule: RunAsAny
|
||||
fsGroup:
|
||||
rule: RunAsAny
|
||||
hostPorts:
|
||||
- min: 0
|
||||
max: 65535
|
||||
volumes:
|
||||
- '*'
|
||||
allowedCapabilities:
|
||||
- '*'
|
||||
{{ end }}
|
||||
166
seagate/seagate-exos-x-csi/templates/rbac.yaml
Normal file
166
seagate/seagate-exos-x-csi/templates/rbac.yaml
Normal file
@@ -0,0 +1,166 @@
|
||||
# This YAML file contains all RBAC objects that are necessary to run external
|
||||
# CSI provisioner.
|
||||
#
|
||||
# In production, each CSI driver deployment has to be customized:
|
||||
# - to avoid conflicts, use non-default namespace and different names
|
||||
# for non-namespaced entities like the ClusterRole
|
||||
# - decide whether the deployment replicates the external CSI
|
||||
# provisioner, in which case leadership election must be enabled;
|
||||
# this influences the RBAC setup, see below
|
||||
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: csi-provisioner
|
||||
labels:
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
|
||||
---
|
||||
kind: ClusterRole
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: external-provisioner-runner-systems
|
||||
labels:
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets"]
|
||||
verbs: ["get", "list"]
|
||||
- apiGroups: [""]
|
||||
resources: ["persistentvolumes"]
|
||||
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
|
||||
- apiGroups: [""]
|
||||
resources: ["persistentvolumeclaims"]
|
||||
verbs: ["get", "list", "watch", "update"]
|
||||
- apiGroups: [""]
|
||||
resources: ["persistentvolumeclaims/status"]
|
||||
verbs: ["update", "patch"]
|
||||
- apiGroups: ["storage.k8s.io"]
|
||||
resources: ["storageclasses"]
|
||||
verbs: ["get", "list", "watch"]
|
||||
- apiGroups: [""]
|
||||
resources: ["events"]
|
||||
verbs: ["list", "watch", "create", "update", "patch"]
|
||||
- apiGroups: ["snapshot.storage.k8s.io"]
|
||||
resources: ["volumesnapshots"]
|
||||
verbs: ["get", "list"]
|
||||
- apiGroups: ["snapshot.storage.k8s.io"]
|
||||
resources: ["volumesnapshotclasses"]
|
||||
verbs: ["get", "list", "watch"]
|
||||
- apiGroups: ["snapshot.storage.k8s.io"]
|
||||
resources: ["volumesnapshotcontents"]
|
||||
verbs: ["create", "get", "list", "watch", "update", "delete"]
|
||||
- apiGroups: ["snapshot.storage.k8s.io"]
|
||||
resources: ["volumesnapshotcontents/status"]
|
||||
verbs: ["update"]
|
||||
- apiGroups: ["storage.k8s.io"]
|
||||
resources: ["csinodes"]
|
||||
verbs: ["get", "list", "watch"]
|
||||
- apiGroups: [""]
|
||||
resources: ["nodes"]
|
||||
verbs: ["get", "list", "watch"]
|
||||
- apiGroups: ["storage.k8s.io"]
|
||||
resources: ["volumeattachments"]
|
||||
verbs: ["get", "list", "watch", "update", "patch"]
|
||||
- apiGroups: ["storage.k8s.io"]
|
||||
resources: ["volumeattachments/status"]
|
||||
verbs: ["get", "list", "watch", "update", "patch"]
|
||||
- apiGroups: [""]
|
||||
resources: ["pods"]
|
||||
verbs: ["get", "list", "watch"]
|
||||
|
||||
---
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: csi-provisioner-role-systems
|
||||
labels:
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: csi-provisioner
|
||||
namespace: {{ .Release.Namespace }}
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: external-provisioner-runner-systems
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
||||
---
|
||||
# Provisioner must be able to work with endpoints in current namespace
|
||||
# if (and only if) leadership election is enabled
|
||||
kind: Role
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: external-provisioner-cfg-systems
|
||||
labels:
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
rules:
|
||||
# Only one of the following rules for endpoints or leases is required based on
|
||||
# what is set for `--leader-election-type`. Endpoints are deprecated in favor of Leases.
|
||||
- apiGroups: [""]
|
||||
resources: ["endpoints"]
|
||||
verbs: ["get", "watch", "list", "delete", "update", "create"]
|
||||
- apiGroups: ["coordination.k8s.io"]
|
||||
resources: ["leases"]
|
||||
verbs: ["get", "watch", "list", "delete", "update", "create"]
|
||||
{{ if .Values.pspAdmissionControllerEnabled }}
|
||||
- apiGroups: ["policy"]
|
||||
resources: ["podsecuritypolicies"]
|
||||
verbs: ["use"]
|
||||
resourceNames:
|
||||
- seagate-exos-x-csi
|
||||
{{ end }}
|
||||
|
||||
---
|
||||
kind: RoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: csi-provisioner-role-cfg-systems
|
||||
labels:
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: csi-provisioner
|
||||
roleRef:
|
||||
kind: Role
|
||||
name: external-provisioner-cfg-systems
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
||||
{{ if .Values.pspAdmissionControllerEnabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: csi-node-registrar
|
||||
labels:
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
|
||||
---
|
||||
kind: Role
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: csi-node-registrar-cfg-systems
|
||||
labels:
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
rules:
|
||||
- apiGroups: ["policy"]
|
||||
resources: ["podsecuritypolicies"]
|
||||
verbs: ["use"]
|
||||
resourceNames:
|
||||
- systems-role
|
||||
|
||||
---
|
||||
kind: RoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: csi-node-registrar-role-cfg-systems
|
||||
labels:
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: csi-node-registrar
|
||||
roleRef:
|
||||
kind: Role
|
||||
name: csi-node-registrar-cfg-systems
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
{{ end }}
|
||||
31
seagate/seagate-exos-x-csi/templates/servicemonitor.yaml
Normal file
31
seagate/seagate-exos-x-csi/templates/servicemonitor.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
{{- if .Values.serviceMonitor.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: systems-controller-metrics
|
||||
labels:
|
||||
name: systems-controller-metrics
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
spec:
|
||||
ports:
|
||||
- name: metrics
|
||||
port: 9842
|
||||
targetPort: metrics
|
||||
protocol: TCP
|
||||
selector:
|
||||
app: seagate-exos-x-csi-controller-server
|
||||
---
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: seagate-exos-x-csi-controller-exporter
|
||||
labels:
|
||||
{{ include "csidriver.labels" . | indent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
name: systems-controller-metrics
|
||||
endpoints:
|
||||
- port: metrics
|
||||
interval: 1s
|
||||
{{- end }}
|
||||
Reference in New Issue
Block a user