#
# 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:
  name: ingress-controller
spec:
  minReadySeconds: 5
  replicas: 1
  selector:
    matchLabels:
      app: apisix-ingress-controller
      tier: backend
  strategy:
    rollingUpdate:
      maxSurge: 50%
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      annotations: {}
      labels:
        app: apisix-ingress-controller
        tier: backend
    spec:
      hostNetwork: true
      containers:
      - image: apache/apisix-ingress-controller:0.1.0
        imagePullPolicy: IfNotPresent
        name: ingress-controller
        ports:
        - containerPort: 8080
          hostPort: 8080
        volumeMounts:
        - mountPath: /ingress-apisix/conf/config.yaml
          name: apisix-ingress-configmap
          subPath: config.yaml
        env:
          - name: POD_NAMESPACE
            valueFrom:
              fieldRef:
                fieldPath: metadata.namespace
          - name: POD_NAME
            valueFrom:
              fieldRef:
                fieldPath: metadata.name
      volumes:
        - configMap:
            name: apisix-ingress-cm
          name: apisix-ingress-configmap
      terminationGracePeriodSeconds: 60
      serviceAccountName: apisix-view-serviceaccount
