66 lines
1.8 KiB
YAML
66 lines
1.8 KiB
YAML
{% if traefik_version | regex_search('(^1.)') %}
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
annotations:
|
|
{% if ingress_whitelist is defined %}
|
|
ingress.kubernetes.io/whitelist-source-range: "{% for acl_whitelist in ingress_whitelist %}{{ acl_whitelist }}{% if not loop.last %}, {% endif %}{% endfor %}"
|
|
{% endif %}
|
|
traefik.frontend.priority: "20"
|
|
{% if basic_auth is defined %}
|
|
traefik.ingress.kubernetes.io/auth-type: basic
|
|
traefik.ingress.kubernetes.io/auth-secret: basic-auth
|
|
{% endif %}
|
|
ingress.kubernetes.io/custom-request-headers: "Authorization:Bearer {{ token_value.stdout | b64decode }}"
|
|
labels:
|
|
k8s-app: kubernetes-dashboard
|
|
name: kubernetes-dashboard
|
|
namespace: kubernetes-dashboard
|
|
spec:
|
|
rules:
|
|
- host: dashboard.{{ ingress_domain }}
|
|
http:
|
|
paths:
|
|
- backend:
|
|
serviceName: kubernetes-dashboard
|
|
servicePort: 443
|
|
{% else %}
|
|
{% if traefik_version | regex_search('(^2.)') %}
|
|
apiVersion: traefik.io/v1alpha1
|
|
kind: IngressRoute
|
|
metadata:
|
|
labels:
|
|
k8s-app: kubernetes-dashboard
|
|
name: kubernetes-dashboard
|
|
namespace: kubernetes-dashboard
|
|
spec:
|
|
entryPoints:
|
|
- https
|
|
routes:
|
|
- kind: Rule
|
|
match: Host(`dashboard.{{ ingress_domain }}`)
|
|
priority: 12
|
|
middlewares:
|
|
{% if ingress_whitelist is defined %}
|
|
- name: traefik-ipwhitelist
|
|
namespace: traefik
|
|
{% endif %}
|
|
{% if basic_auth is defined %}
|
|
- name: basic-auth
|
|
namespace: traefik
|
|
{% endif %}
|
|
- name: kubernetes-dashboard-auth
|
|
services:
|
|
- name: kubernetes-dashboard
|
|
passHostHeader: true
|
|
port: 443
|
|
responseForwarding:
|
|
flushInterval: 100ms
|
|
weight: 1
|
|
tls:
|
|
options:
|
|
name: default
|
|
namespace: traefik
|
|
secretName: wildcard-cluster
|
|
{% endif %}
|
|
{% endif %}
|