feat(traefik): add geoblock middleware (#4396)
* feat(traefik): add geoblock middleware * add the required args * add UI * fix indentaiton
This commit is contained in:
@@ -23,7 +23,7 @@ sources:
|
||||
- https://github.com/traefik/traefik-helm-chart
|
||||
- https://traefik.io/
|
||||
type: application
|
||||
version: 15.0.1
|
||||
version: 15.1.0
|
||||
annotations:
|
||||
truecharts.org/catagories: |
|
||||
- network
|
||||
|
||||
@@ -182,6 +182,7 @@ questions:
|
||||
# Include{ipWhitelistMiddleware}
|
||||
# Include{themeParkMiddleware}
|
||||
# Include{realIPMiddleware}
|
||||
# Include{geoBlockMiddleware}
|
||||
# Include{addPrefixMiddleware}
|
||||
- variable: service
|
||||
group: "Networking and Services"
|
||||
|
||||
@@ -158,6 +158,12 @@ args:
|
||||
- "--experimental.plugins.traefik-themepark.version={{ .Values.middlewares.themeParkVersion }}"
|
||||
{{- end }}
|
||||
{{/* End of theme.park */}}
|
||||
{{/* GeoBlock */}}
|
||||
{{- if .Values.middlewares.geoBlock }}
|
||||
- "--experimental.plugins.GeoBlock.modulename=github.com/PascalMinder/geoblock"
|
||||
- "--experimental.plugins.GeoBlock.version={{ .Values.middlewares.geoBlockVersion }}"
|
||||
{{- end }}
|
||||
{{/* End of GeoBlock */}}
|
||||
{{/* RealIP */}}
|
||||
{{- if .Values.middlewares.realIP }}
|
||||
- "--experimental.plugins.traefik-real-ip.modulename=github.com/soulbalz/traefik-real-ip"
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
{{- $values := .Values }}
|
||||
{{- $namespace := ( printf "ix-%s" .Release.Name ) }}
|
||||
{{- if or ( not .Values.ingressClass.enabled ) ( and ( .Values.ingressClass.enabled ) ( .Values.ingressClass.isDefaultClass ) ) }}
|
||||
{{- $namespace = "default" }}
|
||||
{{- end }}
|
||||
{{- range $index, $middlewareData := .Values.middlewares.geoBlock }}
|
||||
|
||||
---
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: {{ $middlewareData.name }}
|
||||
namespace: {{ $namespace }}
|
||||
spec:
|
||||
plugin:
|
||||
GeoBlock:
|
||||
allowLocalRequests: {{ $middlewareData.allowLocalRequests }}
|
||||
logLocalRequests: {{ $middlewareData.logLocalRequests }}
|
||||
logAllowedRequests: {{ $middlewareData.logAllowedRequests }}
|
||||
logApiRequests: {{ $middlewareData.logApiRequests }}
|
||||
api: {{ $middlewareData.api }}
|
||||
apiTimeoutMs: {{ $middlewareData.apiTimeoutMs }}
|
||||
cacheSize: {{ $middlewareData.cacheSize }}
|
||||
forceMonthlyUpdate: {{ $middlewareData.forceMonthlyUpdate }}
|
||||
allowUnknownCountries: {{ $middlewareData.allowUnknownCountries }}
|
||||
unknownCountryApiResponse: {{ $middlewareData.unknownCountryApiResponse }}
|
||||
{{- if not $middlewareData.countries }}
|
||||
{{- fail "You have to define at least one country..." }}
|
||||
{{- end }}
|
||||
countries:
|
||||
{{- range $middlewareData.countries }}
|
||||
- {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -376,6 +376,22 @@ middlewares:
|
||||
addPrefix: []
|
||||
# - name: addPrefixName
|
||||
# prefix: "/foo"
|
||||
geoBlockVersion: v0.2.3
|
||||
geoBlock: []
|
||||
# -- https://github.com/PascalMinder/geoblock
|
||||
# - name: geoBlockName
|
||||
# allowLocalRequests: true
|
||||
# logLocalRequests: false
|
||||
# logAllowedRequests: false
|
||||
# logApiRequests: false
|
||||
# api: https://get.geojs.io/v1/ip/country/{ip}
|
||||
# apiTimeoutMs: 500
|
||||
# cacheSize: 25
|
||||
# forceMonthlyUpdate: true
|
||||
# allowUnknownCountries: false
|
||||
# unknownCountryApiResponse: nil
|
||||
# countries:
|
||||
# - RU
|
||||
|
||||
portalhook:
|
||||
enabled: true
|
||||
|
||||
Reference in New Issue
Block a user