# Copyright © 2017 Amdocs, Bell Canada
#
# 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.

#{{ if not .Values.disableConsulConsulServer }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: consul-server
  name: consul-server
  namespace: "{{ .Values.nsPrefix }}"
spec:
  replicas: {{ .Values.consulServerReplicas }}
  selector:
    matchLabels:
      app: consul-server
  template:
    metadata:
      labels:
        app: consul-server
      name: consul-server
    spec:
      containers:
      - image: "{{ .Values.consulserverRegistry }}"
        command: ["/usr/local/bin/docker-entrypoint.sh"]
        args: ["agent","-server","-client","0.0.0.0","-enable-script-checks","-bootstrap-expect=3","-ui","-join","consul-server.{{ .Values.nsPrefix }}"]
        name: consul-server
#{{ end }}
