add initial config for mediawiki and teastore
All checks were successful
Mirror to GitHub / mirror (push) Successful in 8s

This commit is contained in:
jona.klaess
2026-06-12 09:46:36 +02:00
parent b08aaa9ebe
commit 102908d8e4
8 changed files with 303 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: mediawiki
namespace: ptp-chat
spec:
project: ptp-chat
source:
repoURL: https://gitea.controller.bittehackmichnicht.de/argocd/kubernetes-config.git
targetRevision: main
path: mediawiki
destination:
server: https://kubernetes.default.svc
namespace: ptp-chat
syncPolicy:
automated:
prune: true
selfHeal: true
enabled: true
ignoreDifferences:
- kind: Secret
jsonPointers:
- /data

70
mediawiki/db.yaml Normal file
View File

@@ -0,0 +1,70 @@
---
# Source: portainer/templates/pvc.yaml
kind: "PersistentVolumeClaim"
apiVersion: "v1"
metadata:
name: mediawiki-pvc
namespace: ptp-chat
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 3Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mediawiki-db
namespace: ptp-chat
labels:
app: mediawiki-db
spec:
replicas: 1
selector:
matchLabels:
app: mediawiki-db
template:
metadata:
labels:
app: mediawiki-db
spec:
containers:
- name: mediawiki-db
image: mariadb:latest
env:
- name: MARIADB_USER
valueFrom:
secretKeyRef:
name: ptp-chat-secret
key: SPRING_DATASOURCE_USERNAME
- name: MARIADB_PASSWORD
valueFrom:
secretKeyRef:
name: ptp-chat-secret
key: SPRING_DATASOURCE_PASSWORD
- name: MARIADB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: ptp-chat-secret
key: SPRING_DATASOURCE_PASSWORD
- name: MARIADB_DATABASE
value: mediawiki
ports:
- name: http
containerPort: 3306
resources:
requests:
memory: 0.1Gi
cpu: 0.01
limits:
memory: 0.4Gi
cpu: 0.05
volumeMounts:
- name: mediawiki-pvc
mountPath: /var/lib/mysql
readOnly: false
volumes:
- name: mediawiki-pvc
persistentVolumeClaim:
claimName: mediawiki-pvc

71
mediawiki/istio.yaml Normal file
View File

@@ -0,0 +1,71 @@
---
apiVersion: v1
kind: Service
metadata:
name: mediawiki-app
namespace: ptp-chat
labels:
app: mediawiki-app
spec:
ports:
- name: http
port: 80
targetPort: 80
selector:
app: mediawiki-app
type: NodePort
---
apiVersion: v1
kind: Service
metadata:
name: mediawiki-db
namespace: ptp-chat
labels:
app: mediawiki-db
spec:
ports:
- name: http
port: 3306
targetPort: 3306
selector:
app: mediawiki-db
type: NodePort
---
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: mediawiki-gateway
namespace: ptp-chat
spec:
selector:
istio: ingressgateway # Holt sich das Standard-Ingress-Gateway
servers:
- port:
number: 443
name: https-ptpchat
protocol: HTTPS
hosts:
- mediawiki.k8s.bittehackmichnicht.de
tls:
mode: SIMPLE # TLS-Termination am Gateway, damit der VirtualService den Traffic aufteilen kann
credentialName: istio-cert # Name des TLS-Zertifikats in Kubernetes, das für die Verschlüsselung verwendet wird
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: mediawiki-vs
namespace: ptp-chat
spec:
hosts:
- mediawiki.k8s.bittehackmichnicht.de
gateways:
- mediawiki-gateway
http:
- match:
- uri:
prefix: /
route:
- destination:
host: mediawiki-app.ptp-chat.svc.cluster.local
port:
number: 80

View File

@@ -0,0 +1,9 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: ptp-chat
resources:
- istio.yaml
- db.yaml
- mediawiki.yaml

46
mediawiki/mediawiki.yaml Normal file
View File

@@ -0,0 +1,46 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mediawiki-app
namespace: ptp-chat
labels:
app: mediawiki-app
spec:
selector:
matchLabels:
app: mediawiki-app
template:
metadata:
labels:
app: mediawiki-app
spec:
containers:
- name: mediawiki-app
image: mediawiki:1.45
env:
- name: MEDIAWIKI_DB_USER
valueFrom:
secretKeyRef:
name: ptp-chat-secret
key: SPRING_DATASOURCE_USERNAME
- name: MEDIAWIKI_DB_PASSWORD
valueFrom:
secretKeyRef:
name: ptp-chat-secret
key: SPRING_DATASOURCE_PASSWORD
- name: MEDIAWIKI_DB_NAME
value: mediawiki
- name: MEDIAWIKI_DB_HOST
value: mediawiki-db.ptp-chat.svc.cluster.local
ports:
- name: http
containerPort: 80
resources:
requests:
memory: 0.1Gi
cpu: 0.01
limits:
memory: 0.4Gi
cpu: 0.05