**Description** <!-- Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. --> In the latest versions, since this chart is made configs are changed, hereunder some depricated examples. Tried to match with https://0xerr0r.github.io/blocky/latest/configuration/ and added some more settings. Depricated example: ``` [2025-08-27 19:09:07] WARN Setting a duration without a unit is deprecated. Please use '0 min' instead. [2025-08-27 19:09:07] WARN Setting a duration without a unit is deprecated. Please use '3 min' instead. [2025-08-27 19:09:07] WARN config option "upstream" is deprecated, please use "upstreams.groups" instead [2025-08-27 19:09:07] WARN config option "upstreamTimeout" is deprecated, please use "upstreams.timeout" instead [2025-08-27 19:09:07] WARN config option "blocking.blackLists" is deprecated, please use "blocking.denylists" instead [2025-08-27 19:09:07] WARN config option "blocking.whiteLists" is deprecated, please use "blocking.allowlists" instead [2025-08-27 19:09:07] WARN config option "blocking.downloadTimeout" is deprecated, please use "blocking.loading.downloads.timeout" instead [2025-08-27 19:09:07] WARN config option "blocking.downloadAttempts" is deprecated, please use "blocking.loading.downloads.attempts" instead [2025-08-27 19:09:07] WARN config option "blocking.downloadCooldown" is deprecated, please use "blocking.loading.downloads.cooldown" instead [2025-08-27 19:09:07] WARN config option "blocking.refreshPeriod" is deprecated, please use "blocking.loading.refreshPeriod" instead [2025-08-27 19:09:07] WARN config option "blocking.processingConcurrency" is deprecated, please use "blocking.loading.concurrency" instead [2025-08-27 19:09:07] WARN config option "blocking.startStrategy" is deprecated, please use "blocking.loading.strategy" instead ``` ⚒️ Fixes # <!--(issue)--> **⚙️ Type of change** - [x] ⚙️ Feature/App addition - [x] 🪛 Bugfix - [ ] ⚠️ Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] 🔃 Refactor of current code - [ ] 📜 Documentation Changes **🧪 How Has This Been Tested?** <!-- Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration --> Open for good suggestions to test this locally. Else we need to be ad-hoc when it releases. **📃 Notes:** <!-- Please enter any other relevant information here --> **✔️ Checklist:** - [ ] ⚖️ My code follows the style guidelines of this project - [x] 👀 I have performed a self-review of my own code - [ ] #️⃣ I have commented my code, particularly in hard-to-understand areas - [ ] 📄 I have made changes to the documentation - [ ] 🧪 I have added tests to this description that prove my fix is effective or that my feature works - [x] ⬆️ I increased versions for any altered app according to semantic versioning - [x] I made sure the title starts with `feat(chart-name):`, `fix(chart-name):`, `chore(chart-name):`, `docs(chart-name):` or `fix(docs):` **➕ App addition** If this PR is an app addition please make sure you have done the following. - [ ] 🖼️ I have added an icon in the Chart's root directory called `icon.png` --- _Please don't blindly check all the boxes. Read them and only check those that apply. Those checkboxes are there for the reviewer to see what is this all about and the status of this PR with a quick glance._ --------- Signed-off-by: Boemeltrein <130394941+Boemeltrein@users.noreply.github.com>
423 lines
11 KiB
YAML
423 lines
11 KiB
YAML
image:
|
|
repository: docker.io/spx01/blocky
|
|
tag: v0.26@sha256:b259ada3f943e73283f1fc5e84ac39a791afec7de86515d1aeccc03d2c39e595
|
|
pullPolicy: IfNotPresent
|
|
k8sgatewayImage:
|
|
repository: quay.io/oriedge/k8s_gateway
|
|
pullPolicy: IfNotPresent
|
|
tag: v0.4.0@sha256:7bdbd447c0244b8f89de9cd6f4826ed0ac66c9406fac3a4ac80081020c251c6b
|
|
|
|
workload:
|
|
main:
|
|
replicas: 2
|
|
strategy: RollingUpdate
|
|
podSpec:
|
|
containers:
|
|
main:
|
|
probes:
|
|
liveness:
|
|
enabled: false
|
|
type: exec
|
|
command:
|
|
- /app/blocky
|
|
- healthcheck
|
|
readiness:
|
|
enabled: false
|
|
type: exec
|
|
command:
|
|
- /app/blocky
|
|
- healthcheck
|
|
startup:
|
|
enabled: false
|
|
type: exec
|
|
command:
|
|
- /app/blocky
|
|
- healthcheck
|
|
# -- Blocky Config File content
|
|
blockyConfig: {}
|
|
# upstream:
|
|
# default:
|
|
# - 1.1.1.1
|
|
|
|
# -- some general blocky settings
|
|
blocky:
|
|
# -- Enable prometheus annotations
|
|
enablePrometheus: true
|
|
service:
|
|
main:
|
|
enabled: true
|
|
ports:
|
|
main:
|
|
enabled: true
|
|
port: 4000
|
|
protocol: http
|
|
targetPort: 4000
|
|
dns:
|
|
enabled: true
|
|
ports:
|
|
dns:
|
|
enabled: true
|
|
port: 53
|
|
protocol: udp
|
|
targetPort: 53
|
|
dnstcp:
|
|
enabled: true
|
|
protocol: tcp
|
|
port: "{{ .Values.service.dns.ports.dns.port }}"
|
|
targetPort: 53
|
|
dot:
|
|
enabled: true
|
|
ports:
|
|
dot:
|
|
enabled: true
|
|
port: 853
|
|
protocol: tcp
|
|
targetPort: 853
|
|
https:
|
|
enabled: true
|
|
ports:
|
|
https:
|
|
enabled: true
|
|
port: 4443
|
|
protocol: https
|
|
targetPort: 4443
|
|
k8sgateway:
|
|
enabled: true
|
|
ports:
|
|
k8sgateway:
|
|
enabled: true
|
|
port: 5353
|
|
protocol: udp
|
|
targetPort: 5353
|
|
|
|
# -- Path to cert and key file for SSL encryption. If not set, self-signed certificate will be generated
|
|
certFile: ""
|
|
keyFile: ""
|
|
|
|
# -- logging configuration
|
|
# Log level (one from trace, debug, info, warn, error)
|
|
logLevel: info
|
|
# Log format (text or json)
|
|
logFormat: text
|
|
# log timestamps (true or false)
|
|
logTimestamp: true
|
|
# Obfuscate log output (replace all alphanumeric characters with *) for user sensitive data like request domains or responses to increase privacy. (true or false)
|
|
logPrivacy: false
|
|
|
|
# -- Mininal TLS version that the DoH and DoT server will use
|
|
minTlsServeVersion: 1.2
|
|
|
|
# -- set the default DNS upstream servers
|
|
defaultUpstreams:
|
|
# Cloudflare
|
|
- 1.1.1.1
|
|
- 1.0.0.1
|
|
# Google
|
|
- 8.8.8.8
|
|
- 8.8.4.4
|
|
# Quad9
|
|
- 9.9.9.9
|
|
- 149.112.112.112
|
|
# OpenDNS
|
|
- 208.67.222.222
|
|
- 208.67.220.220
|
|
# ComodoSecure DNS
|
|
- 8.26.56.26
|
|
- 8.20.247.20
|
|
|
|
# -- set additional upstreams
|
|
upstreams:
|
|
# - name: group2
|
|
# dnsservers:
|
|
# - 1.1.1.1
|
|
|
|
# -- optional: timeout to query the upstream resolver. Default: 1s
|
|
upstreamTimeout: 1s
|
|
|
|
# -- set bootstrap dns (not needed)
|
|
# Ensures bootstrap encryption and ensure it doesn't use k8s dns
|
|
# When using an upstream specified by IP, and not by hostname, you can write only the upstream and skip ips.
|
|
bootstrapDns:
|
|
# -- Upstream
|
|
upstream: ""
|
|
# -- IP's linked to upstream DoT/DoH DNS name
|
|
ips: []
|
|
# -- set additional bootstrap dns (not needed, only used if bootstrapDns is set)
|
|
additionalBootstrapDns: []
|
|
# - upstream: ""
|
|
# ips: []
|
|
|
|
# -- Return empty answer for these queries
|
|
filtering:
|
|
# -- Ensures filtering by query type
|
|
queryTypes: []
|
|
|
|
# -- Set manual custom DNS resolution
|
|
customDNS:
|
|
customTTL: 1h
|
|
filterUnmappedTypes: true
|
|
rewrite: []
|
|
# - in: something.com
|
|
# out: somethingelse.com
|
|
mapping: []
|
|
# - domain: something.com
|
|
# dnsserver: 192.168.178.1
|
|
|
|
# -- Setup client-name lookup
|
|
clientLookup:
|
|
# -- upstream used for client-name lookup
|
|
upstream: ""
|
|
singleNameOrder: []
|
|
clients:
|
|
# - domain: laptop
|
|
# ips: []
|
|
|
|
# -- Configuration for caching of DNS responsesg
|
|
caching:
|
|
minTime: 15m
|
|
maxTime: 0m
|
|
maxItemsCount: 0
|
|
prefetching: true
|
|
prefetchExpires: 12h
|
|
prefetchThreshold: 5
|
|
prefetchMaxItemsCount: 0
|
|
cacheTimeNegative: 30m
|
|
|
|
# -- set conditional settings
|
|
conditional:
|
|
fallbackUpstream: false
|
|
rewrite: []
|
|
# - in: something.com
|
|
# out: somethingelse.com
|
|
mapping: []
|
|
# - domain: something.com
|
|
# dnsserver: 192.168.178.1
|
|
|
|
# -- set blocking settings using Lists
|
|
blocking:
|
|
# -- Sets the blocktype
|
|
blockType: nxDomain
|
|
# -- Sets the block ttl
|
|
blockTTL: 6h
|
|
# -- Sets the block refreshPeriod
|
|
refreshPeriod: 4h
|
|
# -- Sets the block download timeout
|
|
downloadTimeout: 60s
|
|
# -- timeout for list write to disk (each url)
|
|
writeTimeout: 60s
|
|
# -- timeout for reading the download (each url).
|
|
readTimeout: 60s
|
|
# -- timeout for reading request headers for the download (each url)
|
|
readHeaderTimeout: 60s
|
|
# -- Sets the block download attempt count
|
|
downloadAttempts: 3
|
|
# -- Sets the block download cooldown
|
|
downloadCooldown: 5s
|
|
# -- Sets how many list-groups can be processed at the same time
|
|
processingConcurrency: 8
|
|
# -- Set the start strategy (blocking | failOnError | fast)
|
|
startStrategy: fast
|
|
# -- Number of errors allowed in a list before it is considered invalid
|
|
maxErrorsPerSource: 5
|
|
|
|
# -- Add blocky whitelists
|
|
# `default` name is reservered for TrueCharts included default whitelist
|
|
# example shows the structure, though name should be changed when used
|
|
whitelist:
|
|
[]
|
|
# - name: default
|
|
# lists:
|
|
# - 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
|
|
|
|
# -- Blocky blacklists
|
|
# `default` name is reservered for TrueCharts included default blacklist
|
|
# example shows the structure, though name should be changed when used
|
|
blacklist:
|
|
[]
|
|
# - name: default
|
|
# lists:
|
|
# - https://big.oisd.nl/domainswild
|
|
|
|
# -- Blocky clientGroupsBlock
|
|
clientGroupsBlock:
|
|
- name: default
|
|
groups:
|
|
- default
|
|
- default-ads
|
|
- default-tracking
|
|
- default-malicious
|
|
- default-suspicious
|
|
|
|
# -- configure using hostsfile for lookups
|
|
# Allows for using the hosts configured in kubernetes and such
|
|
hostsFile:
|
|
enabled: false
|
|
sources:
|
|
- /etc/hosts
|
|
- https://example.com/hosts
|
|
- |
|
|
# inline hosts
|
|
127.0.0.1 example.com
|
|
hostsTTL: 1h
|
|
filterLoopback: falsr
|
|
loading:
|
|
refreshPeriod: 4h
|
|
downloads:
|
|
timeout: 5s
|
|
attempts: 3
|
|
cooldown: 500ms
|
|
concurrency: 4
|
|
strategy: blocking
|
|
maxErrorsPerSource: 5
|
|
|
|
podOptions:
|
|
automountServiceAccountToken: true
|
|
|
|
serviceAccount:
|
|
main:
|
|
# -- Specifies whether a service account should be created
|
|
enabled: true
|
|
primary: true
|
|
|
|
# -- Create a ClusterRole and ClusterRoleBinding
|
|
# @default -- See below
|
|
rbac:
|
|
main:
|
|
# -- Enables or disables the ClusterRole and ClusterRoleBinding
|
|
enabled: true
|
|
primary: true
|
|
clusterWide: true
|
|
# -- Set Rules on the ClusterRole
|
|
rules:
|
|
- apiGroups:
|
|
- ""
|
|
resources:
|
|
- services
|
|
- namespaces
|
|
verbs:
|
|
- list
|
|
- watch
|
|
- apiGroups:
|
|
- extensions
|
|
- networking.k8s.io
|
|
resources:
|
|
- ingresses
|
|
verbs:
|
|
- list
|
|
- watch
|
|
|
|
k8sgateway:
|
|
enabled: true
|
|
# -- TTL for non-apex responses (in seconds)
|
|
ttl: 300
|
|
# -- Limit what kind of resources to watch, e.g. watchedResources: ["Ingress"]
|
|
watchedResources: []
|
|
# -- Service name of a secondary DNS server (should be `serviceName.namespace`)
|
|
secondary: ""
|
|
# -- Override the default `serviceName.namespace` domain apex
|
|
apex: ""
|
|
# -- list of processed domains
|
|
domains: []
|
|
# -- Delegated domain
|
|
# - domain: "example.com"
|
|
# # -- Optional configuration option for DNS01 challenge that will redirect all acme
|
|
# # challenge requests to external cloud domain (e.g. managed by cert-manager)
|
|
# # See: https://cert-manager.io/docs/configuration/acme/dns01/
|
|
# dnsChallenge:
|
|
# enabled: false
|
|
# domain: dns01.clouddns.com
|
|
forward:
|
|
enabled: false
|
|
primary: tls://1.1.1.1
|
|
secondary: tls://1.0.0.1
|
|
options:
|
|
- name: tls_servername
|
|
value: cloudflare-dns.com
|
|
|
|
configmap:
|
|
dashboard:
|
|
enabled: true
|
|
labels:
|
|
grafana_dashboard: "1"
|
|
data:
|
|
blocky.json: >-
|
|
{{ .Files.Get "dashboard.json" | indent 8 }}
|
|
blockypostgres.json: >-
|
|
{{ .Files.Get "dashboardpsql.json" | indent 8 }}
|
|
datasource:
|
|
enabled: true
|
|
labels:
|
|
grafana_datasource: "1"
|
|
data:
|
|
datasourceblockypsql.yaml: |-
|
|
apiVersion: 1
|
|
datasources:
|
|
- name: BlockyPostgres
|
|
type: postgres
|
|
uid: blockypostgres
|
|
url: {{ printf "%s.%s:5432" (.Values.cnpg.main.creds.host | trimAll "\"") .Release.Namespace }}
|
|
access: proxy
|
|
user: {{ .Values.cnpg.main.user }}
|
|
secureJsonData:
|
|
password: {{ .Values.cnpg.main.creds.password | default "na" }}
|
|
jsonData:
|
|
database: {{ .Values.cnpg.main.database }}
|
|
sslmode: 'disable' # disable/require/verify-ca/verify-full
|
|
maxOpenConns: 100 # Grafana v5.4+
|
|
maxIdleConns: 100 # Grafana v5.4+
|
|
maxIdleConnsAuto: true # Grafana v9.5.1+
|
|
connMaxLifetime: 14400 # Grafana v5.4+
|
|
postgresVersion: 1500 # 903=9.3, 904=9.4, 905=9.5, 906=9.6, 1000=10
|
|
timescaledb: false
|
|
|
|
metrics:
|
|
main:
|
|
# -- Enable and configure a Prometheus serviceMonitor for the chart under this key.
|
|
# @default -- See values.yaml
|
|
enabled: true
|
|
type: "servicemonitor"
|
|
endpoints:
|
|
- port: main
|
|
path: /metrics
|
|
# -- Enable and configure Prometheus Rules for the chart under this key.
|
|
# @default -- See values.yaml
|
|
prometheusRule:
|
|
enabled: false
|
|
labels: {}
|
|
# -- Configure additionial rules for the chart under this key.
|
|
# @default -- See prometheusrules.yaml
|
|
rules: []
|
|
# - alert: UnifiPollerAbsent
|
|
# annotations:
|
|
# description: Unifi Poller has disappeared from Prometheus service discovery.
|
|
# summary: Unifi Poller is down.
|
|
# expr: |
|
|
# absent(up{job=~".*unifi-poller.*"} == 1)
|
|
# for: 5m
|
|
# labels:
|
|
# severity: critical
|
|
|
|
redis:
|
|
enabled: true
|
|
# CANNOT be defined in above yaml section
|
|
queryLog:
|
|
# optional one of: mysql, postgresql, csv, csv-client. If empty, log to console
|
|
type: "postgresql"
|
|
# directory (should be mounted as volume in docker) for csv, db connection string for mysql, ignored for included postgresql
|
|
# target: /var/log/something
|
|
# postgresql target: postgres://user:password@db_host_or_ip:5432/db_name
|
|
# if > 0, deletes log files which are older than ... days
|
|
logRetentionDays: 0
|
|
# optional: Max attempts to create specific query log writer, default: 3
|
|
creationAttempts: 3
|
|
# optional: Time between the creation attempts, default: 2s
|
|
creationCooldown: 2s
|
|
|
|
cnpg:
|
|
main:
|
|
enabled: true
|
|
user: blocky
|
|
database: blocky
|