apiVersion: apps/v1
kind: Deployment
metadata:
  name: sli-reporter
spec:
  replicas: {{ .Values.replicas }}
  selector:
    matchLabels:
      app: sli-reporter
  template:
    metadata:
      labels:
        app: sli-reporter
        {{- if ne "azure" .Values.basic.cloudProvider}}
        azure.workload.identity/use: "true"
        {{- end }}
    spec:
      containers:
        - env:
            - name: AWS_DELIVERY_STREAM_NAME
              value: {{ .Values.deliveryStream.name }}
            - name: AWS_SQS_URL
              value: {{ .Values.deliveryStream.sqsUrl }}
            - name: AWS_REGION
              value: {{ .Values.deliveryStream.region }}
            {{- with (get .Values.deliveryStream "role") }}
            - name: AWS_ROLE_ARN
              value: {{ . }}
            {{- end }}
            {{- if ne "aws" .Values.basic.cloudProvider}}
            - name: AWS_STS_REGIONAL_ENDPOINTS
              value: regional
            - name: AWS_WEB_IDENTITY_TOKEN_FILE
              value: /var/run/secrets/aws-iam-token/token
            {{- end }}
            - name: REGION
              value: {{ .Values.basic.region }}
            - name: VENDOR
              value: {{ .Values.basic.cloudProvider }}
            - name: ENV
              value: {{ .Values.basic.env }}
            - name: REGION_DOMAIN
              value: {{ .Values.basic.regionDomain }}
            - name: USER_ARN
              value: {{ .Values.basic.userArn }}
          image: {{ .Values.basic.image }}
          imagePullPolicy: Always
          name: sli-reporter
          ports:
            - containerPort: 8080
          {{- with .Values.resources }}
          resources:
          {{- toYaml . | nindent 12 }}
          {{- end }}
          {{- if ne "aws" .Values.basic.cloudProvider}}
          volumeMounts:
          - mountPath: /var/run/secrets/aws-iam-token
            name: aws-iam-token
          {{- end }}
      serviceAccount: sli-reporter
      serviceAccountName: sli-reporter
      {{- if ne "aws" .Values.basic.cloudProvider}}
      volumes:
        - name: aws-iam-token
          projected:
            defaultMode: 420
            sources:
            - serviceAccountToken:
                audience: sts.amazonaws.com
                expirationSeconds: 7200
                path: token
      {{- end }}
---

apiVersion: v1
kind: Service
metadata:
  name: sli-reporter-service
  labels:
    app: sli-reporter
spec:
  selector:
    app: sli-reporter
  ports:
    - name: metrics
      port: 8081
      protocol: TCP
      targetPort: 8081
