apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels: {{- include "longhorn.labels" . | nindent 4 }}
    app: longhorn-manager
  name: longhorn-manager
  namespace: {{ include "release_namespace" . }}
spec:
  selector:
    matchLabels:
      app: longhorn-manager
  template:
    metadata:
      labels: {{- include "longhorn.labels" . | nindent 8 }}
        app: longhorn-manager
      {{- with .Values.annotations }}
      annotations:
        {{- toYaml . | nindent 8 }}
      {{- end }}
    spec:
      containers:
      - name: longhorn-manager
        image: {{ with (coalesce .Values.global.imageRegistry (include "registry_url" .) .Values.image.longhorn.manager.registry) }}{{ . }}/{{ end }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}
        imagePullPolicy: {{ .Values.image.pullPolicy }}
        securityContext:
          privileged: true
        command:
        - longhorn-manager
        - -d
        {{- if eq .Values.longhornManager.log.format "json" }}
        - -j
        {{- end }}
        - daemon
        - --engine-image
        - "{{ with (coalesce .Values.global.imageRegistry (include "registry_url" .) .Values.image.longhorn.engine.registry) }}{{ . }}/{{ end }}{{ .Values.image.longhorn.engine.repository }}:{{ .Values.image.longhorn.engine.tag }}"
        - --instance-manager-image
        - "{{ with (coalesce .Values.global.imageRegistry (include "registry_url" .) .Values.image.longhorn.instanceManager.registry) }}{{ . }}/{{ end }}{{ .Values.image.longhorn.instanceManager.repository }}:{{ .Values.image.longhorn.instanceManager.tag }}"
        - --share-manager-image
        - "{{ with (coalesce .Values.global.imageRegistry (include "registry_url" .) .Values.image.longhorn.shareManager.registry) }}{{ . }}/{{ end }}{{ .Values.image.longhorn.shareManager.repository }}:{{ .Values.image.longhorn.shareManager.tag }}"
        - --backing-image-manager-image
        - "{{ with (coalesce .Values.global.imageRegistry (include "registry_url" .) .Values.image.longhorn.backingImageManager.registry) }}{{ . }}/{{ end }}{{ .Values.image.longhorn.backingImageManager.repository }}:{{ .Values.image.longhorn.backingImageManager.tag }}"
        - --support-bundle-manager-image
        - "{{ with (coalesce .Values.global.imageRegistry (include "registry_url" .) .Values.image.longhorn.supportBundleKit.registry) }}{{ . }}/{{ end }}{{ .Values.image.longhorn.supportBundleKit.repository }}:{{ .Values.image.longhorn.supportBundleKit.tag }}"
        - --manager-image
        - "{{ with (coalesce .Values.global.imageRegistry (include "registry_url" .) .Values.image.longhorn.manager.registry) }}{{ . }}/{{ end }}{{ .Values.image.longhorn.manager.repository }}:{{ .Values.image.longhorn.manager.tag }}"
        - --service-account
        - longhorn-service-account
        {{- if .Values.preUpgradeChecker.upgradeVersionCheck}}
        - --upgrade-version-check
        {{- end }}
        ports:
        - containerPort: 9500
          name: manager
        - containerPort: 9502
          name: admission-wh
        - containerPort: 9503
          name: recov-backend
        readinessProbe:
          httpGet:
            path: /v1/healthz
            port: 9502
            scheme: HTTPS
        volumeMounts:
        - name: boot
          mountPath: /host/boot/
          readOnly: true
        - name: dev
          mountPath: /host/dev/
        - name: proc
          mountPath: /host/proc/
          readOnly: true
        - name: etc
          mountPath: /host/etc/
          readOnly: true
        - name: longhorn
          mountPath: /var/lib/longhorn/
          mountPropagation: Bidirectional
        - name: longhorn-grpc-tls
          mountPath: /tls-files/
        {{- if .Values.enableGoCoverDir }}
        - name: go-cover-dir
          mountPath: /go-cover-dir/
        {{- end }}
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        {{- if .Values.enableGoCoverDir }}
        - name: GOCOVERDIR
          value: /go-cover-dir/
        {{- end }}
      - name: pre-pull-share-manager-image
        imagePullPolicy: {{ .Values.image.pullPolicy }}
        image: {{ with (coalesce .Values.global.imageRegistry (include "registry_url" .) .Values.image.longhorn.shareManager.registry) }}{{ . }}/{{ end }}{{ .Values.image.longhorn.shareManager.repository }}:{{ .Values.image.longhorn.shareManager.tag }}
        command: ["sh", "-c", "echo share-manager image pulled && sleep infinity"]
      volumes:
      - name: boot
        hostPath:
          path: /boot/
      - name: dev
        hostPath:
          path: /dev/
      - name: proc
        hostPath:
          path: /proc/
      - name: etc
        hostPath:
          path: /etc/
      - name: longhorn
        hostPath:
          path: /var/lib/longhorn/
      {{- if .Values.enableGoCoverDir }}
      - name: go-cover-dir
        hostPath:
          path: /go-cover-dir/
          type: DirectoryOrCreate
      {{- end }}
      - name: longhorn-grpc-tls
        secret:
          secretName: longhorn-grpc-tls
          optional: true
      {{- with (coalesce .Values.global.imagePullSecrets .Values.privateRegistry.registrySecret) }}
      imagePullSecrets:
        {{- $imagePullSecrets := list }}
        {{- if kindIs "string" . }}
          {{- $imagePullSecrets = append $imagePullSecrets (dict "name" .) }}
        {{- else }}
          {{- range . }}
            {{- if kindIs "string" . }}
                {{- $imagePullSecrets = append $imagePullSecrets (dict "name" .) }}
            {{- else }}
                {{- $imagePullSecrets = append $imagePullSecrets . }}
            {{- end }}
          {{- end }}
        {{- end }}
        {{- toYaml $imagePullSecrets | nindent 8 }}
      {{- end }}
      {{- if .Values.longhornManager.priorityClass }}
      priorityClassName: {{ .Values.longhornManager.priorityClass | quote }}
      {{- end }}
      {{- if or .Values.global.tolerations .Values.longhornManager.tolerations .Values.global.cattle.windowsCluster.enabled }}
      tolerations:
        {{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.tolerations }}
{{ toYaml .Values.global.cattle.windowsCluster.tolerations | indent 6 }}
        {{- end }}
        {{- if or .Values.global.tolerations .Values.longhornManager.tolerations }}
{{ default .Values.global.tolerations .Values.longhornManager.tolerations | toYaml | indent 6 }}
        {{- end }}
      {{- end }}
      {{- if or .Values.global.nodeSelector .Values.longhornManager.nodeSelector .Values.global.cattle.windowsCluster.enabled }}
      nodeSelector:
        {{- if and .Values.global.cattle.windowsCluster.enabled .Values.global.cattle.windowsCluster.nodeSelector }}
{{ toYaml .Values.global.cattle.windowsCluster.nodeSelector | indent 8 }}
        {{- end }}
        {{- if or .Values.global.nodeSelector .Values.longhornManager.nodeSelector }}
{{ default .Values.global.nodeSelector .Values.longhornManager.nodeSelector | toYaml | indent 8 }}
        {{- end }}
      {{- end }}
      serviceAccountName: longhorn-service-account
  updateStrategy:
    rollingUpdate:
      maxUnavailable: "100%"
---
apiVersion: v1
kind: Service
metadata:
  labels: {{- include "longhorn.labels" . | nindent 4 }}
    app: longhorn-manager
  name: longhorn-backend
  namespace: {{ include "release_namespace" . }}
  {{- if .Values.longhornManager.serviceAnnotations }}
  annotations:
{{ toYaml .Values.longhornManager.serviceAnnotations | indent 4 }}
  {{- end }}
spec:
  type: {{ .Values.service.manager.type }}
  selector:
    app: longhorn-manager
  ports:
  - name: manager
    port: 9500
    targetPort: manager
    {{- if .Values.service.manager.nodePort }}
    nodePort: {{ .Values.service.manager.nodePort }}
    {{- end }}
