#
# Copyright (c) 2021 - Yupiik SAS - https://www.yupiik.com
# 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.
#

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: elasticsearch-local
  labels:
    app: elasticsearch-local
spec:
  serviceName: "elasticsearch-local"
  replicas: 1
  selector:
    matchLabels:
      app: elasticsearch-local
  template:
    metadata:
      labels:
        app: elasticsearch-local
    spec:
      initContainers:
        - name: chmod-es-data-folder-workaround
          image: alpine:latest
          command:
            - chown
            - -R
            - 1000:1000
            - /usr/share/elasticsearch/data
          volumeMounts:
            - name: pv-data
              mountPath: /usr/share/elasticsearch/data
      containers:
        - name: elasticsearch
          image: "{{elasticsearch-local.image:-elasticsearch:7.10.1}}"
          envFrom:
            - configMapRef:
                name: elasticsearch-local-config
          ports:
            - containerPort: 9200
              name: elasticsearch
          volumeMounts:
            - name: pv-data
              mountPath: /usr/share/elasticsearch/data
      volumes:
        - name: pv-data
          persistentVolumeClaim:
            claimName: elasticsearch-pv-claim
