48 lines
1.4 KiB
Django/Jinja
48 lines
1.4 KiB
Django/Jinja
apiVersion: traefik.containo.us/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
name: traefik
|
|
labels:
|
|
app: traefik
|
|
|
|
spec:
|
|
entryPoints:
|
|
- https
|
|
routes:
|
|
# Match is the rule corresponding to an underlying router.
|
|
# Later on, match could be the simple form of a path prefix, e.g. just "/bar",
|
|
# but for now we only support a traefik style matching rule.
|
|
- match: Host(`traefik.{{ traefik_domain }}`) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
|
|
# kind could eventually be one of "Rule", "Path", "Host", "Method", "Header",
|
|
# "Parameter", etc, to support simpler forms of rule matching, but for now we
|
|
# only support "Rule".
|
|
kind: Rule
|
|
{% if basic_auth is defined or ingress_whitelist is defined %}
|
|
middlewares:
|
|
{% if ingress_whitelist is defined %}
|
|
- name: traefik-ipwhitelist
|
|
{% endif %}
|
|
{% if basic_auth is defined %}
|
|
- name: basic-auth
|
|
{% endif %}
|
|
{% endif %}
|
|
services:
|
|
- name: api@internal
|
|
kind: TraefikService
|
|
- match: Host(`traefik.{{ traefik_domain }}`) && PathPrefix(`/ping`)
|
|
kind: Rule
|
|
services:
|
|
- name: ping@internal
|
|
kind: TraefikService
|
|
- match: Host(`traefik.{{ traefik_domain }}`) && PathPrefix(`/metrics`)
|
|
kind: Rule
|
|
services:
|
|
- name: prometheus@internal
|
|
kind: TraefikService
|
|
|
|
|
|
|
|
tls:
|
|
{% if traefik_dashboard_certificate is defined %}
|
|
secretName: {{ traefik_dashboard_certificate }}
|
|
{% endif %}
|