A flexible DNS proxy, with support for encrypted DNS protocols.
helm repo add obeone https://charts.obeone.cloud
helm repo update
helm install dnscrypt-proxy obeone/dnscrypt-proxy
dnscrypt-proxy is a flexible DNS proxy with support for modern encrypted DNS protocols: DNSCrypt v2, DNS-over-HTTPS, Anonymized DNSCrypt and ODoH. It can filter, cache and load-balance queries across multiple upstream resolvers, which makes it a solid building block for private DNS inside a cluster or a home network.
klutchell/dnscrypt-proxycharts/dnscrypt-proxykubeVersion constraint (see Chart.yaml)This chart is built on the k8s-at-home common library
(v4). Most configuration keys (image, env, service, ingress,
persistence, …) follow its schema, so the library supports more than what
is spelled out in values.yaml.
Defaults are meant to work out of the box on any cluster. The full list of
options lives in values.yaml, is validated by
values.schema.json at install time, and is documented
in the Values section below. Override it with your own values file:
helm install dnscrypt-proxy obeone/dnscrypt-proxy -f my-values.yaml
The upstream configuration file can be shipped through the bundled ConfigMap:
configmap:
config:
enabled: true
data:
dnscrypt-proxy.toml: |
listen_addresses = ['0.0.0.0:5053']
server_names = ['cloudflare']
See the example configuration for every available setting.
helm repo update
helm upgrade dnscrypt-proxy obeone/dnscrypt-proxy
Each release lists its changes in the Artifact Hub changelog; give it a look before jumping across several chart versions.
helm uninstall dnscrypt-proxy
PersistentVolumeClaims created by the chart are kept around: delete them manually if you also want the data gone.
Kubernetes: >=1.16.0-0
| Repository | Name | Version |
|---|---|---|
| https://library-charts.k8s-at-home.com | common | 4.5.2 |
| Key | Type | Default | Description |
|---|---|---|---|
| configmap | object | See below | Configure configMaps for the chart here. Additional configMaps can be added by adding a dictionary key similar to the ‘config’ object. |
| configmap.config.annotations | object | {} |
Annotations to add to the configMap |
| configmap.config.data | object | {"dnscrypt-proxy.toml":"listen_addresses = ['0.0.0.0:5353']\nlog_level = 1\n\nipv4_servers = true\nipv6_servers = false\ndnscrypt_servers = true\ndoh_servers = false\nodoh_servers = false\nbootstrap_resolvers = ['9.9.9.11:53', '8.8.8.8:53']\nlb_strategy = 'p2'\n\nrequire_nolog = true\nrequire_nofilter = true\n\n[sources]\n [sources.public-resolvers]\n urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md', 'https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md', 'https://ipv6.download.dnscrypt.info/resolvers-list/v3/public-resolvers.md']\n cache_file = 'public-resolvers.md'\n minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'\n refresh_delay = 72\n prefix = ''\n"} |
configMap data content. Helm template enabled. |
| configmap.config.data.”dnscrypt-proxy.toml” | string | "listen_addresses = ['0.0.0.0:5353']\nlog_level = 1\n\nipv4_servers = true\nipv6_servers = false\ndnscrypt_servers = true\ndoh_servers = false\nodoh_servers = false\nbootstrap_resolvers = ['9.9.9.11:53', '8.8.8.8:53']\nlb_strategy = 'p2'\n\nrequire_nolog = true\nrequire_nofilter = true\n\n[sources]\n [sources.public-resolvers]\n urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md', 'https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md', 'https://ipv6.download.dnscrypt.info/resolvers-list/v3/public-resolvers.md']\n cache_file = 'public-resolvers.md'\n minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'\n refresh_delay = 72\n prefix = ''\n" |
Configuration This is a simple configuration. You can find a sample config here : https://github.com/DNSCrypt/dnscrypt-proxy/blob/master/dnscrypt-proxy/example-dnscrypt-proxy.toml And the manual : https://github.com/DNSCrypt/dnscrypt-proxy/wiki |
| configmap.config.enabled | bool | false |
Enables or disables the configMap |
| configmap.config.labels | object | {} |
Labels to add to the configMap |
| controller.replicas | int | 1 |
|
| env | object | See below | environment variables. See more environment variables in the dnscrypt-proxy documentation. |
| env.TZ | string | "UTC" |
Set the container timezone |
| image.pullPolicy | string | "IfNotPresent" |
image pull policy. Set to Slways if you used “main” as tag |
| image.repository | string | "klutchell/dnscrypt-proxy" |
image repository |
| image.tag | string | chart.appVersion | image tag. Use “main” if you want to be able to use DNS probes |
| ingress.main | object | See values.yaml | Enable and configure ingress settings for the chart under this key. |
| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. |
| probes.liveness.custom | bool | true |
|
| probes.liveness.spec.exec.command[0] | string | "/usr/local/bin/dnsprobe" |
|
| probes.liveness.spec.exec.command[1] | string | "google.com" |
|
| probes.liveness.spec.exec.command[2] | string | "127.0.0.1:5353" |
|
| probes.liveness.spec.failureThreshold | int | 3 |
|
| probes.liveness.spec.initialDelaySeconds | int | 30 |
|
| probes.liveness.spec.periodSeconds | int | 5 |
|
| probes.liveness.spec.timeoutSeconds | int | 3 |
|
| probes.readiness.custom | bool | true |
|
| probes.readiness.spec.exec.command[0] | string | "/usr/local/bin/dnsprobe" |
|
| probes.readiness.spec.exec.command[1] | string | "google.com" |
|
| probes.readiness.spec.exec.command[2] | string | "127.0.0.1:5353" |
|
| probes.readiness.spec.failureThreshold | int | 1 |
|
| probes.readiness.spec.periodSeconds | int | 5 |
|
| probes.readiness.spec.timeoutSeconds | int | 1 |
|
| probes.startup.custom | bool | true |
|
| probes.startup.spec.exec.command[0] | string | "/usr/local/bin/dnsprobe" |
|
| probes.startup.spec.exec.command[1] | string | "google.com" |
|
| probes.startup.spec.exec.command[2] | string | "127.0.0.1:5353" |
|
| probes.startup.spec.failureThreshold | int | 10 |
|
| probes.startup.spec.initialDelaySeconds | int | 10 |
|
| probes.startup.spec.periodSeconds | int | 5 |
|
| probes.startup.spec.timeoutSeconds | int | 3 |
|
| service | object | See values.yaml | Configures service settings for the chart. |
Charts in this repository are signed with GPG and every release ships a
provenance file. The public key is available at
charts.obeone.cloud/public_key.gpg,
fingerprint B9FE852F28888D27F8C9A11CD33E04CD22E335CE.
# Import the signing key into a legacy keyring (helm verifies with GnuPG v1 keyrings)
curl -fsSL https://charts.obeone.cloud/public_key.gpg | gpg --import
gpg --export > ~/.gnupg/pubring.gpg
# Pull the chart and check it against its provenance file
helm pull --verify obeone/dnscrypt-proxy
This is a personal chart repository, maintained on a best-effort basis. Bug reports and contributions are welcome on GitHub.
Autogenerated from chart metadata using helm-docs v1.14.2