kereru-forms/deploy/k8s.yaml

139 lines
3.1 KiB
YAML
Raw Normal View History

apiVersion: v1
kind: Namespace
metadata:
name: kereru-forms
---
apiVersion: v1
kind: ConfigMap
metadata:
name: kereru-forms-config
namespace: kereru-forms
data:
KERERU_LOG_LEVEL: info
KERERU_LOG_FORMAT: json
KERERU_ENVIRONMENT: production
KERERU_LISTEN_ADDR: 0.0.0.0
KERERU_PORT: "8080"
KERERU_DB_DRIVER: sqlite
KERERU_DB_DSN: "file:/data/kereru.db?_pragma=busy_timeout(5000)&_pragma=foreign_keys(1)"
KERERU_STATIC_DIR: /app/static
KERERU_CORS_ORIGINS: "*"
KERERU_TELEMETRY_ENABLED: "false"
OTEL_EXPORTER_OTLP_ENDPOINT: "http://otel-collector.observability.svc.cluster.local:4318"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: kereru-forms-data
namespace: kereru-forms
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: kereru-forms
namespace: kereru-forms
labels:
app: kereru-forms
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: kereru-forms
template:
metadata:
labels:
app: kereru-forms
spec:
securityContext:
runAsNonRoot: true
runAsUser: 10001
runAsGroup: 10001
fsGroup: 10001
fsGroupChangePolicy: OnRootMismatch
containers:
- name: kereru-forms
image: kereru-forms:1.0.0
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8080
envFrom:
- configMapRef:
name: kereru-forms-config
volumeMounts:
- name: data
mountPath: /data
- name: tmp
mountPath: /tmp
readinessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 15
periodSeconds: 20
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 500m
memory: 256Mi
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop: ["ALL"]
volumes:
- name: data
persistentVolumeClaim:
claimName: kereru-forms-data
- name: tmp
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: kereru-forms
namespace: kereru-forms
spec:
selector:
app: kereru-forms
ports:
- name: http
port: 80
targetPort: http
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kereru-forms
namespace: kereru-forms
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: forms.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kereru-forms
port:
name: http