mirror of
https://gitea.fenix-dev.com/fenix-gitea-admin/iac-ansible-private.git
synced 2025-12-16 19:27:37 +00:00
111 lines
3.4 KiB
YAML
111 lines
3.4 KiB
YAML
# PetSet was renamed to StatefulSet in k8s 1.5
|
|
# apiVersion: apps/v1alpha1
|
|
# kind: PetSet
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
name: stolon-keeper
|
|
namespace: postgresql
|
|
spec:
|
|
serviceName: "stolon-keeper"
|
|
replicas: 3
|
|
selector:
|
|
matchLabels:
|
|
component: stolon-keeper
|
|
stolon-cluster: kube-stolon
|
|
template:
|
|
metadata:
|
|
labels:
|
|
component: stolon-keeper
|
|
stolon-cluster: kube-stolon
|
|
annotations:
|
|
pod.alpha.kubernetes.io/initialized: "true"
|
|
prometheus.io/scrape: "true"
|
|
prometheus.io/port: "8080"
|
|
spec:
|
|
securityContext:
|
|
fsGroup: 1000
|
|
imagePullSecrets:
|
|
- name: regcred
|
|
terminationGracePeriodSeconds: 10
|
|
containers:
|
|
- name: stolon-keeper
|
|
image: sorintlab/stolon:master-pg15
|
|
command:
|
|
- "/bin/bash"
|
|
- "-ec"
|
|
- |
|
|
id stolon
|
|
# Generate our keeper uid using the pod index
|
|
IFS='-' read -ra ADDR <<< "$(hostname)"
|
|
export STKEEPER_UID="keeper${ADDR[-1]}"
|
|
export POD_IP=$(hostname -i)
|
|
export STKEEPER_PG_LISTEN_ADDRESS=$POD_IP
|
|
mkdir -p /stolon-data/data
|
|
export STOLON_DATA=/stolon-data/data
|
|
chown stolon:stolon /stolon-data
|
|
chown stolon:stolon $STOLON_DATA
|
|
exec gosu stolon stolon-keeper --data-dir $STOLON_DATA
|
|
env:
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: STKEEPER_CLUSTER_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.labels['stolon-cluster']
|
|
- name: STKEEPER_STORE_BACKEND
|
|
value: "kubernetes"
|
|
- name: STKEEPER_KUBE_RESOURCE_KIND
|
|
value: "configmap"
|
|
- name: STKEEPER_PG_REPL_USERNAME
|
|
#value: "repluser"
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: stolon-repl-secret
|
|
key: username
|
|
- name: STKEEPER_PG_REPL_PASSWORD
|
|
#value: "replpassword"
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: stolon-repl-secret
|
|
key: password
|
|
- name: STKEEPER_PG_SU_USERNAME
|
|
#value: "stolon"
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: stolon-secret
|
|
key: username
|
|
- name: STKEEPER_PG_SU_PASSWORDFILE
|
|
value: "/etc/secrets/stolon/password"
|
|
- name: STKEEPER_METRICS_LISTEN_ADDRESS
|
|
value: "0.0.0.0:8080"
|
|
# Uncomment this to enable debug logs
|
|
#- name: STKEEPER_DEBUG
|
|
# value: "true"
|
|
ports:
|
|
- containerPort: 5432
|
|
- containerPort: 8080
|
|
volumeMounts:
|
|
- mountPath: /stolon-data
|
|
name: data
|
|
- mountPath: /etc/secrets/stolon
|
|
name: stolon
|
|
volumes:
|
|
- name: stolon
|
|
secret:
|
|
secretName: stolon-secret
|
|
volumeClaimTemplates:
|
|
- kind: PersistentVolumeClaim
|
|
apiVersion: v1
|
|
metadata:
|
|
name: data
|
|
namespace: postgresql
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 10Gi
|
|
storageClassName: stolon-nfs-csi |