TrueChartsClone/charts/premium/blocky/templates/_blockyConfig.tpl

239 lines
7.0 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.creationAttempts | default "2s" }}
upstream:
default:
{{- .Values.defaultUpstreams | toYaml | nindent 8 }}
{{- range $id, $value := .Values.upstreams }}
{{ $value.name }}:
{{- $value.dnsservers | toYaml | nindent 8 }}
{{- end }}
upstreamTimeout: {{ .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.logTimestamp }}
timestamp: {{ .Values.logTimestamp }}
{{- end }}
{{- if .Values.logPrivacy }}
privacy: {{ .Values.logPrivacy }}
{{- end }}
{{- if .Values.dohUserAgent }}
dohUserAgent: {{ .Values.dohUserAgent }}
{{- 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 or .Values.filtering.filtering }}
filtering:
{{- if .Values.filtering.ips }}
queryTypes:
{{- range $id, $value := .Values.filtering.ips }}
- {{ $value }}
{{- end }}
{{- end }}
{{- end }}
{{- if or .Values.customDNS.filterUnmappedTypes .Values.customDNS.customTTL .Values.customDNS.rewrite .Values.customDNS.mapping }}
customDNS:
{{- if .Values.customDNS.upstream }}
upstream: {{ .Values.customDNS.upstream }}
{{- end }}
{{- if .Values.customDNS.customTTL }}
customTTL: {{ .Values.customDNS.customTTL }}
{{- 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.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 }}
refreshPeriod: {{ .Values.blocking.refreshPeriod }}
downloadTimeout: {{ .Values.blocking.downloadTimeout }}
downloadAttempts: {{ .Values.blocking.downloadAttempts }}
downloadCooldown: {{ .Values.blocking.downloadCooldown }}
startStrategy: {{ .Values.blocking.startStrategy }}
processingConcurrency: {{ .Values.blocking.processingConcurrency }}
whiteLists:
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 }}
blackLists:
default:
- https://big.oisd.nl/domainswild
- https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
{{- 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 -}}