apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: rqlite-bis
spec:
  selector:
    matchLabels:
      app: rqlite-bis   # doit correspondre avec le(s) label(s) de template (plus bas) et aussi le(s) "selector" des services
  serviceName: rqlite-interne-bis
  replicas: &qte_replicas 3
  podManagementPolicy: Parallel
  template:
    metadata:
      labels:
        app: rqlite-bis   # doit correspondre avec le(s) matchLabel(s) du StatefulSet (plus haut)
    spec:
      terminationGracePeriodSeconds: 5
      containers:
        - name: rqlited
          image: rqlite/rqlite
          args:
            - '-disco-mode=dns'   # délimiteurs facultatifs (mais conseillés pour plus d'uniformité)
            - '-disco-config={"name": "rqlite-interne-bis"}'
            - '-bootstrap-expect'
          #  - '3'
          #  - !!str *qte_replicas       NE fonctionne PAS     ET CELA N'A PAS DE SENS, bootstrap-expect N'A PAS À CORRESPONDRE AVEC replicas !
            - !!str &nbre_replicas 3
            - '-join-interval=1s'
            - '-join-attempts=120'
          ports:
            - containerPort: 4001
              name: rqlite-http
          readinessProbe:
            httpGet:
              scheme: HTTP
              path: /readyz
              port: 4001
            periodSeconds: 5
            timeoutSeconds: 2
            initialDelaySeconds: 2
          livenessProbe:
            httpGet:
              scheme: HTTP
              path: /readyz?noleader
              port: rqlite-http
            initialDelaySeconds: 2
            timeoutSeconds: 2
            failureThreshold: 3
          volumeMounts:
            - name: donnees
              mountPath: /rqlite/file
 # replicas: !!int *nbre_replicas   NE fonctionne PAS plus !
  volumeClaimTemplates:
    - metadata:
        name: donnees
      spec:
        accessModes:
          - ReadWriteOnce
        storageClassName: microk8s-hostpath
        resources:
          requests:
            storage: 100Mi
#  labels:
#    app: rqlite-bis   # pas indispensable mais tellement plus pratique pour kubectl get all --selector
