Compare commits

...

4 commits

Author SHA1 Message Date
c0b4a9d16d Reduce maintenance 2020-07-13 15:21:19 +02:00
2b927f0c66 Remove default node_selector 2020-07-13 15:20:46 +02:00
d44d4b65f1 Remove common definition 2020-07-13 15:20:27 +02:00
a65d3a5e00 Fix deletion 2020-07-13 15:09:45 +02:00
41 changed files with 37 additions and 804 deletions

View file

@ -6,8 +6,8 @@ traefik_namespace: "traefik"
# - 10.96.0.0/12 # - 10.96.0.0/12
# - 10.244.0.0/16 # - 10.244.0.0/16
# - 192.168.0.0/24 # - 192.168.0.0/24
traefik_node_selector: #traefik_node_selector:
- localhost # - localhost
traefik_cpu_limit: 500m traefik_cpu_limit: 500m
traefik_memory_limit: 300Mi traefik_memory_limit: 300Mi
traefik_entrypoints: traefik_entrypoints:

View file

@ -49,7 +49,7 @@
k8s_info: k8s_info:
context: "{{ my_context }}" context: "{{ my_context }}"
api_version: v1 api_version: v1
kind: Deployment kind: DaemonSet
name: traefik name: traefik
namespace: '{{ traefik_namespace }}' namespace: '{{ traefik_namespace }}'
field_selectors: field_selectors:
@ -71,6 +71,7 @@
when: when:
- not traefik_actual_version.stdout == "[]" - not traefik_actual_version.stdout == "[]"
- not traefik_version == traefik_actual_version.stdout - not traefik_version == traefik_actual_version.stdout
- traefik_actual_version.stdout is version(traefik_version, '>')
- name: Install traefik version {{ traefik_version }} - name: Install traefik version {{ traefik_version }}
k8s: k8s:
@ -80,6 +81,19 @@
resource_definition: "{{ lookup('template', item) | from_yaml }}" resource_definition: "{{ lookup('template', item) | from_yaml }}"
with_items: with_items:
- "{{ lookup('vars', 'traefik_' + traefik_version + '_list') }}" - "{{ lookup('vars', 'traefik_' + traefik_version + '_list') }}"
- traefik-cm.yml.j2
- traefik-sa.yml.j2
- traefik-dp.yml.j2
- traefik-svc.yml.j2
- traefik-dashboard-svc.yml.j2
- traefik-middleware-httpsredirect.yml.j2
- traefik-middleware-basicauth.yml.j2
- traefik-middleware-headers.yml.j2
- traefik-tls-options.yml.j2
- traefik-dashboard.yml.j2
- traefik-dashboard-insecure.yml.j2
- traefik-ping.yml.j2
- name: Define state of ipwhitelist middleware to present - name: Define state of ipwhitelist middleware to present
set_fact: set_fact:

View file

@ -1,46 +0,0 @@
apiVersion: v1
data:
traefik.yaml: |
global:
checkNewVersion: true
serversTransport:
insecureSkipVerify: true
entryPoints:
{% for traefik_entrypoint in traefik_entrypoints %}
{{ traefik_entrypoint.name }}:
address: :{{ traefik_entrypoint.port }}
{% endfor %}
providers:
kubernetesCRD:
throttleDuration: 2s
kubernetesIngress: {}
metrics:
prometheus:
buckets:
- 0.1
- 0.3
- 1.2
- 5
entryPoint: traefik
ping:
entryPoint: traefik
api:
insecure: true
dashboard: true
debug: true
log:
level: DEBUG
accessLog:
format: json
fields:
names:
BackendAddr: keep
BackendName: keep
BackendURL: keep
FrontendName: keep
kind: ConfigMap
metadata:
labels:
app: traefik
name: traefik
namespace: traefik

View file

@ -1,39 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: traefik-dashboard-insecure
namespace: traefik
labels:
app: traefik
spec:
entryPoints:
- http
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 }}`)
# 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
# (optional) Priority disambiguates rules of the same length, for route matching.
priority: 12
middlewares:
{% if ingress_whitelist is defined %}
- name: traefik-ipwhitelist
{% endif %}
- name: https-only
services:
- name: traefik-dashboard
port: 8080
# (default 1) A weight used by the weighted round-robin strategy (WRR).
weight: 1
# (default true) PassHostHeader controls whether to leave the request's Host
# Header as it was before it reached the proxy, or whether to let the proxy set it
# to the destination (backend) host.
passHostHeader: true
responseForwarding:
# (default 100ms) Interval between flushes of the buffered response body to the client.
flushInterval: 100ms

View file

@ -1,24 +0,0 @@
apiVersion: v1
kind: Service
metadata:
labels:
app: traefik
name: traefik-dashboard
namespace: traefik
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
- name: traefik
port: 8080
protocol: TCP
- protocol: TCP
port: 443
name: https
targetPort: 443
type: ClusterIP
selector:
app: traefik

View file

@ -1,48 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: traefik-dashboard
namespace: 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 }}`)
# 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
# (optional) Priority disambiguates rules of the same length, for route matching.
priority: 12
{% if basic_auth is defined or ingress_whitelist is defined %}
middlewares:
{% if basic_auth is defined %}
- name: basic-auth
{% endif %}
{% if ingress_whitelist is defined %}
- name: traefik-ipwhitelist
{% endif %}
{% endif %}
services:
- name: traefik-dashboard
port: 8080
# (default 1) A weight used by the weighted round-robin strategy (WRR).
weight: 1
# (default true) PassHostHeader controls whether to leave the request's Host
# Header as it was before it reached the proxy, or whether to let the proxy set it
# to the destination (backend) host.
passHostHeader: true
responseForwarding:
# (default 100ms) Interval between flushes of the buffered response body to the client.
flushInterval: 100ms
tls:
secretName: wildcard-cluster
options:
name: default
namespace: {{ traefik_namespace }}

View file

@ -1,84 +0,0 @@
kind: Deployment
apiVersion: apps/v1
metadata:
namespace: traefik
name: traefik
labels:
app: traefik
spec:
replicas: {% if traefik_node_selector is defined %}{{ traefik_node_selector|length }}{% else %}1{% endif %}
strategy:
type: Recreate
selector:
matchLabels:
app: traefik
template:
metadata:
labels:
app: traefik
spec:
serviceAccountName: traefik-ingress-controller
containers:
- name: traefik
image: traefik:{{ traefik_version_2_0 }}
args:
- --configfile=/config/traefik.yaml
# imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
protocol: TCP
hostPort: 80
- name: https
containerPort: 443
protocol: TCP
hostPort: 443
- name: traefik
containerPort: 8080
protocol: TCP
hostPort: 8080
readinessProbe:
httpGet:
path: /ping
port: traefik
failureThreshold: 1
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
livenessProbe:
httpGet:
path: /ping
port: traefik
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
resources:
limits:
cpu: {{ traefik_cpu_limit }}
memory: {{ traefik_memory_limit }}
requests:
cpu: 100m
memory: 20Mi
volumeMounts:
- mountPath: /config
name: config
{% if traefik_node_selector is defined %}
nodeSelector:
entrypoint: traefik
{% endif %}
dnsPolicy: ClusterFirst
hostNetwork: false
restartPolicy: Always
terminationGracePeriodSeconds: 1
tolerations:
- effect: NoSchedule
operator: Exists
volumes:
- configMap:
defaultMode: 420
name: traefik
name: config

View file

@ -1,8 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: basic-auth
namespace: traefik
spec:
basicAuth:
secret: basic-auth

View file

@ -1,8 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: https-only
namespace: traefik
spec:
redirectScheme:
scheme: https

View file

@ -1,11 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: traefik-ipwhitelist
namespace: traefik
spec:
ipWhiteList:
sourceRange:
{% for acl_whitelist in ingress_whitelist %}
- {{ acl_whitelist }}
{% endfor %}

View file

@ -1,39 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: traefik-ping
namespace: 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(`/ping`)
# 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
# (optional) Priority disambiguates rules of the same length, for route matching.
priority: 14
services:
- name: traefik-dashboard
port: 8080
# (default 1) A weight used by the weighted round-robin strategy (WRR).
weight: 1
# (default true) PassHostHeader controls whether to leave the request's Host
# Header as it was before it reached the proxy, or whether to let the proxy set it
# to the destination (backend) host.
passHostHeader: true
responseForwarding:
# (default 100ms) Interval between flushes of the buffered response body to the client.
flushInterval: 100ms
tls:
secretName: wildcard-cluster
options:
name: default
namespace: {{ traefik_namespace }}

