infra/home/ansible/wavelog-k8s.yml
2025-09-18 16:08:26 -05:00

133 lines
No EOL
2.6 KiB
YAML

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wavelog-uploads
namespace: wavelog
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wavelog-userdata
namespace: wavelog
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wavelog-config
namespace: wavelog
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wavelog
namespace: wavelog
spec:
replicas: 1
selector:
matchLabels:
app: wavelog
template:
metadata:
labels:
app: wavelog
spec:
containers:
- name: wavelog
image: ghcr.io/wavelog/wavelog:latest
env:
- name: CI_ENV
value: "docker"
- name: DB_HOST
value: "10.0.19.6"
- name: DB_NAME
value: "wavelog"
- name: DB_USER
value: "wavelog"
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: wavelog-db-secret
key: password
ports:
- containerPort: 80
name: http
volumeMounts:
- name: config
mountPath: /var/www/html/application/config/docker
- name: uploads
mountPath: /var/www/html/uploads
- name: userdata
mountPath: /var/www/html/userdata
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "500m"
imagePullSecrets:
- name: ghcr-pull-secret
volumes:
- name: config
persistentVolumeClaim:
claimName: wavelog-config
- name: uploads
persistentVolumeClaim:
claimName: wavelog-uploads
- name: userdata
persistentVolumeClaim:
claimName: wavelog-userdata
---
apiVersion: v1
kind: Service
metadata:
name: wavelog
namespace: wavelog
spec:
selector:
app: wavelog
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 80
name: http
---
apiVersion: v1
kind: Service
metadata:
name: wavelog-tailscale
namespace: wavelog
annotations:
tailscale.com/expose: "true"
tailscale.com/hostname: "wavelog"
tailscale.com/funnel: "false"
spec:
selector:
app: wavelog
type: LoadBalancer
loadBalancerClass: tailscale
ports:
- protocol: TCP
port: 80
targetPort: 80
name: http