landing/kube/deploy-tomcode.yaml
2024-04-28 14:24:15 +02:00

108 lines
1.9 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: sites
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: tomcode-pv
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 128Mi
accessModes:
- ReadWriteMany
hostPath:
path: "/var/lib/rancher/k3s/storage/tomcode"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: tomcode-pvc
namespace: sites
spec:
volumeName: tomcode-pv
storageClassName: manual
accessModes:
- ReadWriteMany
resources:
requests:
storage: 128Mi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcode
namespace: sites
labels:
app: tomcode
spec:
replicas: 1
selector:
matchLabels:
app: tomcode
template:
metadata:
labels:
app: tomcode
spec:
containers:
- name: tomcode
image: tommansfield/tomcode:latest
imagePullPolicy: Always
ports:
- containerPort: 3000
resources:
limits:
memory: "128Mi"
cpu: "1"
volumeMounts:
- name: tomcode-volume
mountPath: /data
subPath: ./web
volumes:
- name: tomcode-volume
persistentVolumeClaim:
claimName: tomcode-pvc
---
apiVersion: v1
kind: Service
metadata:
name: tomcode
namespace: sites
labels:
app: tomcode
spec:
type: LoadBalancer
ports:
- name: tomcode
port: 80
targetPort: 3000
nodePort: 30800
selector:
app: tomcode
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: tomcode
namespace: sites
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: Host(`tomcode.io`, `www.tomcode.io`)
services:
- name: tomcode
port: 80
tls:
certResolver: letsencrypt
domains:
- main: "tomcode.io"
sans:
- "*.tomcode.io"