apiVersion: "v1"
kind: "DeploymentConfig"
metadata:
  name: "{{deploy_name}}"
  labels:
    provider: openshift
    component: "{{component}}"
    logging-infra: "{{logging_component}}"
spec:
  replicas: {{replicas|default(0)}}
  selector:
    provider: openshift
    component: "{{component}}"
    logging-infra: "{{logging_component}}"
  strategy:
    rollingParams:
      intervalSeconds: 1
      timeoutSeconds: 600
      updatePeriodSeconds: 1
    type: Rolling
  template:
    metadata:
      name: "{{deploy_name}}"
      labels:
        logging-infra: "{{logging_component}}"
        provider: openshift
        component: "{{component}}"
    spec:
      serviceAccountName: aggregated-logging-kibana
{% if kibana_node_selector is iterable and kibana_node_selector | length > 0 %}
      nodeSelector:
{% for key, value in kibana_node_selector.iteritems() %}
        {{key}}: {{value}}
{% endfor %}
{% endif %}
      containers:
        -
          name: "kibana"
          image: {{image}}
          imagePullPolicy: Always
{% if (kibana_memory_limit is defined and kibana_memory_limit is not none) or (kibana_cpu_limit is defined and kibana_cpu_limit is not none) %}
          resources:
            limits:
{% if kibana_cpu_limit is not none %}
              cpu: "{{kibana_cpu_limit}}"
{% endif %}
{% if kibana_memory_limit is not none %}
              memory: "{{kibana_memory_limit}}"
{% endif %}
{% endif %}
          env:
            - name: "ES_HOST"
              value: "{{es_host}}"
            - name: "ES_PORT"
              value: "{{es_port}}"
          volumeMounts:
            - name: kibana
              mountPath: /etc/kibana/keys
              readOnly: true
        -
          name: "kibana-proxy"
          image: {{proxy_image}}
          imagePullPolicy: Always
{% if (kibana_proxy_memory_limit is defined and kibana_proxy_memory_limit is not none) or (kibana_proxy_cpu_limit is defined and kibana_proxy_cpu_limit is not none) %}
          resources:
            limits:
{% if kibana_proxy_cpu_limit is not none %}
              cpu: "{{kibana_proxy_cpu_limit}}"
{% endif %}
{% if kibana_proxy_memory_limit is not none %}
              memory: "{{kibana_proxy_memory_limit}}"
{% endif %}
{% endif %}
          ports:
            -
              name: "oaproxy"
              containerPort: 3000
          env:
            -
             name: "OAP_BACKEND_URL"
             value: "http://localhost:5601"
            -
             name: "OAP_AUTH_MODE"
             value: "oauth2"
            -
             name: "OAP_TRANSFORM"
             value: "user_header,token_header"
            -
             name: "OAP_OAUTH_ID"
             value: kibana-proxy
            -
             name: "OAP_MASTER_URL"
             value: {{master_url}}
            -
             name: "OAP_PUBLIC_MASTER_URL"
             value: {{public_master_url}}
            -
             name: "OAP_LOGOUT_REDIRECT"
             value: {{public_master_url}}/console/logout
            -
             name: "OAP_MASTER_CA_FILE"
             value: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
            -
             name: "OAP_DEBUG"
             value: "{{openshift_logging_kibana_proxy_debug}}"
          volumeMounts:
            - name: kibana-proxy
              mountPath: /secret
              readOnly: true
      volumes:
        - name: kibana
          secret:
            secretName: logging-kibana
        - name: kibana-proxy
          secret:
            secretName: logging-kibana-proxy
