277 lines
9.6 KiB
Smarty
277 lines
9.6 KiB
Smarty
{{/* Define the config */}}
|
|
{{- define "blocky.configmap" -}}
|
|
{{- $config := mustMerge ( include "blocky.config" . | fromYaml ) ( .Values.blockyConfig ) }}
|
|
enabled: true
|
|
data:
|
|
config.yml: |
|
|
{{ $config | toYaml | indent 4 }}
|
|
{{- end -}}
|
|
|
|
{{- define "blocky.config" -}}
|
|
redis:
|
|
address: {{ printf "%v-%v" .Release.Name "redis" }}:6379
|
|
password: {{ .Values.redis.creds.redisPassword | trimAll "\"" }}
|
|
database: 0
|
|
required: true
|
|
connectionAttempts: 10
|
|
connectionCooldown: 3s
|
|
|
|
prometheus:
|
|
enable: true
|
|
path: /metrics
|
|
|
|
queryLog:
|
|
# optional one of: postgresql, csv, csv-client. If empty, log to console
|
|
type: {{ .Values.queryLog.type }}
|
|
# directory (should be mounted as volume in docker) for csv, db connection string for mysql/postgresql
|
|
#postgresql target: postgres://user:password@db_host_or_ip:5432/db_name
|
|
{{- if eq .Values.queryLog.type "postgresql" }}
|
|
target: {{ .Values.cnpg.main.creds.std }}
|
|
{{- else }}
|
|
target: {{ .Values.queryLog.target }}
|
|
{{- end }}
|
|
# if > 0, deletes log files which are older than ... days
|
|
logRetentionDays: {{ .Values.queryLog.logRetentionDays | default 0 }}
|
|
# optional: Max attempts to create specific query log writer
|
|
creationAttempts: {{ .Values.queryLog.creationAttempts | default 3 }}
|
|
# optional: Time between the creation attempts
|
|
creationCooldown: {{ .Values.queryLog.creationCooldown | default "2s" }}
|
|
|
|
upstreams:
|
|
groups:
|
|
default:
|
|
{{- .Values.defaultUpstreams | toYaml | nindent 10 }}
|
|
{{- range $id, $value := .Values.upstreams }}
|
|
{{ $value.name }}:
|
|
{{- $value.dnsservers | toYaml | nindent 10 }}
|
|
{{- end }}
|
|
timeout: {{ .Values.upstreamTimeout | default "1s" }}
|
|
|
|
ports:
|
|
{{- if .Values.service.dns.enabled }}
|
|
dns: {{ .Values.service.dns.ports.dns.targetPort }}
|
|
{{- end }}
|
|
{{- if .Values.service.dot.enabled }}
|
|
tls: {{ .Values.service.dot.ports.dot.targetPort }}
|
|
{{- end }}
|
|
{{- if .Values.service.main.enabled }}
|
|
http: {{ .Values.service.main.ports.main.targetPort }}
|
|
{{- end }}
|
|
{{- if .Values.service.https.enabled }}
|
|
https: {{ .Values.service.https.ports.https.targetPort }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.certFile }}
|
|
certFile: {{ .Values.certFile }}
|
|
{{- end }}
|
|
{{- if .Values.keyFile }}
|
|
keyFile: {{ .Values.keyFile }}
|
|
{{- end }}
|
|
|
|
log:
|
|
{{- if .Values.logLevel }}
|
|
level: {{ .Values.logLevel }}
|
|
{{- end }}
|
|
{{- if .Values.logFormat }}
|
|
format: {{ .Values.logFormat }}
|
|
{{- end }}
|
|
{{- if .Values.logTimestamp }}
|
|
timestamp: {{ .Values.logTimestamp }}
|
|
{{- end }}
|
|
{{- if .Values.logPrivacy }}
|
|
privacy: {{ .Values.logPrivacy }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.minTlsServeVersion }}
|
|
minTlsServeVersion: {{ .Values.minTlsServeVersion }}
|
|
{{- end }}
|
|
|
|
caching:
|
|
{{ toYaml .Values.caching | indent 2 }}
|
|
|
|
{{- if .Values.hostsFile.enabled }}
|
|
{{ $hostsfile := omit .Values.hostsFile "enabled" }}
|
|
hostsFile:
|
|
{{ toYaml $hostsfile | indent 2 }}
|
|
{{- end }}
|
|
|
|
{{- if or .Values.bootstrapDns.upstream .Values.bootstrapDns.ips }}
|
|
bootstrapDns:
|
|
{{- if .Values.bootstrapDns.upstream }}
|
|
- upstream: {{ .Values.bootstrapDns.upstream }}
|
|
{{- end }}
|
|
{{- if .Values.bootstrapDns.ips }}
|
|
ips:
|
|
{{- range $id, $value := .Values.bootstrapDns.ips }}
|
|
- {{ $value }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{/* Add additional Bootstrap DNS */}}
|
|
{{- range .Values.additionalBootstrapDns }}
|
|
{{- with .upstream }}
|
|
- upstream: {{ . }}
|
|
{{- end }}
|
|
{{- if .ips }}
|
|
ips:
|
|
{{- range $id, $value := .ips }}
|
|
- {{ $value }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.filtering.queryTypes }}
|
|
filtering:
|
|
queryTypes:
|
|
{{- range .Values.filtering.queryTypes }}
|
|
- {{ . }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if or .Values.customDNS.filterUnmappedTypes .Values.customDNS.customTTL .Values.customDNS.rewrite .Values.customDNS.mapping }}
|
|
customDNS:
|
|
{{- if .Values.customDNS.customTTL }}
|
|
customTTL: {{ .Values.customDNS.customTTL }}
|
|
{{- end }}
|
|
{{- if .Values.customDNS.filterUnmappedTypes }}
|
|
filterUnmappedTypes: {{ .Values.customDNS.filterUnmappedTypes }}
|
|
{{- end }}
|
|
{{- if .Values.customDNS.rewrite }}
|
|
rewrite:
|
|
{{- range $id, $value := .Values.customDNS.rewrite }}
|
|
{{ $value.in }}: {{ $value.out }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if .Values.customDNS.mapping }}
|
|
mapping:
|
|
{{- range $id, $value := .Values.customDNS.mapping }}
|
|
{{ $value.domain }}: {{ $value.dnsserver }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if or .Values.clientLookup.upstream .Values.clientLookup.ips }}
|
|
clientLookup:
|
|
{{- if .Values.clientLookup.upstream }}
|
|
upstream: {{ .Values.clientLookup.upstream }}
|
|
{{- end }}
|
|
{{- if .Values.clientLookup.ips }}
|
|
singleNameOrder:
|
|
{{- range $id, $value := .Values.clientLookup.ips }}
|
|
- {{ $value }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if .Values.clientLookup.clients }}
|
|
clients:
|
|
{{- range $id, $value := .Values.clientLookup.clients }}
|
|
{{ $value.domain }}:
|
|
{{- range $id, $value := .ips }}
|
|
- {{ $value }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if or .Values.conditional.rewrite .Values.conditional.mapping ( and .Values.k8sgateway.enabled .Values.k8sgateway.domains ) }}
|
|
conditional:
|
|
{{- if .Values.conditional.fallbackUpstream }}
|
|
fallbackUpstream: {{ .Values.conditional.fallbackUpstream }}
|
|
{{- end }}
|
|
{{- if .Values.conditional.rewrite }}
|
|
rewrite:
|
|
{{- range $id, $value := .Values.conditional.rewrite }}
|
|
{{ $value.in }}: {{ $value.out }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if or .Values.conditional.mapping ( and .Values.k8sgateway.enabled .Values.k8sgateway.domains ) }}
|
|
mapping:
|
|
{{- if and .Values.k8sgateway.enabled .Values.k8sgateway.domains }}
|
|
{{- range $id, $value := .Values.k8sgateway.domains }}
|
|
{{ .domain }}: 127.0.0.1:{{ $.Values.service.k8sgateway.ports.k8sgateway.targetPort }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- range $id, $value := .Values.conditional.mapping }}
|
|
{{ $value.domain }}: {{ $value.dnsserver }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
blocking:
|
|
blockType: {{ .Values.blocking.blockType }}
|
|
blockTTL: {{ .Values.blocking.blockTTL }}
|
|
loading:
|
|
refreshPeriod: {{ .Values.blocking.refreshPeriod }}
|
|
downloads:
|
|
timeout: {{ .Values.blocking.downloadTimeout }}
|
|
writeTimeout: {{ .Values.blocking.writeTimeout }}
|
|
readTimeout: {{ .Values.blocking.readTimeout }}
|
|
readHeaderTimeout: {{ .Values.blocking.readHeaderTimeout }}
|
|
attempts: {{ .Values.blocking.downloadAttempts }}
|
|
cooldown: {{ .Values.blocking.downloadCooldown }}
|
|
concurrency: {{ .Values.blocking.processingConcurrency }}
|
|
strategy: {{ .Values.blocking.startStrategy }}
|
|
maxErrorsPerSource: {{ .Values.blocking.maxErrorsPerSource }}
|
|
|
|
allowlists:
|
|
default:
|
|
- https://raw.githubusercontent.com/anudeepND/whitelist/master/domains/optional-list.txt
|
|
- https://raw.githubusercontent.com/anudeepND/whitelist/master/domains/whitelist.txt
|
|
- https://raw.githubusercontent.com/rahilpathan/pihole-whitelist/main/1.LowWL.txt
|
|
{{- range $id, $value := .Values.blocking.whitelist }}
|
|
{{ $value.name }}:
|
|
{{- $value.lists | toYaml | nindent 10 }}
|
|
{{- end }}
|
|
|
|
denylists:
|
|
default:
|
|
- https://big.oisd.nl/domainswild
|
|
- https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
|
|
default-ads:
|
|
- https://adaway.org/hosts.txt
|
|
- https://v.firebog.net/hosts/AdguardDNS.txt
|
|
- https://v.firebog.net/hosts/Admiral.txt
|
|
- https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt
|
|
- https://v.firebog.net/hosts/Easylist.txt
|
|
- https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext
|
|
- https://raw.githubusercontent.com/FadeMind/hosts.extras/master/UncheckyAds/hosts
|
|
- https://raw.githubusercontent.com/bigdargon/hostsVN/master/hosts
|
|
default-tracking:
|
|
- https://v.firebog.net/hosts/Easyprivacy.txt
|
|
- https://v.firebog.net/hosts/Prigent-Ads.txt
|
|
- https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.2o7Net/hosts
|
|
- https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt
|
|
- https://hostfiles.frogeye.fr/firstparty-trackers-hosts.txt
|
|
default-malicious:
|
|
- https://raw.githubusercontent.com/DandelionSprout/adfilt/master/Alternate%20versions%20Anti-Malware%20List/AntiMalwareHosts.txt
|
|
- https://v.firebog.net/hosts/Prigent-Crypto.txt
|
|
- https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Risk/hosts
|
|
- https://bitbucket.org/ethanr/dns-blacklists/raw/8575c9f96e5b4a1308f2f12394abd86d0927a4a0/bad_lists/Mandiant_APT1_Report_Appendix_D.txt
|
|
- https://phishing.army/download/phishing_army_blocklist_extended.txt
|
|
- https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-malware.txt
|
|
- https://v.firebog.net/hosts/Prigent-Malware.txt
|
|
# - https://v.firebog.net/hosts/RPiList-Malware.txt (see: https://github.com/0xERR0R/blocky/issues/1718 )
|
|
# - https://v.firebog.net/hosts/RPiList-Phishing.txt (see: https://github.com/0xERR0R/blocky/issues/1718 )
|
|
- https://raw.githubusercontent.com/Spam404/lists/master/main-blacklist.txt
|
|
- https://raw.githubusercontent.com/AssoEchap/stalkerware-indicators/master/generated/hosts
|
|
- https://urlhaus.abuse.ch/downloads/hostfile/
|
|
# - https://lists.cyberhost.uk/malware.txt (see: https://github.com/0xERR0R/blocky/issues/950)
|
|
default-suspicious:
|
|
- https://raw.githubusercontent.com/PolishFiltersTeam/KADhosts/master/KADhosts.txt
|
|
- https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Spam/hosts
|
|
- https://v.firebog.net/hosts/static/w3kbl.txt
|
|
|
|
{{- range $id, $value := .Values.blocking.blacklist }}
|
|
{{ $value.name }}:
|
|
{{- $value.lists | toYaml | nindent 10 }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.blocking.clientGroupsBlock }}
|
|
clientGroupsBlock:
|
|
{{- range $id, $value := .Values.blocking.clientGroupsBlock }}
|
|
{{ $value.name }}:
|
|
{{- $value.groups | toYaml | nindent 10 }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- end -}}
|