{{- with .Values.lokiCanary -}}
{{- if .enabled -}}
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: {{ include "loki-canary.fullname" $ }}
  namespace: {{ $.Release.Namespace }}
  labels:
    {{- include "loki-canary.labels" $ | nindent 4 }}
spec:
  selector:
    matchLabels:
      {{- include "loki-canary.selectorLabels" $ | nindent 6 }}
  {{- with .updateStrategy }}
  updateStrategy:
    {{- toYaml . | nindent 4 }}
  {{- end }}
  template:
    metadata:
      {{- with .annotations }}
      annotations:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      labels:
        {{- include "loki-canary.selectorLabels" $ | nindent 8 }}
        {{- with .podLabels }}
        {{- toYaml . | nindent 8 }}
        {{- end }}
    spec:
      serviceAccountName: {{ include "loki-canary.fullname" $ }}
      {{- with $.Values.imagePullSecrets }}
      imagePullSecrets:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- include "loki-canary.priorityClassName" $ | nindent 6 }}
      securityContext:
        {{- toYaml $.Values.loki.podSecurityContext | nindent 8 }}
      containers:
        - name: loki-canary
          image: {{ include "loki-canary.image" $ }}
          imagePullPolicy: {{ $.Values.loki.image.pullPolicy }}
          args:
            - -addr={{- include "loki.host" $ }}
            - -labelname={{ .labelname }}
            - -labelvalue=$(POD_NAME)
            {{- if $.Values.enterprise.enabled }}
            - -user=$(USER)
            - -tenant-id=$(USER)
            - -pass=$(PASS)
            {{- else if $.Values.loki.auth_enabled }}
            - -user={{ $.Values.monitoring.selfMonitoring.tenant.name }}
            - -tenant-id={{ $.Values.monitoring.selfMonitoring.tenant.name }}
            - -pass={{ $.Values.monitoring.selfMonitoring.tenant.password }}
            {{- end }}
            {{- if .push }}
            - -push=true
            {{- end }}
            {{- with .extraArgs }}
            {{- toYaml . | nindent 12 }}
            {{- end }}
          securityContext:
            {{- toYaml $.Values.loki.containerSecurityContext | nindent 12 }}
          volumeMounts:
            {{- with $.Values.lokiCanary.extraVolumeMounts }}
            {{- toYaml . | nindent 12 }}
            {{- end }}
          ports:
            - name: http-metrics
              containerPort: 3500
              protocol: TCP
          env:
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            {{ if $.Values.enterprise.enabled }}
            - name: USER
              valueFrom:
                secretKeyRef:
                  name: {{ include "enterprise-logs.selfMonitoringTenantSecret" $ }}
                  key: username
            - name: PASS
              valueFrom:
                secretKeyRef:
                  name: {{ include "enterprise-logs.selfMonitoringTenantSecret" $ }}
                  key: password
            {{- end -}}
            {{- with .extraEnv }}
            {{- toYaml . | nindent 12 }}
            {{- end }}
          {{- with .extraEnvFrom }}
          envFrom:
            {{- toYaml . | nindent 12 }}
          {{- end }}
          readinessProbe:
            httpGet:
              path: /metrics
              port: http-metrics
            initialDelaySeconds: 15
            timeoutSeconds: 1
          {{- with .resources}}
          resources:
            {{- toYaml . | nindent 12 }}
          {{- end }}
      {{- with .dnsConfig }}
      dnsConfig:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- with .nodeSelector }}
      nodeSelector:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- with .tolerations }}
      tolerations:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- with .affinity }}
      affinity:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      volumes:
      {{- with $.Values.lokiCanary.extraVolumes }}
      {{- toYaml . | nindent 8 }}
      {{- end }}
{{- end }}
{{- end }}
