apiVersion:  apps/v1
kind: StatefulSet
metadata:
  name: {{ template "couchdb.fullname" . }}
  labels:
    app: {{ template "couchdb.name" . }}
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  replicas: {{ .Values.clusterSize }}
  serviceName: {{ template "couchdb.fullname" . }}
  podManagementPolicy: {{ .Values.podManagementPolicy }}
  selector:
    matchLabels:
{{ include "couchdb.ss.selector" . | indent 6 }}
  template:
    metadata:
      labels:
{{ include "couchdb.ss.selector" . | indent 8 }}
      annotations:
        checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
        checksum/secret: {{ include (print $.Template.BasePath "/secrets.yaml") . | sha256sum }}
{{- if .Values.annotations }}
{{ toYaml .Values.annotations | indent 8 }}
{{- end }}
    spec:
      {{- if .Values.schedulerName }}
      schedulerName: "{{ .Values.schedulerName }}"
      {{- end }}
      {{- if .Values.serviceAccount.enabled }}
      serviceAccountName: {{ template "couchdb.serviceAccount" . }}
      {{- end }}
      initContainers:
        - name: init-copy
          image: "{{ .Values.initImage.repository }}:{{ .Values.initImage.tag }}"
          imagePullPolicy: {{ .Values.initImage.pullPolicy }}
          command: 
            - 'sh'
            - '-c'
{{- if .Values.prometheusPort.enabled }}
            - 'cp /tmp/chart.ini /default.d; cp /tmp/seedlist.ini /default.d; cp /tmp/prometheus.ini /default.d; ls -lrt /default.d;'
{{- else }}
            - 'cp /tmp/chart.ini /default.d; cp /tmp/seedlist.ini /default.d; ls -lrt /default.d;'
{{- end }}
          volumeMounts:
          - name: config
            mountPath: /tmp/
          - name: config-storage
            mountPath: /default.d
{{- if .Values.adminHash }}
        - name: admin-hash-copy
          image: "{{ .Values.initImage.repository }}:{{ .Values.initImage.tag }}"
          imagePullPolicy: {{ .Values.initImage.pullPolicy }}
          command: ['sh','-c','cp /tmp/password.ini /local.d/ ;']
          volumeMounts:
            - name: admin-password
              mountPath: /tmp/password.ini
              subPath: "password.ini"
            - name: local-config-storage
              mountPath: /local.d
{{- end }}
      containers:
        - name: couchdb
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          ports:
            - name: couchdb
              containerPort: 5984
            - name: epmd
              containerPort: 4369
            - containerPort: 9100
{{- if .Values.prometheusPort.enabled }}
            - name: metrics
              containerPort: {{ .Values.prometheusPort.port }}
{{- end }}
          env:
{{- if not .Values.allowAdminParty }}
            - name: COUCHDB_USER
              valueFrom:
                secretKeyRef:
                  name: {{ template "couchdb.fullname" . }}
                  key: adminUsername
            - name: COUCHDB_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: {{ template "couchdb.fullname" . }}
                  key: adminPassword
            - name: COUCHDB_SECRET
              valueFrom:
                secretKeyRef:
                  name: {{ template "couchdb.fullname" . }}
                  key: cookieAuthSecret
{{- end }}
            - name: ERL_FLAGS
              value: "{{ range $k, $v := .Values.erlangFlags }} -{{ $k }} {{ $v }} {{ end }}"
{{- if .Values.livenessProbe.enabled }}
          livenessProbe:
{{- if .Values.couchdbConfig.chttpd.require_valid_user }}
            exec:
              command:
                - sh
                - -c
                - curl -G --silent --fail -u ${COUCHDB_USER}:${COUCHDB_PASSWORD} http://localhost:5984/_up
{{- else }}
            httpGet:
              path: /_up
              port: 5984
{{- end }}
            failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
            initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
            periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
            successThreshold: {{ .Values.livenessProbe.successThreshold }}
            timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
{{- end }}
{{- if .Values.readinessProbe.enabled }}
          readinessProbe:
{{- if .Values.couchdbConfig.chttpd.require_valid_user }}
            exec:
              command:
                - sh
                - -c
                - curl -G --silent --fail -u ${COUCHDB_USER}:${COUCHDB_PASSWORD} http://localhost:5984/_up
{{- else }}
            httpGet:
              path: /_up
              port: 5984
{{- end }}
            failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
            initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
            periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
            successThreshold: {{ .Values.readinessProbe.successThreshold }}
            timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
{{- end }}
          resources:
{{ toYaml .Values.resources | indent 12 }}
          volumeMounts:
          - name: config-storage
            mountPath: /opt/couchdb/etc/default.d
{{- if .Values.adminHash }}
          - name: local-config-storage
            mountPath: /opt/couchdb/etc/local.d
{{- end }}
          - name: database-storage
            mountPath: /opt/couchdb/data
{{- if .Values.enableSearch }}
        - name: clouseau
          image: "{{ .Values.searchImage.repository }}:{{ .Values.searchImage.tag }}"
          imagePullPolicy: {{ .Values.searchImage.pullPolicy }}
          volumeMounts:
          - name: database-storage
            mountPath: /opt/couchdb-search/data
{{- end }}
{{- if .Values.sidecars }}
{{ toYaml .Values.sidecars | indent 8}}
{{- end }}
{{- if .Values.nodeSelector }}
      nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }}
{{- end }}
{{- with .Values.tolerations }}
      tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.affinity }}
      affinity:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.topologySpreadConstraints }}
      topologySpreadConstraints:
{{ toYaml . | indent 8 }}
{{- end }}
      volumes:
        - name: config-storage
          emptyDir: {}
        - name: config
          configMap:
            name: {{ template "couchdb.fullname" . }}
            items:
              - key: inifile
                path: chart.ini
              - key: seedlistinifile
                path: seedlist.ini
{{- if .Values.prometheusPort.enabled }}
              - key: prometheusinifile 
                path: prometheus.ini
{{- end }}

{{- if .Values.adminHash }}
        - name: local-config-storage
          emptyDir: {}
        - name: admin-password
          secret:
            secretName: {{ template "couchdb.fullname" . }}
{{- end -}}

{{- if not .Values.persistentVolume.enabled }}
        - name: database-storage
          emptyDir: {}
{{- else }}
  volumeClaimTemplates:
    - metadata:
        name: database-storage
        labels:
          app: {{ template "couchdb.name" . }}
          release: {{ .Release.Name }}
      spec:
        accessModes:
        {{- range .Values.persistentVolume.accessModes }}
          - {{ . | quote }}
        {{- end }}
        resources:
          requests:
            storage: {{ .Values.persistentVolume.size | quote }}
      {{- if .Values.persistentVolume.storageClass }}
      {{- if (eq "-" .Values.persistentVolume.storageClass) }}
        storageClassName: ""
      {{- else }}
        storageClassName: "{{ .Values.persistentVolume.storageClass }}"
      {{- end }}
      {{- end }}
{{- end }}
