Files
dyn/k8s/base/deployment.yaml
Tanishq Dubey f3f1c0a0c8 Add Kubernetes/K3s deployment manifests and documentation
- Complete k8s manifests with Kustomize support
- Production and staging overlays
- ConfigMap/Secret management
- Ingress with TLS (Traefik/NGINX)
- Persistent storage for SQLite
- Comprehensive k8s README with operations guide
- Updated main README with k8s deployment instructions
- Gitignore for k8s secrets

Usage:
  kubectl apply -k k8s/overlays/production
2026-02-01 16:40:16 -05:00

87 lines
1.6 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: dyn-ddns
labels:
app: dyn-ddns
spec:
replicas: 1
selector:
matchLabels:
app: dyn-ddns
template:
metadata:
labels:
app: dyn-ddns
spec:
containers:
- name: dyn-ddns
image: git.dws.rip/DWS/dyn:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
name: http
envFrom:
- configMapRef:
name: dyn-ddns-config
- secretRef:
name: dyn-ddns-secrets
volumeMounts:
- name: data
mountPath: /data
resources:
requests:
memory: "64Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 10
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 3
readinessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 3
failureThreshold: 3
volumes:
- name: data
persistentVolumeClaim:
claimName: dyn-ddns-data
---
apiVersion: v1
kind: Service
metadata:
name: dyn-ddns
labels:
app: dyn-ddns
spec:
selector:
app: dyn-ddns
ports:
- port: 80
targetPort: 8080
name: http
type: ClusterIP
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: dyn-ddns-data
labels:
app: dyn-ddns
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi