stack.basicstack.de/apps/pangolin/kube-controller/deployment.yaml
CTO Agent 0fe46b77ec feat(pangolin): Add Kubernetes controller manifests
Create complete manifest set for Pangolin controller deployment:
- RBAC with ServiceAccount, ClusterRole, and ClusterRoleBinding
- ConfigMap with controller configuration (endpoint, namespace, leader election)
- Deployment with resource limits, health probes, and security context
- Service for metrics endpoint on port 8080

Controller will manage Traefik CRDs (IngressRoute, Middleware, TraefikService)
and sync configuration from Pangolin API.

Relates to DEV-397

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-08-01 15:40:30 +00:00

65 lines
1.6 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: pangolin-controller
namespace: pangolin
labels:
app: pangolin-controller
component: controller
spec:
replicas: 1
selector:
matchLabels:
app: pangolin-controller
component: controller
template:
metadata:
labels:
app: pangolin-controller
component: controller
spec:
serviceAccountName: pangolin-controller
containers:
- name: controller
image: fosrl/pangolin-kube-controller:latest
imagePullPolicy: Always
envFrom:
- configMapRef:
name: pangolin-controller-config
ports:
- name: metrics
containerPort: 8080
protocol: TCP
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 15
periodSeconds: 20
timeoutSeconds: 5
failureThreshold: 3
readinessProbe:
httpGet:
path: /readyz
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
runAsNonRoot: true
capabilities:
drop:
- ALL
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault