Commit new Chart releases for TrueCharts
Signed-off-by: TrueCharts-Bot <bot@truecharts.org>
This commit is contained in:
parent
fccc0eaf92
commit
b82f0b0bb6
|
@ -0,0 +1,11 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [blocky-0.0.1]blocky-0.0.1 (2022-09-22)
|
||||||
|
|
||||||
|
### Feat
|
||||||
|
|
||||||
|
- add blocky ([#3735](https://github.com/truecharts/charts/issues/3735))
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
dependencies:
|
||||||
|
- name: common
|
||||||
|
repository: https://library-charts.truecharts.org
|
||||||
|
version: 10.5.7
|
||||||
|
- name: redis
|
||||||
|
repository: https://charts.truecharts.org
|
||||||
|
version: 3.0.67
|
||||||
|
digest: sha256:4cf9731678aced1ef480c08befa018ca96eb3be1789d55b2695b486492b04569
|
||||||
|
generated: "2022-09-23T00:34:04.104686927Z"
|
|
@ -0,0 +1,34 @@
|
||||||
|
apiVersion: v2
|
||||||
|
appVersion: "elopment"
|
||||||
|
dependencies:
|
||||||
|
- name: common
|
||||||
|
repository: https://library-charts.truecharts.org
|
||||||
|
version: 10.5.7
|
||||||
|
- condition: redis.enabled
|
||||||
|
name: redis
|
||||||
|
repository: https://charts.truecharts.org
|
||||||
|
version: 3.0.67
|
||||||
|
description: Blocky is a DNS proxy and ad-blocker for the local network written in Go
|
||||||
|
home: https://truecharts.org/docs/charts/incubator/blocky
|
||||||
|
icon: https://truecharts.org/img/hotlink-ok/chart-icons/blocky.png
|
||||||
|
keywords:
|
||||||
|
- dns
|
||||||
|
- blocky
|
||||||
|
kubeVersion: ">=1.16.0-0"
|
||||||
|
maintainers:
|
||||||
|
- email: info@truecharts.org
|
||||||
|
name: TrueCharts
|
||||||
|
url: https://truecharts.org
|
||||||
|
name: blocky
|
||||||
|
sources:
|
||||||
|
- https://github.com/truecharts/charts/tree/master/charts/incubator/blocky
|
||||||
|
- https://0xerr0r.github.io/blocky/
|
||||||
|
- https://github.com/0xERR0R/blocky
|
||||||
|
- https://github.com/Mozart409/blocky-frontend
|
||||||
|
- https://hub.docker.com/r/spx01/blocky
|
||||||
|
version: 0.0.1
|
||||||
|
annotations:
|
||||||
|
truecharts.org/catagories: |
|
||||||
|
- network
|
||||||
|
truecharts.org/SCALE-support: "true"
|
||||||
|
truecharts.org/grade: U
|
|
@ -0,0 +1,110 @@
|
||||||
|
# blocky
|
||||||
|
|
||||||
|
Blocky is a DNS proxy and ad-blocker for the local network written in Go
|
||||||
|
|
||||||
|
TrueCharts can be installed as both *normal* Helm Charts or as Apps on TrueNAS SCALE.
|
||||||
|
|
||||||
|
This readme is just an automatically generated general guide on installing our Helm Charts and Apps.
|
||||||
|
For more information, please click here: [blocky](https://truecharts.org/docs/charts/incubator/blocky)
|
||||||
|
|
||||||
|
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)**
|
||||||
|
|
||||||
|
## Source Code
|
||||||
|
|
||||||
|
* <https://github.com/truecharts/charts/tree/master/charts/incubator/blocky>
|
||||||
|
* <https://0xerr0r.github.io/blocky/>
|
||||||
|
* <https://github.com/0xERR0R/blocky>
|
||||||
|
* <https://github.com/Mozart409/blocky-frontend>
|
||||||
|
* <https://hub.docker.com/r/spx01/blocky>
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
Kubernetes: `>=1.16.0-0`
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
| Repository | Name | Version |
|
||||||
|
|------------|------|---------|
|
||||||
|
| https://charts.truecharts.org | redis | 3.0.67 |
|
||||||
|
| https://library-charts.truecharts.org | common | 10.5.7 |
|
||||||
|
|
||||||
|
## Installing the Chart
|
||||||
|
|
||||||
|
### TrueNAS SCALE
|
||||||
|
|
||||||
|
To install this Chart on TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Installing-an-App).
|
||||||
|
|
||||||
|
### Helm
|
||||||
|
|
||||||
|
To install the chart with the release name `blocky`
|
||||||
|
|
||||||
|
```console
|
||||||
|
helm repo add TrueCharts https://charts.truecharts.org
|
||||||
|
helm repo update
|
||||||
|
helm install blocky TrueCharts/blocky
|
||||||
|
```
|
||||||
|
|
||||||
|
## Uninstall
|
||||||
|
|
||||||
|
### TrueNAS SCALE
|
||||||
|
|
||||||
|
**Upgrading, Rolling Back and Uninstalling the Chart**
|
||||||
|
|
||||||
|
To upgrade, rollback or delete this Chart from TrueNAS SCALE check our [Quick-Start Guide](https://truecharts.org/docs/manual/SCALE%20Apps/Upgrade-rollback-delete-an-App).
|
||||||
|
|
||||||
|
### Helm
|
||||||
|
|
||||||
|
To uninstall the `blocky` deployment
|
||||||
|
|
||||||
|
```console
|
||||||
|
helm uninstall blocky
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
### Helm
|
||||||
|
|
||||||
|
#### Available Settings
|
||||||
|
|
||||||
|
Read through the values.yaml file. It has several commented out suggested values.
|
||||||
|
Other values may be used from the [values.yaml](https://github.com/truecharts/library-charts/tree/main/charts/stable/common/values.yaml) from the [common library](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common).
|
||||||
|
|
||||||
|
#### Configure using the command line
|
||||||
|
|
||||||
|
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||||
|
|
||||||
|
```console
|
||||||
|
helm install blocky \
|
||||||
|
--set env.TZ="America/New York" \
|
||||||
|
TrueCharts/blocky
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Configure using a yaml file
|
||||||
|
|
||||||
|
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
|
||||||
|
|
||||||
|
```console
|
||||||
|
helm install blocky TrueCharts/blocky -f values.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Connecting to other charts
|
||||||
|
|
||||||
|
If you need to connect this Chart to other Charts on TrueNAS SCALE, please refer to our [Linking Charts Internally](https://truecharts.org/docs/manual/SCALE%20Apps/linking-apps) quick-start guide.
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/docs/manual/SCALE%20Apps/Important-MUST-READ).
|
||||||
|
- See the [Website](https://truecharts.org)
|
||||||
|
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||||
|
- Open a [issue](https://github.com/truecharts/apps/issues/new/choose)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sponsor TrueCharts
|
||||||
|
|
||||||
|
TrueCharts can only exist due to the incredible effort of our staff.
|
||||||
|
Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
All Rights Reserved - The TrueCharts Project
|
|
@ -0,0 +1,8 @@
|
||||||
|
Blocky is a DNS proxy and ad-blocker for the local network written in Go
|
||||||
|
|
||||||
|
This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/docs/charts/incubator/blocky](https://truecharts.org/docs/charts/incubator/blocky)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
TrueCharts can only exist due to the incredible effort of our staff.
|
||||||
|
Please consider making a [donation](https://truecharts.org/docs/about/sponsor) or contributing back to the project any way you can!
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,7 @@
|
||||||
|
k8sgateway:
|
||||||
|
enabled: true
|
||||||
|
# -- list of processed domains
|
||||||
|
domains:
|
||||||
|
- domain: something.com
|
||||||
|
dnsChallenge:
|
||||||
|
enabled: false
|
|
@ -0,0 +1,338 @@
|
||||||
|
image:
|
||||||
|
repository: spx01/blocky
|
||||||
|
tag: development@sha256:c55e676e89cee31edeee687d70f7ed957b727d61b5611e213809f7a0399fe4ef
|
||||||
|
# repository: tccr.io/truecharts/blocky
|
||||||
|
# tag: v0.19@sha256:77a474542f12f480deca33ff0a6375846918b86988c13f858620839d8818ca84
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
WebUIImage:
|
||||||
|
repository: tccr.io/truecharts/blocky-frontend
|
||||||
|
tag: v0.0.3@sha256:81058f20520dcdb80c9883b6f21b338446fefc333e3ca8bd7d17336a24a5d842
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
k8sgatewayImage:
|
||||||
|
repository: tccr.io/truecharts/k8s_gateway
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
tag: 0.3.2@sha256:594fd6990eb2e0af1df7df8ba76cb3ca66232f46c5df5ebf786a45dd19777ae5
|
||||||
|
|
||||||
|
controller:
|
||||||
|
# -- Set additional annotations on the deployment/statefulset/daemonset
|
||||||
|
# -- Number of desired pods
|
||||||
|
replicas: 2
|
||||||
|
# -- Set the controller upgrade strategy
|
||||||
|
# For Deployments, valid values are Recreate (default) and RollingUpdate.
|
||||||
|
# For StatefulSets, valid values are OnDelete and RollingUpdate (default).
|
||||||
|
# DaemonSets ignore this.
|
||||||
|
strategy: RollingUpdate
|
||||||
|
|
||||||
|
# -- Blocky Config File content
|
||||||
|
blockyConfig: {}
|
||||||
|
# upstream:
|
||||||
|
# default:
|
||||||
|
# - 1.1.1.1
|
||||||
|
|
||||||
|
env:
|
||||||
|
BLOCKY_CONFIG_FILE: "/app/config/"
|
||||||
|
|
||||||
|
blocky:
|
||||||
|
enableWebUI: true
|
||||||
|
enablePrometheus: true
|
||||||
|
|
||||||
|
probes:
|
||||||
|
liveness:
|
||||||
|
enabled:
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /app/blocky
|
||||||
|
- healthcheck
|
||||||
|
readiness:
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /app/blocky
|
||||||
|
- healthcheck
|
||||||
|
startup:
|
||||||
|
custom: true
|
||||||
|
spec:
|
||||||
|
exec:
|
||||||
|
command:
|
||||||
|
- /app/blocky
|
||||||
|
- healthcheck
|
||||||
|
|
||||||
|
service:
|
||||||
|
main:
|
||||||
|
ports:
|
||||||
|
main:
|
||||||
|
port: 10315
|
||||||
|
protocol: HTTP
|
||||||
|
targetPort: 80
|
||||||
|
dns-tcp:
|
||||||
|
enabled: true
|
||||||
|
ports:
|
||||||
|
dns-tcp:
|
||||||
|
enabled: true
|
||||||
|
port: 53
|
||||||
|
targetPort: 53
|
||||||
|
dns-udp:
|
||||||
|
enabled: true
|
||||||
|
ports:
|
||||||
|
dns-udp:
|
||||||
|
enabled: true
|
||||||
|
port: 53
|
||||||
|
protocol: UDP
|
||||||
|
targetPort: 53
|
||||||
|
dot:
|
||||||
|
enabled: true
|
||||||
|
ports:
|
||||||
|
dot:
|
||||||
|
enabled: true
|
||||||
|
port: 853
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 853
|
||||||
|
http:
|
||||||
|
enabled: true
|
||||||
|
ports:
|
||||||
|
http:
|
||||||
|
enabled: true
|
||||||
|
port: 4000
|
||||||
|
protocol: HTTP
|
||||||
|
targetPort: 4000
|
||||||
|
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
|
||||||
|
|
||||||
|
## TODO Add support for SCALE certificates and certificates secrets here
|
||||||
|
certFile: ""
|
||||||
|
keyFile: ""
|
||||||
|
logLevel: info
|
||||||
|
logFormat: text
|
||||||
|
logTimestamp: true
|
||||||
|
logPrivacy: false
|
||||||
|
dohUserAgent: ""
|
||||||
|
minTlsServeVersion: 1.2
|
||||||
|
|
||||||
|
# -- set the default DNS upstream servers
|
||||||
|
# Primarily designed for inclusion in the TrueNAS SCALE GUI
|
||||||
|
defaultUpstreams:
|
||||||
|
- 1.1.1.1
|
||||||
|
- 1.0.0.1
|
||||||
|
- 8.8.8.8
|
||||||
|
- 8.8.4.4
|
||||||
|
- 9.9.9.9
|
||||||
|
- 149.112.112.112
|
||||||
|
- 208.67.222.222
|
||||||
|
- 208.67.220.220
|
||||||
|
- 8.26.56.26
|
||||||
|
- 8.20.247.20
|
||||||
|
- 185.228.168.9
|
||||||
|
- 185.228.169.9
|
||||||
|
- 76.76.19.19
|
||||||
|
- 76.223.122.150
|
||||||
|
- 76.76.2.0
|
||||||
|
- 76.76.10.0
|
||||||
|
|
||||||
|
# -- set additional upstreams
|
||||||
|
# Primarily designed for inclusion in the TrueNAS SCALE GUI
|
||||||
|
upstreams:
|
||||||
|
# - name: group2
|
||||||
|
# dnsservers:
|
||||||
|
# - 1.1.1.1
|
||||||
|
|
||||||
|
# -- set bootstrap dns (not needed)
|
||||||
|
# Ensures bootstrap encryption and ensure it doesn't use k8s dns
|
||||||
|
bootstrapDns:
|
||||||
|
# -- Upstream
|
||||||
|
upstream: ""
|
||||||
|
# -- IP's linked to upstream DoT/DoH DNS name
|
||||||
|
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: []
|
||||||
|
|
||||||
|
# -- Setup caching
|
||||||
|
caching:
|
||||||
|
minTime: 5m
|
||||||
|
maxTime: 30m
|
||||||
|
maxItemsCount: 0
|
||||||
|
prefetching: false
|
||||||
|
prefetchExpires: 2h
|
||||||
|
prefetchThreshold: 5
|
||||||
|
prefetchMaxItemsCount: 0
|
||||||
|
cacheTimeNegative: 30m
|
||||||
|
|
||||||
|
# -- set conditional settings
|
||||||
|
# Primarily designed for inclusion in the TrueNAS SCALE GUI
|
||||||
|
conditional:
|
||||||
|
rewrite: []
|
||||||
|
# - in: something.com
|
||||||
|
# out: somethingelse.com
|
||||||
|
mapping: []
|
||||||
|
# - domain: something.com
|
||||||
|
# dnsserver: 192.168.178.1
|
||||||
|
|
||||||
|
# -- set blocking settings using Lists
|
||||||
|
# Primarily designed for inclusion in the TrueNAS SCALE GUI
|
||||||
|
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
|
||||||
|
# -- Sets the block download attempt count
|
||||||
|
downloadAttempts: 3
|
||||||
|
# -- Sets the block download cooldown
|
||||||
|
downloadCooldown: 2s
|
||||||
|
# -- Set to fail start of lists cannot be downloaded
|
||||||
|
failStartOnListError: false
|
||||||
|
# -- Sets how many list-groups can be processed at the same time
|
||||||
|
processingConcurrency: 4
|
||||||
|
# -- Add blocky whitelists
|
||||||
|
whitelist: []
|
||||||
|
# - name: ads
|
||||||
|
# lists:
|
||||||
|
# - https://someurl.com/list.txt
|
||||||
|
# - /somefile.txt
|
||||||
|
|
||||||
|
# -- Blocky blacklists
|
||||||
|
blacklist: []
|
||||||
|
# - name: ads
|
||||||
|
# lists:
|
||||||
|
# - https://someurl.com/list.txt
|
||||||
|
# - /somefile.txt
|
||||||
|
|
||||||
|
# -- Blocky clientGroupsBlock
|
||||||
|
clientGroupsBlock: []
|
||||||
|
# - name: default
|
||||||
|
# groups:
|
||||||
|
# - ads
|
||||||
|
|
||||||
|
# -- configure using hostsfile for lookups
|
||||||
|
# Allows for using the hosts configured in kubernetes and such
|
||||||
|
hostsFile:
|
||||||
|
enabled: false
|
||||||
|
filePath: /etc/hosts
|
||||||
|
hostsTTL: 60m
|
||||||
|
refreshPeriod: 30m
|
||||||
|
|
||||||
|
## TODO: add this with postgresql support as well
|
||||||
|
# queryLog:
|
||||||
|
# type: csv
|
||||||
|
# target: /logs
|
||||||
|
# logRetentionDays: 0
|
||||||
|
# creationAttempts: 3
|
||||||
|
# CreationCooldown: 2
|
||||||
|
|
||||||
|
portal:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
serviceAccount:
|
||||||
|
main:
|
||||||
|
# -- Specifies whether a service account should be created
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
# -- Create a ClusterRole and ClusterRoleBinding
|
||||||
|
# @default -- See below
|
||||||
|
rbac:
|
||||||
|
main:
|
||||||
|
# -- Enables or disables the ClusterRole and ClusterRoleBinding
|
||||||
|
enabled: 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
|
||||||
|
|
||||||
|
unbound:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
redis:
|
||||||
|
enabled: true
|
||||||
|
existingSecret: "rediscreds"
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,200 @@
|
||||||
|
{{/* Define the config */}}
|
||||||
|
{{- define "blocky.configmap" -}}
|
||||||
|
{{- $configName := printf "%s-config" (include "tc.common.names.fullname" .) }}
|
||||||
|
{{- $config := merge ( include "blocky.config" . | fromYaml ) ( .Values.blockyConfig ) }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ $configName }}
|
||||||
|
labels:
|
||||||
|
{{- include "tc.common.labels" . | nindent 4 }}
|
||||||
|
data:
|
||||||
|
tc-config.yaml: |
|
||||||
|
{{ $config | toYaml | indent 6 }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "blocky.config" -}}
|
||||||
|
redis:
|
||||||
|
address: {{ printf "%v-%v" .Release.Name "redis" }}:6379
|
||||||
|
password: {{ .Values.redis.redisPassword | trimAll "\"" }}
|
||||||
|
database: 0
|
||||||
|
required: true
|
||||||
|
connectionAttempts: 10
|
||||||
|
connectionCooldown: 3s
|
||||||
|
{{- if .Values.blocky.enablePrometheus }}
|
||||||
|
prometheus:
|
||||||
|
enable: true
|
||||||
|
path: /metrics
|
||||||
|
{{- end }}
|
||||||
|
upstream:
|
||||||
|
default:
|
||||||
|
{{- .Values.defaultUpstreams | toYaml | nindent 8 }}
|
||||||
|
|
||||||
|
{{- if .Values.certFile }}
|
||||||
|
certFile: {{ .Values.certFile }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.keyFile }}
|
||||||
|
keyFile: {{ .Values.keyFile }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.logLevel }}
|
||||||
|
logLevel: {{ .Values.logLevel }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.logTimestamp }}
|
||||||
|
logTimestamp: {{ .Values.logTimestamp }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.logPrivacy }}
|
||||||
|
logPrivacy: {{ .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 }}
|
||||||
|
|
||||||
|
{{- range $id, $value := .Values.upstreams }}
|
||||||
|
{{ $value.name }}:
|
||||||
|
{{- $value.dnsservers | toYaml | nindent 8 }}
|
||||||
|
{{- 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 }}
|
||||||
|
{{- 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 }}
|
||||||
|
failStartOnListError: {{ .Values.blocking.failStartOnListError }}
|
||||||
|
processingConcurrency: {{ .Values.blocking.processingConcurrency }}
|
||||||
|
{{- if .Values.blocking.whitelist }}
|
||||||
|
whiteLists:
|
||||||
|
{{- range $id, $value := .Values.blocking.whitelist }}
|
||||||
|
{{ $value.name }}:
|
||||||
|
{{- $value.lists | toYaml | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.blocking.blacklist }}
|
||||||
|
blackLists:
|
||||||
|
{{- range $id, $value := .Values.blocking.blacklist }}
|
||||||
|
{{ $value.name }}:
|
||||||
|
{{- $value.lists | toYaml | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if .Values.blocking.clientGroupsBlock }}
|
||||||
|
clientGroupsBlock:
|
||||||
|
{{- range $id, $value := .Values.blocking.clientGroupsBlock }}
|
||||||
|
{{ $value.name }}:
|
||||||
|
{{- $value.groups | toYaml | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,107 @@
|
||||||
|
{{- define "k8sgateway.container" -}}
|
||||||
|
image: {{ .Values.k8sgatewayImage.repository }}:{{ .Values.k8sgatewayImage.tag }}
|
||||||
|
imagePullPolicy: {{ .Values.k8sgatewayImage.pullPolicy }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
runAsGroup: 0
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: false
|
||||||
|
args: ["-conf", "/etc/coredns/Corefile"]
|
||||||
|
ports:
|
||||||
|
- containerPort: {{ .Values.service.k8sgateway.ports.k8sgateway.targetPort }}
|
||||||
|
name: main
|
||||||
|
volumeMounts:
|
||||||
|
- name: config-volume
|
||||||
|
mountPath: /etc/coredns
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /ready
|
||||||
|
port: 8181
|
||||||
|
initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }}
|
||||||
|
timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }}
|
||||||
|
periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }}
|
||||||
|
failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }}
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /health
|
||||||
|
port: 8080
|
||||||
|
initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }}
|
||||||
|
timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }}
|
||||||
|
periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }}
|
||||||
|
failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }}
|
||||||
|
startupProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /ready
|
||||||
|
port: 8181
|
||||||
|
initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }}
|
||||||
|
timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }}
|
||||||
|
periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }}
|
||||||
|
failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create the matchable regex from domain
|
||||||
|
*/}}
|
||||||
|
{{- define "k8sgateway.configmap.regex" -}}
|
||||||
|
{{- if .Values.k8sgateway.domain }}
|
||||||
|
{{- .Values.k8sgateway.domain | replace "." "[.]" -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{ "unset" }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/* Define the configmap */}}
|
||||||
|
{{- define "k8sgateway.configmap" -}}
|
||||||
|
{{- $values := .Values.k8sgateway }}
|
||||||
|
{{- $fqdn := ( include "tc.common.names.fqdn" . ) }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ include "tc.common.names.fullname" . }}-corefile
|
||||||
|
labels:
|
||||||
|
{{- include "tc.common.labels" . | nindent 4 }}
|
||||||
|
data:
|
||||||
|
Corefile: |-
|
||||||
|
.:{{ .Values.service.k8sgateway.ports.k8sgateway.targetPort }} {
|
||||||
|
errors
|
||||||
|
log
|
||||||
|
health {
|
||||||
|
lameduck 5s
|
||||||
|
}
|
||||||
|
ready
|
||||||
|
{{- range .Values.k8sgateway.domains }}
|
||||||
|
{{- if .dnsChallenge.enabled }}
|
||||||
|
template IN ANY {{ required "Delegated domain ('domain') is mandatory " .domain }} {
|
||||||
|
match "_acme-challenge[.](.*)[.]{{ include "k8sgateway.configmap.regex" . }}"
|
||||||
|
answer "{{ "{{" }} .Name {{ "}}" }} 5 IN CNAME {{ "{{" }} index .Match 1 {{ "}}" }}.{{ required "DNS01 challenge domain is mandatory " $values.dnsChallenge.domain }}"
|
||||||
|
fallthrough
|
||||||
|
}
|
||||||
|
{{- end }}
|
||||||
|
k8s_gateway "{{ required "Delegated domain ('domain') is mandatory " .domain }}" {
|
||||||
|
apex {{ $values.apex | default $fqdn }}
|
||||||
|
ttl {{ $values.ttl }}
|
||||||
|
{{- if $values.secondary }}
|
||||||
|
secondary {{ $values.secondary }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if $values.watchedResources }}
|
||||||
|
resources {{ join " " $values.watchedResources }}
|
||||||
|
{{- end }}
|
||||||
|
fallthrough
|
||||||
|
}
|
||||||
|
{{- end }}
|
||||||
|
prometheus 0.0.0.0:9153
|
||||||
|
{{- if .Values.k8sgateway.forward.enabled }}
|
||||||
|
forward . {{ .Values.k8sgateway.forward.primary }} {{ .Values.k8sgateway.forward.secondary }} {
|
||||||
|
{{- range .Values.k8sgateway.forward.options }}
|
||||||
|
{{ .name }} {{ .value }}
|
||||||
|
{{- end }}
|
||||||
|
}
|
||||||
|
{{- else }}
|
||||||
|
forward . 1.1.1.1
|
||||||
|
{{- end }}
|
||||||
|
loop
|
||||||
|
reload
|
||||||
|
loadbalance
|
||||||
|
}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,36 @@
|
||||||
|
{{- define "blocky.frontend" -}}
|
||||||
|
image: {{ .Values.WebUIImage.repository }}:{{ .Values.WebUIImage.tag }}
|
||||||
|
imagePullPolicy: {{ .Values.WebUIImage.pullPolicy }}
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 568
|
||||||
|
runAsGroup: 568
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
ports:
|
||||||
|
- containerPort: {{ .Values.service.main.ports.main.targetPort }}
|
||||||
|
name: main
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: {{ .Values.service.main.ports.main.targetPort }}
|
||||||
|
initialDelaySeconds: {{ .Values.probes.readiness.spec.initialDelaySeconds }}
|
||||||
|
timeoutSeconds: {{ .Values.probes.readiness.spec.timeoutSeconds }}
|
||||||
|
periodSeconds: {{ .Values.probes.readiness.spec.periodSeconds }}
|
||||||
|
failureThreshold: {{ .Values.probes.readiness.spec.failureThreshold }}
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: {{ .Values.service.main.ports.main.targetPort }}
|
||||||
|
initialDelaySeconds: {{ .Values.probes.liveness.spec.initialDelaySeconds }}
|
||||||
|
timeoutSeconds: {{ .Values.probes.liveness.spec.timeoutSeconds }}
|
||||||
|
periodSeconds: {{ .Values.probes.liveness.spec.periodSeconds }}
|
||||||
|
failureThreshold: {{ .Values.probes.liveness.spec.failureThreshold }}
|
||||||
|
startupProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: {{ .Values.service.main.ports.main.targetPort }}
|
||||||
|
initialDelaySeconds: {{ .Values.probes.startup.spec.initialDelaySeconds }}
|
||||||
|
timeoutSeconds: {{ .Values.probes.startup.spec.timeoutSeconds }}
|
||||||
|
periodSeconds: {{ .Values.probes.startup.spec.periodSeconds }}
|
||||||
|
failureThreshold: {{ .Values.probes.startup.spec.failureThreshold }}
|
||||||
|
{{- end -}}
|
|
@ -0,0 +1,50 @@
|
||||||
|
{{/* Make sure all variables are set properly */}}
|
||||||
|
{{- include "tc.common.loader.init" . }}
|
||||||
|
|
||||||
|
{{ include "blocky.configmap" . }}
|
||||||
|
|
||||||
|
{{/* Always mount the configmap, with the basic config, plus the 'blockyConfig' */}}
|
||||||
|
{{- define "blocky.configmap.mount" -}}
|
||||||
|
enabled: true
|
||||||
|
type: custom
|
||||||
|
mountPath: /app/config/tc-config.yaml
|
||||||
|
subPath: tc-config.yaml
|
||||||
|
readOnly: true
|
||||||
|
volumeSpec:
|
||||||
|
configMap:
|
||||||
|
name: '{{ printf "%s-config" (include "tc.common.names.fullname" .) }}'
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/* Append the general configMap volume to the volumes */}}
|
||||||
|
{{- define "k8sgateway.configvolume" -}}
|
||||||
|
enabled: "true"
|
||||||
|
mountPath: "/etc/coredns"
|
||||||
|
readOnly: true
|
||||||
|
type: "custom"
|
||||||
|
volumeSpec:
|
||||||
|
configMap:
|
||||||
|
name: {{ include "tc.common.names.fullname" . }}-corefile
|
||||||
|
items:
|
||||||
|
- key: Corefile
|
||||||
|
path: Corefile
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
|
||||||
|
{{- $_ := set .Values.persistence "tc-config" (include "blocky.configmap.mount" . | fromYaml) -}}
|
||||||
|
|
||||||
|
{{- $_ := set .Values.podAnnotations "prometheus.io/scrape" "true" -}}
|
||||||
|
{{- $_ := set .Values.podAnnotations "prometheus.io/path" "/metrics" -}}
|
||||||
|
{{- $_ := set .Values.podAnnotations "prometheus.io/port" (.Values.service.main.ports.main.targetPort | quote) -}}
|
||||||
|
|
||||||
|
{{- if .Values.blocky.enableWebUI -}}
|
||||||
|
{{- $_ := set .Values.additionalContainers "frontend" (include "blocky.frontend" . | fromYaml) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if and .Values.k8sgateway.enabled .Values.k8sgateway.domains -}}
|
||||||
|
{{- include "k8sgateway.configmap" . }}
|
||||||
|
{{- $_ := set .Values.persistence "config-volume" (include "k8sgateway.configvolume" . | fromYaml) -}}
|
||||||
|
{{- $_ := set .Values.additionalContainers "k8sgateway" (include "k8sgateway.container" . | fromYaml) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/* Render the templates */}}
|
||||||
|
{{ include "tc.common.loader.apply" . }}
|
|
@ -0,0 +1,4 @@
|
||||||
|
icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/blocky.png
|
||||||
|
categories:
|
||||||
|
- network
|
||||||
|
|
Loading…
Reference in New Issue