Files
Wabenhain/k8s/03-mysql.yaml
T
Nick Szaunig 5889f58da7
Docker Image bauen und veroeffentlichen / build-and-push (push) Waiting to run
feat: Docker-, Kubernetes- und Gitea-Actions-Deployment-Pipeline
Dockerfile (Multi-Stage, "output: standalone"), docker-compose.yml mit
Caddy als einzigem nach aussen offenem Reverse-Proxy (verhindert
X-Forwarded-For-Faelschung fuer das App-eigene Rate-Limiting), Gitea
Actions Workflow der bei jedem Push zwei Image-Tags in die Gitea-
Container-Registry baut (schlankes Laufzeit-Image + ein Migrations-
Image mit Prisma-CLI), sowie rohe Kubernetes-Manifeste (Namespace,
ConfigMap, Secret-Vorlage, Postgres-/MySQL-StatefulSet, Migrations-Job,
App-Deployment, Ingress) fuer den Cluster-Betrieb. Siehe k8s/README.md
fuer den vollstaendigen Einrichtungs-/Deployment-Ablauf.
2026-08-17 14:30:46 +02:00

71 lines
1.7 KiB
YAML

# Alternative zu 03-postgres.yaml (DATABASE_PROVIDER=mysql in
# 01-configmap.yaml). Nur eines von beiden anwenden.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: wabenhain-mysql
namespace: wabenhain
spec:
serviceName: wabenhain-mysql
replicas: 1
selector:
matchLabels:
app: wabenhain-mysql
template:
metadata:
labels:
app: wabenhain-mysql
spec:
containers:
- name: mysql
image: mysql:8.4.11
ports:
- containerPort: 3306
env:
- name: MYSQL_USER
value: wabenhain
- name: MYSQL_DATABASE
value: wabenhain
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: wabenhain-secrets
key: DB_PASSWORD
- name: MYSQL_RANDOM_ROOT_PASSWORD
value: "yes"
volumeMounts:
- name: data
mountPath: /var/lib/mysql
readinessProbe:
exec:
command: ["mysqladmin", "ping", "-h", "localhost", "-uwabenhain", "-p$(MYSQL_PASSWORD)"]
initialDelaySeconds: 10
periodSeconds: 5
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 512Mi
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 5Gi
---
apiVersion: v1
kind: Service
metadata:
name: wabenhain-mysql
namespace: wabenhain
spec:
clusterIP: None
selector:
app: wabenhain-mysql
ports:
- port: 3306
targetPort: 3306