# 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.disableLogElasticsearch }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: elasticsearch
  name: log-elasticsearch
  namespace: {{ .Values.nsPrefix }}
spec:
  replicas: {{ .Values.elasticsearchReplicas }}
  selector:
    matchLabels:
      app: elasticsearch
  template:
    metadata:
      labels:
        app: elasticsearch
      name: log-elasticsearch
    spec:
      initContainers:
      - command:
        - /bin/sh
        - -c
        - |
          sysctl -w vm.max_map_count=262144
          mkdir -p /logroot/elasticsearch/logs
          mkdir -p /logroot/elasticsearch/data
          chmod -R 777 /logroot/elasticsearch
          chown -R root:root /logroot
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        securityContext:
          privileged: true
        image: {{ .Values.image.es_bb }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        name: init-sysctl
        volumeMounts:
        - name: elasticsearch-logs
          mountPath: /logroot/
      containers:
      - name: elasticsearch
        image: {{ .Values.image.elasticsearch}}
        ports:
        - containerPort: 9200
          name: http
          protocol: TCP
        - containerPort: 9300
          name: transport
          protocol: TCP
        readinessProbe:
          tcpSocket:
            port: 9300
        volumeMounts:
         - mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
           name: elasticsearch-conf
           subPath: elasticsearch.yml
         - mountPath: /usr/share/elasticsearch/data/
           name: elasticsearch-data
         - mountPath: /usr/share/elasticsearch/logs/
           name: elasticsearch-logs
      volumes:
        - name: elasticsearch-data
          persistentVolumeClaim:
            claimName: elasticsearch-db
        - name: elasticsearch-logs
          hostPath:
            path: {{ .Values.dataRootDir }}/{{ .Values.nsPrefix }}/log/
        - name: elasticsearch-conf
          configMap:
            name: log-elasticsearch-configmap
            items:
            - key: elasticsearch.yml
              path: elasticsearch.yml
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: log-elasticsearch-configmap
  namespace: {{ .Values.nsPrefix }}
data:
{{ (.Files.Glob "resources/elasticsearch/conf/elasticsearch.yml").AsConfig | indent 2 }}
#{{ end }}

