123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- {{- if .Values.daemonset.enabled }}
- ---
- apiVersion: apps/v1
- kind: DaemonSet
- metadata:
- name: {{ template "filebeat.fullname" . }}
- labels:
- app: "{{ template "filebeat.fullname" . }}"
- chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
- heritage: {{ .Release.Service | quote }}
- release: {{ .Release.Name | quote }}
- {{- if .Values.daemonset.labels }}
- {{- range $key, $value := .Values.daemonset.labels }}
- {{ $key }}: {{ $value | quote }}
- {{- end }}
- {{- else }}
- {{- range $key, $value := .Values.labels }}
- {{ $key }}: {{ $value | quote }}
- {{- end }}
- {{- end }}
- {{- if .Values.daemonset.annotations }}
- annotations:
- {{- range $key, $value := .Values.daemonset.annotations }}
- {{ $key }}: {{ $value | quote }}
- {{- end }}
- {{- end }}
- spec:
- selector:
- matchLabels:
- app: "{{ template "filebeat.fullname" . }}"
- release: {{ .Release.Name | quote }}
- updateStrategy:
- {{- if eq .Values.updateStrategy "RollingUpdate" }}
- rollingUpdate:
- maxUnavailable: {{ .Values.daemonset.maxUnavailable }}
- {{- end }}
- type: {{ .Values.updateStrategy }}
- template:
- metadata:
- annotations:
- {{- range $key, $value := .Values.podAnnotations }}
- {{ $key }}: {{ $value | quote }}
- {{- end }}
- {{/* This forces a restart if the configmap has changed */}}
- {{- if or .Values.filebeatConfig .Values.daemonset.filebeatConfig }}
- configChecksum: {{ include (print .Template.BasePath "/configmap.yaml") . | sha256sum | trunc 63 }}
- {{- end }}
- name: "{{ template "filebeat.fullname" . }}"
- labels:
- app: "{{ template "filebeat.fullname" . }}"
- chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
- heritage: {{ .Release.Service | quote }}
- release: {{ .Release.Name | quote }}
- {{- if .Values.daemonset.labels }}
- {{- range $key, $value := .Values.daemonset.labels }}
- {{ $key }}: {{ $value | quote }}
- {{- end }}
- {{- else }}
- {{- range $key, $value := .Values.labels }}
- {{ $key }}: {{ $value | quote }}
- {{- end }}
- {{- end }}
- spec:
- tolerations: {{ toYaml ( .Values.tolerations | default .Values.daemonset.tolerations ) | nindent 8 }}
- nodeSelector: {{ toYaml ( .Values.nodeSelector | default .Values.daemonset.nodeSelector ) | nindent 8 }}
- {{- if .Values.priorityClassName }}
- priorityClassName: {{ .Values.priorityClassName }}
- {{- end }}
- affinity: {{ toYaml ( .Values.affinity | default .Values.daemonset.affinity ) | nindent 8 }}
- serviceAccountName: {{ template "filebeat.serviceAccount" . }}
- terminationGracePeriodSeconds: {{ .Values.terminationGracePeriod }}
- {{- if .Values.daemonset.hostNetworking }}
- hostNetwork: true
- dnsPolicy: ClusterFirstWithHostNet
- {{- end }}
- {{- if .Values.dnsConfig }}
- dnsConfig: {{ toYaml .Values.dnsConfig | nindent 8 }}
- {{- end }}
- {{- if .Values.hostAliases | default .Values.daemonset.hostAliases }}
- hostAliases: {{ toYaml ( .Values.hostAliases | default .Values.daemonset.hostAliases ) | nindent 8 }}
- {{- end }}
- volumes:
- {{- range .Values.secretMounts | default .Values.daemonset.secretMounts }}
- - name: {{ .name }}
- secret:
- secretName: {{ .secretName }}
- {{- end }}
- {{- if .Values.filebeatConfig }}
- - name: filebeat-config
- configMap:
- defaultMode: 0600
- name: {{ template "filebeat.fullname" . }}-config
- {{- else if .Values.daemonset.filebeatConfig }}
- - name: filebeat-config
- configMap:
- defaultMode: 0600
- name: {{ template "filebeat.fullname" . }}-daemonset-config
- {{- end }}
- - name: data
- hostPath:
- path: {{ .Values.hostPathRoot }}/{{ template "filebeat.fullname" . }}-{{ .Release.Namespace }}-data
- type: DirectoryOrCreate
- - name: varlibdockercontainers
- hostPath:
- path: /var/lib/docker/containers
- - name: varlog
- hostPath:
- path: /var/log
- - name: varrundockersock
- hostPath:
- path: /var/run/docker.sock
- {{- if .Values.extraVolumes | default .Values.daemonset.extraVolumes }}
- {{ toYaml ( .Values.extraVolumes | default .Values.daemonset.extraVolumes ) | indent 6 }}
- {{- end }}
- {{- if .Values.imagePullSecrets }}
- imagePullSecrets:
- {{ toYaml .Values.imagePullSecrets | indent 8 }}
- {{- end }}
- {{- if .Values.extraInitContainers }}
- initContainers:
- # All the other beats accept a string here while
- # filebeat accepts a valid yaml array. We're keeping
- # this as a backwards compatible change, while adding
- # also a way to pass a string as other templates to
- # make these implementations consistent.
- # https://github.com/elastic/helm-charts/issues/490
- {{- if eq "string" (printf "%T" .Values.extraInitContainers) }}
- {{ tpl .Values.extraInitContainers . | indent 8 }}
- {{- else }}
- {{ toYaml .Values.extraInitContainers | indent 8 }}
- {{- end }}
- {{- end }}
- containers:
- - name: "filebeat"
- image: "{{ .Values.image }}:{{ .Values.imageTag }}"
- imagePullPolicy: "{{ .Values.imagePullPolicy }}"
- args:
- - "-e"
- - "-E"
- - "http.enabled=true"
- livenessProbe:
- {{ toYaml .Values.livenessProbe | indent 10 }}
- readinessProbe:
- {{ toYaml .Values.readinessProbe | indent 10 }}
- resources:
- {{ toYaml ( .Values.resources | default .Values.daemonset.resources ) | indent 10 }}
- env:
- - name: POD_NAMESPACE
- valueFrom:
- fieldRef:
- fieldPath: metadata.namespace
- - name: NODE_NAME
- valueFrom:
- fieldRef:
- fieldPath: spec.nodeName
- {{- if .Values.extraEnvs | default .Values.daemonset.extraEnvs }}
- {{ toYaml ( .Values.extraEnvs | default .Values.daemonset.extraEnvs ) | indent 8 }}
- {{- end }}
- envFrom: {{ toYaml ( .Values.envFrom | default .Values.daemonset.envFrom ) | nindent 10 }}
- securityContext: {{ toYaml ( .Values.podSecurityContext | default .Values.daemonset.securityContext ) | nindent 10 }}
- volumeMounts:
- {{- range .Values.secretMounts | default .Values.daemonset.secretMounts }}
- - name: {{ .name }}
- mountPath: {{ .path }}
- {{- if .subPath }}
- subPath: {{ .subPath }}
- {{- end }}
- {{- end }}
- {{- range $path, $config := .Values.filebeatConfig }}
- - name: filebeat-config
- mountPath: /usr/share/filebeat/{{ $path }}
- readOnly: true
- subPath: {{ $path }}
- {{ else }}
- {{- range $path, $config := .Values.daemonset.filebeatConfig }}
- - name: filebeat-config
- mountPath: /usr/share/filebeat/{{ $path }}
- readOnly: true
- subPath: {{ $path }}
- {{- end }}
- {{- end }}
- - name: data
- mountPath: /usr/share/filebeat/data
- - name: varlibdockercontainers
- mountPath: /var/lib/docker/containers
- readOnly: true
- - name: varlog
- mountPath: /var/log
- readOnly: true
- # Necessary when using autodiscovery; avoid mounting it otherwise
- # See: https://www.elastic.co/guide/en/beats/filebeat/7.17/configuration-autodiscover.html
- - name: varrundockersock
- mountPath: /var/run/docker.sock
- readOnly: true
- {{- if .Values.extraVolumeMounts | default .Values.daemonset.extraVolumeMounts }}
- {{ toYaml (.Values.extraVolumeMounts | default .Values.daemonset.extraVolumeMounts ) | indent 8 }}
- {{- end }}
- {{- if .Values.extraContainers }}
- {{ tpl .Values.extraContainers . | indent 6 }}
- {{- end }}
- {{- end }}
|