This commit is contained in:
Jakub Kaniecki
2025-03-30 14:46:32 +02:00
commit 4df1d9f9a6
65 changed files with 62132 additions and 0 deletions

View File

@@ -0,0 +1,102 @@
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

36
k8s/combined-ingress.yaml Normal file
View File

@@ -0,0 +1,36 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: knck-ingress
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-body-size: "8m"
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

17
k8s/combined-service.yaml Normal file
View File

@@ -0,0 +1,17 @@
apiVersion: v1
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

13
k8s/secrets.yaml Normal file
View File

@@ -0,0 +1,13 @@
apiVersion: v1
kind: Secret
metadata:
name: knck-secrets
type: Opaque
data:
# These values should be base64 encoded
smtp-host: c210cC5tYWlsLm1lLmNvbQ== # smtp.mail.me.com
smtp-port: NTg3 # 587
smtp-user: eW91ci1lbWFpbEBtZS5jb20= # your-email@me.com
smtp-pass: eW91ci1hcHAtc3BlY2lmaWMtcGFzc3dvcmQ= # your-app-specific-password
smtp-from: eW91ci1lbWFpbEBtZS5jb20= # your-email@me.com
smtp-to: eW91ci1lbWFpbEBtZS5jb20= # your-email@me.com