Files

141 lines
3.2 KiB
YAML

---
apiVersion: v1
kind: ServiceAccount
metadata:
name: traefik-mesh-controller
namespace: traefik-mesh
labels:
app.kubernetes.io/name: traefik-mesh
app.kubernetes.io/component: controller
app.kubernetes.io/part-of: traefik-mesh
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: traefik-mesh-controller-role
namespace: traefik-mesh
labels:
app.kubernetes.io/name: traefik-mesh
app.kubernetes.io/component: controller
app.kubernetes.io/part-of: traefik-mesh
rules:
- apiGroups:
- ""
resources:
- pods
- endpoints
verbs:
- list
- watch
- apiGroups:
- ""
resources:
- services
verbs:
- get
- list
- watch
- delete
- create
- update
- apiGroups:
- access.smi-spec.io
- specs.smi-spec.io
- split.smi-spec.io
resources:
- traffictargets
- tcproutes
- httproutegroups
- trafficsplits
- events
verbs:
- get
- list
- watch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: traefik-mesh-controller
namespace: traefik-mesh
labels:
app.kubernetes.io/name: traefik-mesh
app.kubernetes.io/component: controller
app.kubernetes.io/part-of: traefik-mesh
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: traefik-mesh-controller-role
subjects:
- kind: ServiceAccount
name: traefik-mesh-controller
namespace: traefik-mesh
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: traefik-mesh-controller
namespace: traefik-mesh
labels:
app.kubernetes.io/name: traefik-mesh
app.kubernetes.io/component: controller
app.kubernetes.io/part-of: traefik-mesh
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: traefik-mesh
app.kubernetes.io/component: controller
app.kubernetes.io/part-of: traefik-mesh
template:
metadata:
labels:
app.kubernetes.io/name: traefik-mesh
app.kubernetes.io/component: controller
app.kubernetes.io/part-of: traefik-mesh
spec:
serviceAccountName: traefik-mesh-controller
containers:
- name: traefik-mesh-controller
image: "traefik/mesh:latest"
imagePullPolicy: IfNotPresent
args:
- "--logLevel=DEBUG"
- "--defaultMode=http"
- "--namespace=traefik-mesh"
- "--limitHTTPPort=5"
- "--limitTCPPort=5"
- "--limitUDPPort=5"
ports:
- name: api
containerPort: 9000
readinessProbe:
httpGet:
path: /api/ready
port: api
initialDelaySeconds: 3
periodSeconds: 1
---
apiVersion: v1
kind: Service
metadata:
name: traefik-mesh-controller
namespace: traefik-mesh
labels:
app.kubernetes.io/name: traefik-mesh
app.kubernetes.io/component: controller
app.kubernetes.io/part-of: traefik-mesh
spec:
type: ClusterIP
ports:
- port: 9000
name: mesh-controller-api
targetPort: api
selector:
app.kubernetes.io/name: traefik-mesh
app.kubernetes.io/component: controller
app.kubernetes.io/part-of: traefik-mesh