Add ondemand plugin
Some checks reported errors
continuous-integration/drone/push Build encountered an error
Some checks reported errors
continuous-integration/drone/push Build encountered an error
This commit is contained in:
parent
e76a31ffeb
commit
ba1319aeef
4 changed files with 108 additions and 1 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
my_context: kubernetes
|
my_context: kubernetes
|
||||||
traefik_version: "2.7.1"
|
traefik_version: "2.8.1"
|
||||||
cluster_domain: "local"
|
cluster_domain: "local"
|
||||||
traefik_namespace: "traefik"
|
traefik_namespace: "traefik"
|
||||||
traefik_service_type: LoadBalancer
|
traefik_service_type: LoadBalancer
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,19 @@
|
||||||
# - traefik-svc.yml.j2
|
# - traefik-svc.yml.j2
|
||||||
# - traefik-defaultbackend.yml.j2
|
# - traefik-defaultbackend.yml.j2
|
||||||
|
|
||||||
|
- name: Install traefik plugin's
|
||||||
|
k8s:
|
||||||
|
state: "present"
|
||||||
|
context: "{{ my_context }}"
|
||||||
|
namespace: '{{ traefik_namespace }}'
|
||||||
|
# merge_type: merge
|
||||||
|
apply: yes
|
||||||
|
resource_definition: "{{ lookup('template', item) | from_yaml_all }}"
|
||||||
|
with_items:
|
||||||
|
- traefik-ondemand-plugin.yml.j2
|
||||||
|
when:
|
||||||
|
- traefik_ondemand is defined
|
||||||
|
|
||||||
- name: Defined traefik-hub repository
|
- name: Defined traefik-hub repository
|
||||||
kubernetes.core.helm_repository:
|
kubernetes.core.helm_repository:
|
||||||
name: traefik-hub
|
name: traefik-hub
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ data:
|
||||||
entryPoint:
|
entryPoint:
|
||||||
to: websecure
|
to: websecure
|
||||||
scheme: https
|
scheme: https
|
||||||
|
permanent: true
|
||||||
|
# http3:
|
||||||
|
# advertisedPort: 42
|
||||||
websecure:
|
websecure:
|
||||||
address: ":8443/tcp"
|
address: ":8443/tcp"
|
||||||
http:
|
http:
|
||||||
|
|
@ -33,6 +36,8 @@ data:
|
||||||
# - auth@file
|
# - auth@file
|
||||||
# - secure_headers@file
|
# - secure_headers@file
|
||||||
# - crowdsec-bouncer@file
|
# - crowdsec-bouncer@file
|
||||||
|
# http3:
|
||||||
|
# advertisedPort: 42
|
||||||
traefik:
|
traefik:
|
||||||
address: ":9000/tcp"
|
address: ":9000/tcp"
|
||||||
metrics:
|
metrics:
|
||||||
|
|
@ -63,8 +68,10 @@ data:
|
||||||
kubernetesCRD:
|
kubernetesCRD:
|
||||||
# ingressClass: "traefik"
|
# ingressClass: "traefik"
|
||||||
throttleDuration: 2s
|
throttleDuration: 2s
|
||||||
|
allowEmptyServices: true
|
||||||
kubernetesIngress:
|
kubernetesIngress:
|
||||||
ingressClass: "traefik"
|
ingressClass: "traefik"
|
||||||
|
allowEmptyServices: true
|
||||||
file:
|
file:
|
||||||
directory: /etc/traefik/file/
|
directory: /etc/traefik/file/
|
||||||
watch: true
|
watch: true
|
||||||
|
|
@ -99,3 +106,9 @@ data:
|
||||||
{% if traefik_hub_token is defined %}
|
{% if traefik_hub_token is defined %}
|
||||||
hub: true
|
hub: true
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if traefik_ondemand is defined %}
|
||||||
|
plugins:
|
||||||
|
traefik-ondemand-plugin:
|
||||||
|
moduleName: github.com/acouvreur/traefik-ondemand-plugin
|
||||||
|
version: v1.2.0
|
||||||
|
{% endif %}
|
||||||
|
|
|
||||||
81
templates/traefik-ondemand-plugin.yml.j2
Normal file
81
templates/traefik-ondemand-plugin.yml.j2
Normal file
|
|
@ -0,0 +1,81 @@
|
||||||
|
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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue