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>
57 lines
1 KiB
YAML
57 lines
1 KiB
YAML
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: pangolin-controller
|
|
namespace: pangolin
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: pangolin-controller
|
|
rules:
|
|
# Traefik CRDs - full CRUD
|
|
- apiGroups:
|
|
- traefik.containo.us
|
|
- traefik.io
|
|
resources:
|
|
- ingressroutes
|
|
- middlewares
|
|
- traefikservices
|
|
verbs:
|
|
- get
|
|
- list
|
|
- watch
|
|
- create
|
|
- update
|
|
- patch
|
|
- delete
|
|
# Leases for leader election
|
|
- apiGroups:
|
|
- coordination.k8s.io
|
|
resources:
|
|
- leases
|
|
verbs:
|
|
- get
|
|
- create
|
|
- update
|
|
# Events for logging
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- events
|
|
verbs:
|
|
- create
|
|
- patch
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: pangolin-controller
|
|
roleRef:
|
|
apiGroup: rbac.authorization.k8s.io
|
|
kind: ClusterRole
|
|
name: pangolin-controller
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: pangolin-controller
|
|
namespace: pangolin
|