infrastructure/kuma.yml

127 lines
2.6 KiB
YAML

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: kuma-pvc-2
namespace: default
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-path
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: kuma
namespace: default
spec:
replicas: 1
selector:
matchLabels:
ms: kuma
template:
metadata:
labels:
ms: kuma
spec:
containers:
- name: kuma
image: louislam/uptime-kuma
volumeMounts:
- name: volv
mountPath: /app/data
# resources:
# limits:
# memory: "512Mi"
# cpu: "100m"
volumes:
- name: volv
persistentVolumeClaim:
claimName: kuma-pvc-2
nodeSelector:
kubernetes.io/arch: arm64
tolerations:
- key: "arch"
operator: "Equal"
value: "arm64"
effect: "NoSchedule"
---
apiVersion: v1
kind: Service
metadata:
name: kuma
namespace: default
spec:
type: NodePort
selector:
ms: kuma
ports:
- port: 3001
targetPort: 3001
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: kuma-letsencrypt-prod
namespace: default
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: florian@nocodelytics.com
privateKeySecretRef:
name: kuma-letsencrypt-prod
solvers:
- http01:
ingress:
class: traefik
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: kuma
namespace: default
spec:
secretName: kuma-net-tls
issuerRef:
name: kuma-letsencrypt-prod
kind: Issuer
commonName: status.nocodelytics.com
dnsNames:
- status.nocodelytics.com
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kuma-nginx-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: "traefik"
cert-manager.io/issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/redirect-entry-point: https
cert-manager.io/acme-challenge-type: http01
spec:
rules:
- host: status.nocodelytics.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: ssl-redirect
port:
name: use-annotation
- path: /
pathType: Prefix
backend:
service:
name: kuma
port:
number: 3001
tls:
- hosts:
- status.nocodelytics.com
secretName: kuma-net-tls