apiVersion: apps/v1 kind: Deployment metadata: name: traefik-ondemand-service labels: app: traefik-ondemand-service spec: replicas: 1 selector: matchLabels: app: traefik-ondemand-service template: metadata: labels: app: traefik-ondemand-service spec: serviceAccountName: traefik-ondemand-service serviceAccount: traefik-ondemand-service containers: - name: traefik-ondemand-service image: ghcr.io/acouvreur/traefik-ondemand-service:1 args: ["--swarmMode=false", "--kubernetesMode=true"] ports: - containerPort: 10000 --- apiVersion: v1 kind: Service metadata: name: traefik-ondemand-service spec: selector: app: traefik-ondemand-service ports: - protocol: TCP port: 10000 targetPort: 10000 --- apiVersion: v1 kind: ServiceAccount metadata: name: traefik-ondemand-service --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: traefik-ondemand-service namespace: {{ traefik_namespace }} rules: - apiGroups: - apps resources: - deployments - deployments/scale verbs: - patch - get - update --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: traefik-ondemand-service roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: traefik-ondemand-service subjects: - kind: ServiceAccount name: traefik-ondemand-service namespace: {{ traefik_namespace }} --- apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: name: ondemand spec: plugin: traefik-ondemand-plugin: name: traefik_ondemand_plugin serviceUrl: 'http://traefik-ondemand-service.{{ traefik_namespace }}:10000' timeout: 1m