knck_pl/combined.yaml
Jakub Kaniecki 1befef102f deploy
2025-03-30 18:59:15 +02:00

160 lines
3.7 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: knck-app
labels:
app: knck-app
spec:
replicas: 2
selector:
matchLabels:
app: knck-app
template:
metadata:
labels:
app: knck-app
spec:
containers:
- name: knck-frontend
image: knck-frontend:latest
imagePullPolicy: Always
ports:
- containerPort: 80
resources:
requests:
cpu: "50m"
memory: "64Mi"
limits:
cpu: "100m"
memory: "128Mi"
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 15
periodSeconds: 20
- name: knck-backend
image: knck-backend:latest
imagePullPolicy: Always
ports:
- containerPort: 3001
env:
- name: PORT
value: "3001"
- name: NODE_ENV
value: "production"
- name: SMTP_HOST
valueFrom:
secretKeyRef:
name: knck-secrets
key: smtp-host
- name: SMTP_PORT
valueFrom:
secretKeyRef:
name: knck-secrets
key: smtp-port
- name: SMTP_USER
valueFrom:
secretKeyRef:
name: knck-secrets
key: smtp-user
- name: SMTP_PASS
valueFrom:
secretKeyRef:
name: knck-secrets
key: smtp-pass
- name: SMTP_FROM
valueFrom:
secretKeyRef:
name: knck-secrets
key: smtp-from
- name: SMTP_TO
valueFrom:
secretKeyRef:
name: knck-secrets
key: smtp-to
- name: CORS_ORIGIN
value: "https://knck.pl"
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "200m"
memory: "256Mi"
readinessProbe:
httpGet:
path: /health
port: 3001
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /health
port: 3001
initialDelaySeconds: 15
periodSeconds: 20
---
kind: Ingress
metadata:
name: knck-ingress
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
traefik.ingress.kubernetes.io/router.middlewares: default-redirect-https@kubernetescrd
traefik.ingress.kubernetes.io/service.serversscheme: http
traefik.ingress.kubernetes.io/service.passhostheader: "true"
traefik.ingress.kubernetes.io/router.priority: "1"
cert-manager.io/cluster-issuer: letsencrypt-prod
acme.cert-manager.io/http01-edit-in-place: "true"
acme.cert-manager.io/http01-ingress-class: traefik
spec:
tls:
- hosts:
- knck.pl
- api.knck.pl
secretName: knck-tls
rules:
- host: knck.pl
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: knck-app
port:
number: 80
- host: api.knck.pl
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: knck-app
port:
number: 3001
---
kind: Service
metadata:
name: knck-app
spec:
selector:
app: knck-app
ports:
- name: frontend
protocol: TCP
port: 80
targetPort: 80
- name: backend
protocol: TCP
port: 3001
targetPort: 3001
type: ClusterIP