#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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: nuvolaris-etcd
  namespace: nuvolaris
  labels:
    app.kubernetes.io/name: nuvolaris-etcd    
spec:
  replicas: {{etcd_replicas}}
  serviceName: nuvolaris-etcd-headless
  selector:
    matchLabels:
      app.kubernetes.io/name: nuvolaris-etcd      
  template:
    metadata:
      labels:
        app.kubernetes.io/name: nuvolaris-etcd        
      annotations:
        serviceName: nuvolaris-etcd
    spec:
      containers:
      - name: {{container}}
        env:
        - name: ETCD_INITIAL_CLUSTER
          value: {{etc_initial_cluster}}
        - name: ETCD_AUTO_COMPACTION_RETENTION
          value: "{{etcd_auto_compaction_retention}}"
        - name: ETCD_QUOTA_BACKEND_BYTES
          value: "{{etcd_quota_backend_bytes}}"
        image: docker.io/bitnami/etcd:3.5.17-debian-12-r0
        imagePullPolicy: IfNotPresent
  volumeClaimTemplates:
    - metadata:
        name: nuvolaris-etc-data
      spec:
        accessModes:
          - "ReadWriteOnce"
        storageClassName: {{storageClass}}
        resources:
          requests:
            storage: "{{size}}Gi"              