148 lines
4.9 KiB
YAML
Executable File
148 lines
4.9 KiB
YAML
Executable File
{{- if .Values.ndm.enabled }}
|
|
apiVersion: apps/v1
|
|
kind: DaemonSet
|
|
metadata:
|
|
name: {{ template "openebs.fullname" . }}-ndm
|
|
labels:
|
|
app: {{ template "openebs.name" . }}
|
|
chart: {{ template "openebs.chart" . }}
|
|
release: {{ .Release.Name }}
|
|
heritage: {{ .Release.Service }}
|
|
component: ndm
|
|
openebs.io/component-name: ndm
|
|
openebs.io/version: {{ .Values.release.version }}
|
|
spec:
|
|
updateStrategy:
|
|
type: "RollingUpdate"
|
|
selector:
|
|
matchLabels:
|
|
app: {{ template "openebs.name" . }}
|
|
release: {{ .Release.Name }}
|
|
component: ndm
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: {{ template "openebs.name" . }}
|
|
release: {{ .Release.Name }}
|
|
component: ndm
|
|
openebs.io/component-name: ndm
|
|
name: openebs-ndm
|
|
openebs.io/version: {{ .Values.release.version }}
|
|
spec:
|
|
serviceAccountName: {{ template "openebs.serviceAccountName" . }}
|
|
hostNetwork: true
|
|
containers:
|
|
- name: {{ template "openebs.name" . }}-ndm
|
|
image: "{{ .Values.image.repository }}{{ .Values.ndm.image }}:{{ .Values.ndm.imageTag }}"
|
|
args:
|
|
- -v=4
|
|
{{- if .Values.featureGates.enabled }}
|
|
{{- if .Values.featureGates.GPTBasedUUID.enabled }}
|
|
- --feature-gates={{ .Values.featureGates.GPTBasedUUID.featureGateFlag }}
|
|
{{- end}}
|
|
{{- end}}
|
|
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
|
securityContext:
|
|
privileged: true
|
|
env:
|
|
# namespace in which NDM is installed will be passed to NDM Daemonset
|
|
# as environment variable
|
|
- name: NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
# pass hostname as env variable using downward API to the NDM container
|
|
- name: NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
{{- if .Values.ndm.sparse }}
|
|
{{- if .Values.ndm.sparse.path }}
|
|
# specify the directory where the sparse files need to be created.
|
|
# if not specified, then sparse files will not be created.
|
|
- name: SPARSE_FILE_DIR
|
|
value: "{{ .Values.ndm.sparse.path }}"
|
|
{{- end }}
|
|
{{- if .Values.ndm.sparse.size }}
|
|
# Size(bytes) of the sparse file to be created.
|
|
- name: SPARSE_FILE_SIZE
|
|
value: "{{ .Values.ndm.sparse.size }}"
|
|
{{- end }}
|
|
{{- if .Values.ndm.sparse.count }}
|
|
# Specify the number of sparse files to be created
|
|
- name: SPARSE_FILE_COUNT
|
|
value: "{{ .Values.ndm.sparse.count }}"
|
|
{{- end }}
|
|
{{- end }}
|
|
# Process name used for matching is limited to the 15 characters
|
|
# present in the pgrep output.
|
|
# So fullname can be used here with pgrep (cmd is < 15 chars).
|
|
livenessProbe:
|
|
exec:
|
|
command:
|
|
- pgrep
|
|
- "ndm"
|
|
initialDelaySeconds: {{ .Values.ndm.healthCheck.initialDelaySeconds }}
|
|
periodSeconds: {{ .Values.ndm.healthCheck.periodSeconds }}
|
|
volumeMounts:
|
|
- name: config
|
|
mountPath: /host/node-disk-manager.config
|
|
subPath: node-disk-manager.config
|
|
readOnly: true
|
|
- name: udev
|
|
mountPath: /run/udev
|
|
- name: procmount
|
|
mountPath: /host/proc
|
|
readOnly: true
|
|
- name: basepath
|
|
mountPath: /var/openebs/ndm
|
|
{{- if .Values.ndm.sparse }}
|
|
{{- if .Values.ndm.sparse.path }}
|
|
- name: sparsepath
|
|
mountPath: {{ .Values.ndm.sparse.path }}
|
|
{{- end }}
|
|
{{- end }}
|
|
volumes:
|
|
- name: config
|
|
configMap:
|
|
name: {{ template "openebs.fullname" . }}-ndm-config
|
|
- name: udev
|
|
hostPath:
|
|
path: /run/udev
|
|
type: Directory
|
|
# mount /proc (to access mount file of process 1 of host) inside container
|
|
# to read mount-point of disks and partitions
|
|
- name: procmount
|
|
hostPath:
|
|
path: /proc
|
|
type: Directory
|
|
- name: basepath
|
|
hostPath:
|
|
path: "{{ .Values.varDirectoryPath.baseDir }}/ndm"
|
|
type: DirectoryOrCreate
|
|
{{- if .Values.ndm.sparse }}
|
|
{{- if .Values.ndm.sparse.path }}
|
|
- name: sparsepath
|
|
hostPath:
|
|
path: {{ .Values.ndm.sparse.path }}
|
|
{{- end }}
|
|
{{- end }}
|
|
# By default the node-disk-manager will be run on all kubernetes nodes
|
|
# If you would like to limit this to only some nodes, say the nodes
|
|
# that have storage attached, you could label those node and use
|
|
# nodeSelector.
|
|
#
|
|
# e.g. label the storage nodes with - "openebs.io/nodegroup"="storage-node"
|
|
# kubectl label node <node-name> "openebs.io/nodegroup"="storage-node"
|
|
#nodeSelector:
|
|
# "openebs.io/nodegroup": "storage-node"
|
|
{{- if .Values.ndm.nodeSelector }}
|
|
nodeSelector:
|
|
{{ toYaml .Values.ndm.nodeSelector | indent 8 }}
|
|
{{- end }}
|
|
{{- if .Values.ndm.tolerations }}
|
|
tolerations:
|
|
{{ toYaml .Values.ndm.tolerations | indent 8 }}
|
|
{{- end }}
|
|
{{- end }}
|