# Copyright 2020-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: "{{ template "fullname" . }}-jaeger"
  namespace: "{{ .Release.Namespace }}"
  labels:
    app: jaeger
    release: "{{ .Release.Name }}"
    app.kubernetes.io/name: jaeger
    app.kubernetes.io/component: all-in-one
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: jaeger
      release: "{{ .Release.Name }}"
  template:
    metadata:
      namespace: "{{ .Release.Namespace }}"
      labels:
        app: jaeger
        release: "{{ .Release.Name }}"
        app.kubernetes.io/name: jaeger
        app.kubernetes.io/version: {{ quote .Chart.Version }}
        app.kubernetes.io/component: all-in-one
      annotations:
        prometheus.io/scrape: "false"
    spec:
      {{- if .Values.securityContext.enabled }}
      securityContext:
        runAsUser: {{ .Values.securityContext.runAsUser }}
        runAsGroup: {{ .Values.securityContext.runAsGroup }}
        fsGroup: {{ .Values.securityContext.fsGroup }}
      {{- end }}
      containers:
        - name: jaeger
          image: '{{ .Values.tracing.image.repository }}:{{ .Values.tracing.image.tag }}'
          imagePullPolicy: '{{ .Values.tracing.image.pullPolicy }}'
          args: ["--memory.max-traces", '{{ .Values.tracing.maxTraces }}']
          ports:
            - containerPort: 6831
              protocol: UDP
            - containerPort: 5778
              protocol: TCP
            - containerPort: 16686
              protocol: TCP
          {{- if .Values.securityContext.enabled }}
          securityContext:
            allowPrivilegeEscalation: false
          {{- end }}
          readinessProbe:
            httpGet:
              path: "/"
              port: 14269
            initialDelaySeconds: 5
