# ---------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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:
  labels:
    app: camel-k
    camel.apache.org/component: operator
    {{- include "camel-k.labels" . | nindent 4 }}
  name: camel-k-operator
spec:
  replicas: 1
  selector:
    matchLabels:
      name: camel-k-operator
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: camel-k
        camel.apache.org/component: operator
        name: camel-k-operator
    spec:
      containers:
        - command:
            - kamel
            - operator
          env:
            - name: WATCH_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: OPERATOR_NAME
              value: camel-k
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          image: {{ .Values.operator.image }}
          imagePullPolicy: IfNotPresent
          livenessProbe:
            httpGet:
              path: /healthz
              port: 8081
            initialDelaySeconds: 5
            periodSeconds: 5
          name: camel-k-operator
          ports:
            - containerPort: 8080
              name: metrics
          resources: {}
      serviceAccountName: camel-k-operator
