apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ include "influxdb-enterprise.fullname" . }}-data labels: {{- include "influxdb-enterprise.labels" . | nindent 4 }} spec: replicas: {{ .Values.data.replicas | default 3 }} podManagementPolicy: Parallel serviceName: {{ include "influxdb-enterprise.fullname" . }}-data selector: matchLabels: influxdb.influxdata.com/component: data {{- include "influxdb-enterprise.selectorLabels" . | nindent 6 }} template: metadata: {{- with .Values.data.podAnnotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} labels: influxdb.influxdata.com/component: data {{- include "influxdb-enterprise.selectorLabels" . | nindent 8 }} spec: {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} securityContext: {{- toYaml .Values.data.podSecurityContext | nindent 8 }} volumes: {{ if not .Values.data.persistence.enabled }} - name: {{ include "influxdb-enterprise.fullname" . }}-data-data emptyDir: {} {{ end }} - name: config configMap: name: {{ include "influxdb-enterprise.fullname" . }}-data {{- if .Values.license.secret }} - name: license secret: secretName: {{ .Values.license.secret.name }} items: - key: {{ .Values.license.secret.key }} path: license.json {{- end }} {{- if .Values.data.https.enabled }} - name: tls secret: {{- if .Values.data.https.useCertManager }} secretName: {{ include "influxdb-enterprise.fullname" . }}-data-tls {{ else }} secretName: {{ .Values.data.https.secret.name }} {{ if or .Values.data.https.secret.crt .Values.data.https.secret.key }} items: - key: {{ .Values.data.https.secret.crt }} path: tls.crt - key: {{ .Values.data.https.secret.key }} path: tls.key {{ end }} {{ end }} {{ end }} {{- if and .Values.data.https.enabled .Values.data.https.secret }} {{- if .Values.data.https.secret.ca -}} - name: tls-ca secret: {{ if .Values.data.https.secret.caSecret -}} secretName: {{ .Values.data.https.secret.caSecret }} {{ else }} secretName: {{ .Values.data.https.secret.name }} {{ end }} items: - key: {{ .Values.data.https.secret.ca }} path: ca.crt {{ end }} {{ end }} containers: - name: {{ .Chart.Name }} command: - "/usr/bin/perl" args: - "/etc/influxdb/entrypoint.pl" securityContext: {{- toYaml .Values.data.securityContext | nindent 12 }} {{- include "influxdb-enterprise.image" (dict "chart" .Chart "imageroot" .Values.image "podvals" .Values.data "podtype" "data") | indent 10 }} imagePullPolicy: {{ .Values.data.image.pullPolicy }} env: - name: RELEASE_NAME value: {{ include "influxdb-enterprise.fullname" . }} ports: - name: http containerPort: 8086 protocol: TCP - name: raft containerPort: 8088 protocol: TCP - name: udp containerPort: 8089 protocol: UDP - name: graphite containerPort: 2003 protocol: TCP - name: opentsdb containerPort: 4242 protocol: TCP - name: collectd containerPort: 25826 protocol: UDP livenessProbe: httpGet: path: /ping port: http {{- if .Values.data.https.enabled }} scheme: HTTPS {{- end }} readinessProbe: initialDelaySeconds: 30 httpGet: path: /ping port: http {{- if .Values.data.https.enabled }} scheme: HTTPS {{- end }} volumeMounts: - name: config mountPath: /etc/influxdb - name: {{ include "influxdb-enterprise.fullname" . }}-data-data mountPath: /var/lib/influxdb {{- if .Values.license.secret }} - name: license mountPath: /var/run/secrets/influxdb/ {{- end }} {{- if .Values.data.https.enabled }} - name: tls mountPath: /var/run/secrets/tls/ {{ end }} {{- if and .Values.data.https.enabled .Values.data.https.secret }} {{- if .Values.data.https.secret.ca -}} - name: tls-ca mountPath: /usr/share/ca-certificates/selfsigned/ca.crt subPath: ca.crt {{ end }} {{ end }} resources: {{- toYaml .Values.data.resources | nindent 12 }} {{- with .Values.data.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.data.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.data.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }} {{- if and .Values.data.persistence.enabled (not .Values.data.persistence.existingClaim) }} volumeClaimTemplates: - metadata: name: {{ include "influxdb-enterprise.fullname" . }}-data-data annotations: {{- range $key, $value := .Values.data.persistence.annotations }} {{ $key }}: "{{ $value }}" {{- end }} spec: accessModes: - {{ .Values.data.persistence.accessMode | quote}} resources: requests: storage: {{ .Values.data.persistence.size | quote }} {{- if .Values.data.persistence.storageClass }} {{- if (eq "-" .Values.data.persistence.storageClass) }} storageClassName: "" {{- else }} storageClassName: "{{ .Values.data.persistence.storageClass }}" {{- end }} {{- end }} {{- end }}