Files
kubernetes/prod/couchdb/couchdb.yaml
T
2026-05-31 16:07:30 +02:00

106 lines
2.1 KiB
YAML

apiVersion: v1
kind: Service
metadata:
name: couchdb
namespace: couchdb
labels:
app: couchdb
spec:
ports:
- port: 5984
name: http
clusterIP: None
selector:
app: couchdb
---
apiVersion: v1
kind: Service
metadata:
name: couchdb-lb
namespace: couchdb
labels:
app: couchdb
spec:
ports:
- port: 5984
name: http
selector:
app: couchdb
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: couchdb
namespace: couchdb
spec:
serviceName: couchdb
replicas: 3
selector:
matchLabels:
app: couchdb
template:
metadata:
labels:
app: couchdb
spec:
containers:
- name: couchdb
image: couchdb:latest
imagePullPolicy: Always
ports:
- containerPort: 5984
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NODENAME
value: "$(POD_NAME).couchdb.couchdb.svc.cluster.local"
- name: COUCHDB_UUID
valueFrom:
fieldRef:
fieldPath: metadata.uid
- name: ERL_FLAGS
value: "-setcookie couchdb_cookie"
- name: COUCHDB_USER
value: "admin"
- name: COUCHDB_PASSWORD
value: "Couchdb01"
volumeMounts:
- name: couchdb
mountPath: /opt/couchdb/data
volumeClaimTemplates:
- metadata:
name: couchdb
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: ""
resources:
requests:
storage: 2Gi
selector:
matchLabels:
pv: couchdb-data
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: couchdb-ingress
namespace: couchdb
spec:
entryPoints:
- websecure
routes:
- match: Host(`couchdb-prod.allarddcs.nl`)
kind: Rule
services:
- name: couchdb-lb
port: 5984
namespace: couchdb
sticky:
cookie:
name: couchdb_sticky
tls:
certResolver: letsencrypt