{{- /*
# Copyright 2019-present Open Networking Foundation
#
# 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.
*/ -}}

{{ tuple "accelleran-cbrs-redis" . | include "accelleran-cbrs-common.service_account" }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: accelleran-cbrs-redis
  labels:
{{ tuple "accelleran-cbrs-redis" . | include "accelleran-cbrs-common.metadata_labels" | indent 4 }}
spec:
  selector:
    matchLabels:
{{ tuple "accelleran-cbrs-redis" . | include "accelleran-cbrs-common.metadata_labels" | indent 6 }}
  serviceName: accelleran-cbrs-redis
  template:
    metadata:
      labels:
{{ tuple "accelleran-cbrs-redis" . | include "accelleran-cbrs-common.metadata_labels" | indent 8 }}
    spec:
    {{- if .Values.nodeSelectors.enabled }}
      nodeSelector:
        {{ .Values.nodeSelectors.accelleranCBRSCommon.label }}: {{ .Values.nodeSelectors.accelleranCBRSCommon.value }}
    {{- end }}
      serviceAccountName: accelleran-cbrs-redis
      containers:
      - name: redis
        image: {{ .Values.images.tags.redis }}
        imagePullPolicy: {{ .Values.images.pullPolicy }}
        command: ["sh", "-c"]
        args:
        - /usr/local/bin/redis-server /etc/redis.conf
        {{- if .Values.resources.enabled }}
        resources:
{{ toYaml .Values.resources.accelleranCBRSCommon | indent 10 }}
        {{- end }}
        volumeMounts:
        - mountPath: /data
          name: redis-data-volume
      volumes:
      - name: redis-data-volume
        hostPath:
          path: /tmp/redis-storage
          type: DirectoryOrCreate