View file

@ -1,5 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
namespace: traefik
name: traefik-ingress-controller

View file

@ -1,21 +0,0 @@
apiVersion: v1
kind: Service
metadata:
labels:
app: traefik
name: traefik
namespace: traefik
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
- protocol: TCP
port: 443
name: https
targetPort: 443
type: LoadBalancer
selector:
app: traefik

View file

@ -1,15 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: TLSOption
metadata:
name: default
namespace: traefik
spec:
sniStrict: true
minVersion: VersionTLS12
cipherSuites:
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

View file

@ -1,48 +0,0 @@
apiVersion: v1
data:
traefik.yaml: |
global:
checkNewVersion: true
serversTransport:
insecureSkipVerify: true
entryPoints:
{% for traefik_entrypoint in traefik_entrypoints %}
{{ traefik_entrypoint.name }}:
address: :{{ traefik_entrypoint.port }}
{% endfor %}
providers:
kubernetesCRD:
ingressClass: "traefik"
throttleDuration: 2s
kubernetesIngress:
ingressClass: "traefik"
metrics:
prometheus:
buckets:
- 0.1
- 0.3
- 1.2
- 5
entryPoint: traefik
ping:
entryPoint: traefik
api:
insecure: true
dashboard: true
debug: true
log:
level: DEBUG
accessLog:
format: json
fields:
names:
BackendAddr: keep
BackendName: keep
BackendURL: keep
FrontendName: keep
kind: ConfigMap
metadata:
labels:
app: traefik
name: traefik
namespace: {{ traefik_namespace }}

View file

@ -1,94 +0,0 @@
kind: Deployment
apiVersion: apps/v1
metadata:
namespace: {{ traefik_namespace }}
name: traefik
labels:
app: traefik
spec:
replicas: {% if traefik_node_selector is defined %}{{ traefik_node_selector|length }}{% else %}1{% endif %}
strategy:
type: Recreate
selector:
matchLabels:
app: traefik
template:
metadata:
labels:
app: traefik
spec:
serviceAccountName: traefik-ingress-controller
containers:
- name: traefik
image: traefik:{{ traefik_version_2_1 }}
args:
- --configfile=/config/traefik.yaml
# imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 80
protocol: TCP
hostPort: 80
- name: https
containerPort: 443
protocol: TCP
hostPort: 443
- name: traefik
containerPort: 8080
protocol: TCP
hostPort: 8080
readinessProbe:
httpGet:
path: /ping
port: traefik
failureThreshold: 1
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
livenessProbe:
httpGet:
path: /ping
port: traefik
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
securityContext:
capabilities:
drop:
- ALL
add:
- NET_BIND_SERVICE
resources:
limits:
cpu: {{ traefik_cpu_limit }}
memory: {{ traefik_memory_limit }}
requests:
cpu: 100m
memory: 20Mi
volumeMounts:
- mountPath: /config
name: config
{% if traefik_node_selector is defined %}
nodeSelector:
flaminem.com/entrypoint: traefik
{% endif %}
dnsPolicy: ClusterFirst
{% if my_context == "flamykube" %}
hostNetwork: true
{% else %}
hostNetwork: false
{% endif %}
restartPolicy: Always
terminationGracePeriodSeconds: 1
tolerations:
- effect: NoSchedule
operator: Exists
volumes:
- configMap:
defaultMode: 420
name: traefik
name: config

View file

@ -1,31 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: security-headers
namespace: {{ traefik_namespace }}
spec:
headers:
browserXssFilter: "true"
contentTypeNosniff: "true"
forceSTSHeader: "true"
frameDeny = "true"
stsIncludeSubdomains: "true"
stsPreload: "true"
stsSeconds: "15768000"
sslRedirect: "true"
contentSecurityPolicy = "default-src 'self' 'unsafe-inline'"
customFrameOptionsValue: "SAMEORIGIN"
referrerPolicy = "same-origin"
featurePolicy = "vibrate 'self'"
# CORS
accessControlAllowMethods:
- "GET"
- "OPTIONS"
- "PUT"
accessControlAllowOrigin = "origin-list-or-null"
# accessControlAllowOriginList:
# - "https://foo.bar.org"
# - "https://example.org"
accessControlMaxAge: 100
addVaryHeader: "true"

