+{{- if .Values.replicaSet.enabled }}
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+ name: {{ template "mongodb.fullname" . }}-arbiter
+ namespace: {{.Values.namespace }}
+ labels:
+ app: {{ template "mongodb.name" . }}
+ chart: {{ template "mongodb.chart" . }}
+ heritage: {{ .Release.Service }}
+ release: {{ .Release.Name }}
+ {{- with .Values.labels }}
+{{ toYaml . | indent 4 }}
+ {{- end }}
+ {{- with .Values.annotations }}
+ annotations:
+{{ toYaml . | indent 4 }}
+ {{- end }}
+spec:
+ selector:
+ matchLabels:
+ app: {{ template "mongodb.name" . }}
+ release: {{ .Release.Name }}
+ component: arbiter
+ serviceName: {{ template "mongodb.fullname" . }}-headless
+ replicas: {{ .Values.replicaSet.replicas.arbiter }}
+ updateStrategy:
+ type: {{ .Values.updateStrategy.type }}
+ {{- if (eq "Recreate" .Values.updateStrategy.type) }}
+ rollingUpdate: null
+ {{- end }}
+ template:
+ metadata:
+ labels:
+ app: {{ template "mongodb.name" . }}
+ chart: {{ template "mongodb.chart" . }}
+ release: {{ .Release.Name }}
+ component: arbiter
+ {{- if .Values.podLabels }}
+{{ toYaml .Values.podLabels | indent 8 }}
+ {{- end }}
+ {{- if .Values.podAnnotations }}
+ annotations:
+{{ toYaml .Values.podAnnotations | indent 8 }}
+ {{- end }}
+ spec:
+ {{- if .Values.schedulerName }}
+ schedulerName: "{{ .Values.schedulerName }}"
+ {{- end }}
+ {{- if .Values.priorityClassName }}
+ priorityClassName: {{ .Values.priorityClassName }}
+ {{- end }}
+ {{- if .Values.securityContext.enabled }}
+ securityContext:
+ fsGroup: {{ .Values.securityContext.fsGroup }}
+ {{- end }}
+ {{- if .Values.affinityArbiter }}
+ affinity:
+{{ toYaml .Values.affinityArbiter | indent 8 }}
+ {{- end -}}
+ {{- if .Values.nodeSelector }}
+ nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+ {{- end }}
+ {{- if .Values.tolerations }}
+ tolerations:
+{{ toYaml .Values.tolerations | indent 8 }}
+ {{- end }}
+{{- include "mongodb.imagePullSecrets" . | indent 6 }}
+ {{- if .Values.extraInitContainers }}
+ initContainers:
+{{ tpl .Values.extraInitContainers . | indent 6}}
+ {{- end }}
+ containers:
+ - name: {{ template "mongodb.name" . }}-arbiter
+ image: {{ template "mongodb.image" . }}
+ imagePullPolicy: {{ .Values.image.pullPolicy }}
+ {{- if .Values.securityContext.enabled }}
+ securityContext:
+ runAsNonRoot: true
+ runAsUser: {{ .Values.securityContext.runAsUser }}
+ {{- end }}
+ ports:
+ - containerPort: {{ .Values.service.port }}
+ name: mongodb
+ env:
+ {{- if .Values.image.debug}}
+ - name: BITNAMI_DEBUG
+ value: "true"
+ {{- end }}
+ - name: MONGODB_SYSTEM_LOG_VERBOSITY
+ value: {{ .Values.mongodbSystemLogVerbosity | quote }}
+ - name: MONGODB_DISABLE_SYSTEM_LOG
+ {{- if .Values.mongodbDisableSystemLog }}
+ value: "yes"
+ {{- else }}
+ value: "no"
+ {{- end }}
+ - name: MONGODB_POD_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: metadata.name
+ - name: MONGODB_REPLICA_SET_MODE
+ value: "arbiter"
+ - name: MONGODB_PRIMARY_HOST
+ value: {{ template "mongodb.fullname" . }}
+ - name: MONGODB_REPLICA_SET_NAME
+ value: {{ .Values.replicaSet.name | quote }}
+ {{- if .Values.replicaSet.useHostnames }}
+ - name: MONGODB_ADVERTISED_HOSTNAME
+ value: "$(MONGODB_POD_NAME).{{ template "mongodb.fullname" . }}-headless.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}"
+ {{- end }}
+ {{- if .Values.usePassword }}
+ - name: MONGODB_PRIMARY_ROOT_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: {{ if .Values.existingSecret }}{{ .Values.existingSecret }}{{- else }}{{ template "mongodb.fullname" . }}{{- end }}
+ key: mongodb-root-password
+ - name: MONGODB_REPLICA_SET_KEY
+ valueFrom:
+ secretKeyRef:
+ name: {{ if .Values.existingSecret }}{{ .Values.existingSecret }}{{- else }}{{ template "mongodb.fullname" . }}{{- end }}
+ key: mongodb-replica-set-key
+ {{- end }}
+ - name: MONGODB_ENABLE_IPV6
+ {{- if .Values.mongodbEnableIPv6 }}
+ value: "yes"
+ {{- else }}
+ value: "no"
+ {{- end }}
+ - name: MONGODB_ENABLE_DIRECTORY_PER_DB
+ {{- if .Values.mongodbDirectoryPerDB }}
+ value: "yes"
+ {{- else }}
+ value: "no"
+ {{- end }}
+ {{- if .Values.mongodbExtraFlags }}
+ - name: MONGODB_EXTRA_FLAGS
+ value: {{ .Values.mongodbExtraFlags | join " " | quote }}
+ {{- end }}
+ {{- if .Values.extraEnvVars }}
+ {{- include "mongodb.tplValue" ( dict "value" .Values.extraEnvVars "context" $ ) | nindent 10 }}
+ {{- end }}
+ {{- if .Values.livenessProbe.enabled }}
+ livenessProbe:
+ tcpSocket:
+ port: mongodb
+ initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.livenessProbe.successThreshold }}
+ failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
+ {{- end }}
+ {{- if .Values.readinessProbe.enabled }}
+ readinessProbe:
+ tcpSocket:
+ port: mongodb
+ initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
+ {{- end }}
+ volumeMounts:
+ {{- if .Values.configmap }}
+ - name: config
+ mountPath: /opt/bitnami/mongodb/conf/mongodb.conf
+ subPath: mongodb.conf
+ {{- end }}
+ resources:
+{{ toYaml .Values.resourcesArbiter | indent 12 }}
+{{- if .Values.extraVolumeMountsArbiter }}
+ volumeMounts:
+{{ toYaml .Values.extraVolumeMountsArbiter | indent 12}}
+{{- end }}
+{{- if .Values.sidecarsArbiter }}
+{{ toYaml .Values.sidecarsArbiter | indent 8 }}
+{{- end }}
+ volumes:
+ {{- if .Values.configmap }}
+ - name: config
+ configMap:
+ name: {{ template "mongodb.fullname" . }}
+ {{- end }}
+ {{- if .Values.extraVolumesArbiter }}
+{{ toYaml .Values.extraVolumesArbiter | indent 8 }}
+ {{- end }}
+{{- end }}