View file

@ -1,11 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: traefik-ipwhitelist
namespace: {{ traefik_namespace }}
spec:
ipWhiteList:
sourceRange:
{% for acl_whitelist in ingress_whitelist %}
- {{ acl_whitelist }}
{% endfor %}

View file

@ -1,39 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: traefik-dashboard-insecure
namespace: {{ traefik_namespace }}
labels:
app: traefik
spec:
entryPoints:
- http
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 }}`)
# 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
# (optional) Priority disambiguates rules of the same length, for route matching.
priority: 12
middlewares:
{% if ingress_whitelist is defined %}
- name: traefik-ipwhitelist
{% endif %}
- name: https-only
services:
- name: traefik-dashboard
port: 8080
# (default 1) A weight used by the weighted round-robin strategy (WRR).
weight: 1
# (default true) PassHostHeader controls whether to leave the request's Host
# Header as it was before it reached the proxy, or whether to let the proxy set it
# to the destination (backend) host.
passHostHeader: true
responseForwarding:
# (default 100ms) Interval between flushes of the buffered response body to the client.
flushInterval: 100ms

View file

@ -1,24 +0,0 @@
apiVersion: v1
kind: Service
metadata:
labels:
app: traefik
name: traefik-dashboard
namespace: {{ traefik_namespace }}
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
- name: traefik
port: 8080
protocol: TCP
- protocol: TCP
port: 443
name: https
targetPort: 443
type: ClusterIP
selector:
app: traefik

View file

@ -1,50 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: traefik-dashboard
namespace: {{ traefik_namespace }}
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 }}`)
# 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
# (optional) Priority disambiguates rules of the same length, for route matching.
priority: 12
{% 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: traefik-dashboard
port: 8080
# (default 1) A weight used by the weighted round-robin strategy (WRR).
weight: 1
# (default true) PassHostHeader controls whether to leave the request's Host
# Header as it was before it reached the proxy, or whether to let the proxy set it
# to the destination (backend) host.
passHostHeader: true
responseForwarding:
# (default 100ms) Interval between flushes of the buffered response body to the client.
flushInterval: 100ms
tls:
store:
name: default
namespace: {{ traefik_namespace }}
options:
name: default
namespace: {{ traefik_namespace }}

View file

@ -1,8 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: basic-auth
namespace: {{ traefik_namespace }}
spec:
basicAuth:
secret: basic-auth

View file

@ -1,8 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: https-only
namespace: {{ traefik_namespace }}
spec:
redirectScheme:
scheme: https

View file

@ -1,39 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: traefik-ping
namespace: {{ traefik_namespace }}
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(`/ping`)
# 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
# (optional) Priority disambiguates rules of the same length, for route matching.
priority: 14
services:
- name: traefik-dashboard
port: 8080
# (default 1) A weight used by the weighted round-robin strategy (WRR).
weight: 1
# (default true) PassHostHeader controls whether to leave the request's Host
# Header as it was before it reached the proxy, or whether to let the proxy set it
# to the destination (backend) host.
passHostHeader: true
responseForwarding:
# (default 100ms) Interval between flushes of the buffered response body to the client.
flushInterval: 100ms
tls:
secretName: wildcard-cluster
options:
name: default
namespace: {{ traefik_namespace }}

View file

@ -1,5 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
namespace: {{ traefik_namespace }}
name: traefik-ingress-controller

View file

@ -1,21 +0,0 @@
apiVersion: v1
kind: Service
metadata:
labels:
app: traefik
name: traefik
namespace: {{ traefik_namespace }}
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
- protocol: TCP
port: 443
name: https
targetPort: 443
type: LoadBalancer
selector:
app: traefik

View file

@ -1,16 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: TLSOption
metadata:
name: default
namespace: {{ traefik_namespace }}
spec:
sniStrict: true
minVersion: VersionTLS12
cipherSuites:
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
curvePreferences:
- CurveP521
- CurveP384

View file

@ -31,7 +31,7 @@ data:
dashboard: true dashboard: true
debug: true debug: true
log: log:
level: DEBUG level: WARN
accessLog: accessLog:
format: json format: json
fields: fields:

View file

@ -1,4 +1,4 @@
kind: Deployment kind: DaemonSet
apiVersion: apps/v1 apiVersion: apps/v1
metadata: metadata:
namespace: {{ traefik_namespace }} namespace: {{ traefik_namespace }}
@ -7,7 +7,7 @@ metadata:
app: traefik app: traefik
spec: spec:
replicas: {% if traefik_node_selector is defined %}{{ traefik_node_selector|length }}{% else %}1{% endif %} # replicas: {% if traefik_node_selector is defined %}{{ traefik_node_selector|length }}{% else %}1{% endif %}
strategy: strategy:
type: Recreate type: Recreate
selector: selector:
@ -21,23 +21,17 @@ spec:
serviceAccountName: traefik-ingress-controller serviceAccountName: traefik-ingress-controller
containers: containers:
- name: traefik - name: traefik
image: traefik:{{ traefik_version_2_2 }} image: traefik:{{ lookup('vars', 'traefik_version_' + traefik_version | regex_replace('\.','_') ) }}
args: args:
- --configfile=/config/traefik.yaml - --configfile=/config/traefik.yaml
# imagePullPolicy: IfNotPresent # imagePullPolicy: IfNotPresent
ports: ports:
- name: http {% for traefik_entrypoint in traefik_entrypoints %}
containerPort: 80 - name: {{ traefik_entrypoint.name }}
protocol: TCP containerPort: {{ traefik_entrypoint.port }}
hostPort: 80 protocol: {{ traefik_entrypoint.proto }}
- name: https hostPort: {{ traefik_entrypoint.port }}
containerPort: 443 {% endfor %}
protocol: TCP
hostPort: 443
- name: traefik
containerPort: 8080
protocol: TCP
hostPort: 8080
readinessProbe: readinessProbe:
httpGet: httpGet:
path: /ping path: /ping

View file

@ -8,22 +8,22 @@ spec:
browserXssFilter: "true" browserXssFilter: "true"
contentTypeNosniff: "true" contentTypeNosniff: "true"
forceSTSHeader: "true" forceSTSHeader: "true"
frameDeny = "true" frameDeny: "true"
stsIncludeSubdomains: "true" stsIncludeSubdomains: "true"
stsPreload: "true" stsPreload: "true"
stsSeconds: "15768000" stsSeconds: "15768000"
sslRedirect: "true" sslRedirect: "true"
contentSecurityPolicy = "default-src 'self' 'unsafe-inline'" contentSecurityPolicy: "default-src 'self' 'unsafe-inline'"
customFrameOptionsValue: "SAMEORIGIN" customFrameOptionsValue: "SAMEORIGIN"
referrerPolicy = "same-origin" referrerPolicy: "same-origin"
featurePolicy = "vibrate 'self'" featurePolicy: "vibrate 'self'"
# CORS # CORS
accessControlAllowMethods: accessControlAllowMethods:
- "GET" - "GET"
- "OPTIONS" - "OPTIONS"
- "PUT" - "PUT"
accessControlAllowOrigin = "origin-list-or-null" accessControlAllowOrigin: "origin-list-or-null"
#accessControlAllowOriginList: #accessControlAllowOriginList:
# - "https://foo.bar.org" # - "https://foo.bar.org"
# - "https://example.org" # - "https://example.org"

View file

@ -6,6 +6,8 @@ metadata:
spec: spec:
ipWhiteList: ipWhiteList:
sourceRange: sourceRange:
{% if ingress_whitelist is defined %}
{% for acl_whitelist in ingress_whitelist %} {% for acl_whitelist in ingress_whitelist %}
- {{ acl_whitelist }} - {{ acl_whitelist }}
{% endfor %} {% endfor %}
{% endif %}

View file

@ -1,27 +1,14 @@
traefik_version_2_0: 2.0.7 traefik_version_2_0: 2.0.7
traefik_2.0_list: traefik_2.0_list:
- 2.0/traefik-cm.yml.j2
- 2.0/traefik-sa.yml.j2
- 2.0/traefik-clusterrole.yml.j2 - 2.0/traefik-clusterrole.yml.j2
- 2.0/traefik-clusterrolebinding.yml.j2 - 2.0/traefik-clusterrolebinding.yml.j2
- 2.0/traefik-crd-ingressroute.yml.j2 - 2.0/traefik-crd-ingressroute.yml.j2
- 2.0/traefik-crd-ingressroutetcp.yml.j2 - 2.0/traefik-crd-ingressroutetcp.yml.j2
- 2.0/traefik-crd-middleware.yml.j2 - 2.0/traefik-crd-middleware.yml.j2
- 2.0/traefik-crd-tlsoption.yml.j2 - 2.0/traefik-crd-tlsoption.yml.j2
- 2.0/traefik-dp.yml.j2
- 2.0/traefik-svc.yml.j2
- 2.0/traefik-dashboard-svc.yml.j2
- 2.0/traefik-middleware-httpsredirect.yml.j2
- 2.0/traefik-middleware-basicauth.yml.j2
- 2.0/traefik-tls-options.yml.j2
- 2.0/traefik-dashboard.yml.j2
- 2.0/traefik-dashboard-insecure.yml.j2
- 2.0/traefik-ping.yml.j2
traefik_version_2_1: 2.1.9 traefik_version_2_1: 2.1.9
traefik_2.1_list: traefik_2.1_list:
- 2.1/traefik-cm.yml.j2
- 2.1/traefik-sa.yml.j2
- 2.1/traefik-clusterrole.yml.j2 - 2.1/traefik-clusterrole.yml.j2
- 2.1/traefik-clusterrolebinding.yml.j2 - 2.1/traefik-clusterrolebinding.yml.j2
- 2.1/traefik-crd-ingressroute.yml.j2 - 2.1/traefik-crd-ingressroute.yml.j2
@ -29,16 +16,6 @@ traefik_2.1_list:
- 2.1/traefik-crd-middleware.yml.j2 - 2.1/traefik-crd-middleware.yml.j2
- 2.1/traefik-crd-tlsoption.yml.j2 - 2.1/traefik-crd-tlsoption.yml.j2
- 2.1/traefik-crd-traefikservice.yml.j2 - 2.1/traefik-crd-traefikservice.yml.j2
- 2.1/traefik-dp.yml.j2
- 2.1/traefik-svc.yml.j2
- 2.1/traefik-dashboard-svc.yml.j2
- 2.1/traefik-middleware-httpsredirect.yml.j2
- 2.1/traefik-middleware-basicauth.yml.j2
- 2.1/traefik-middleware-headers.yml.j2
- 2.1/traefik-tls-options.yml.j2
- 2.1/traefik-dashboard.yml.j2
- 2.1/traefik-dashboard-insecure.yml.j2
- 2.1/traefik-ping.yml.j2
traefik_version_2_2: 2.2.4 traefik_version_2_2: 2.2.4
traefik_2.2_list: traefik_2.2_list:
@ -49,17 +26,5 @@ traefik_2.2_list:
- 2.2/traefik-crd-tlsoptions.yml.j2 - 2.2/traefik-crd-tlsoptions.yml.j2
- 2.2/traefik-crd-tlsstores.yml.j2 - 2.2/traefik-crd-tlsstores.yml.j2
- 2.2/traefik-crd-traefikservices.yml.j2 - 2.2/traefik-crd-traefikservices.yml.j2
- 2.2/traefik-cm.yml.j2
- 2.2/traefik-sa.yml.j2
- 2.2/traefik-clusterrole.yml.j2 - 2.2/traefik-clusterrole.yml.j2
- 2.2/traefik-clusterrolebinding.yml.j2 - 2.2/traefik-clusterrolebinding.yml.j2
- 2.2/traefik-dp.yml.j2
- 2.2/traefik-svc.yml.j2
- 2.2/traefik-dashboard-svc.yml.j2
- 2.2/traefik-middleware-httpsredirect.yml.j2
- 2.2/traefik-middleware-basicauth.yml.j2
- 2.2/traefik-middleware-headers.yml.j2
- 2.2/traefik-tls-options.yml.j2
- 2.2/traefik-dashboard.yml.j2
- 2.2/traefik-dashboard-insecure.yml.j2
- 2.2/traefik-ping.yml.j2