Compare commits
4 Commits
tt-rss-2.1
...
zalando-po
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c7886aca6 | ||
|
|
64b0f9e85c | ||
|
|
1f6a7848f7 | ||
|
|
9992a5d4cc |
1
.github/ct-install.yaml
vendored
1
.github/ct-install.yaml
vendored
@@ -8,6 +8,7 @@ excluded-charts:
|
||||
- charts/stable/alertmanager-bot
|
||||
- charts/stable/dnsmadeeasy-webhook
|
||||
- charts/stable/ser2sock
|
||||
- charts/stable/zalando-postgres-cluster
|
||||
- charts/stable/zigbee2mqtt
|
||||
chart-repos:
|
||||
- bitnami=https://charts.bitnami.com/bitnami
|
||||
|
||||
@@ -7,18 +7,18 @@ tasks:
|
||||
desc: create new chart
|
||||
cmds:
|
||||
- git checkout -b add-chart-{{.CHART}}
|
||||
- cp -r {{.GIT_ROOT}}/templates/chart {{.GIT_ROOT}}/charts/{{.CHART}}
|
||||
- ./.bin/go-replace -s '${CHARTNAME}' -r "{{.CHART}}" --path={{.GIT_ROOT}}/charts/{{.CHART}} --path-pattern='*.*'
|
||||
- cp -r {{.GIT_ROOT}}/templates/chart "{{.GIT_ROOT}}/charts/{{.CHART_TYPE}}/{{.CHART}}"
|
||||
- ./.bin/go-replace -s '${CHARTNAME}' -r "{{.CHART}}" --path="{{.GIT_ROOT}}/charts/{{.CHART_TYPE}}/{{.CHART}}" --path-pattern='*.*'
|
||||
- task: dependency
|
||||
- echo "Congratulations, charts/{{.CHART}} successfully generated, you can now edit chart informations ( Chart.yaml and values.yaml )"
|
||||
- echo "Congratulations, charts/{{.CHART_TYPE}}/{{.CHART}} successfully generated, you can now edit chart informations ( Chart.yaml and values.yaml )"
|
||||
status:
|
||||
- test -d {{.GIT_ROOT}}/charts/{{.CHART}}
|
||||
- test -d "{{.GIT_ROOT}}/charts/{{.CHART_TYPE}}/{{.CHART}}"
|
||||
deps:
|
||||
- check-chart
|
||||
silent: true
|
||||
|
||||
dependency:
|
||||
dir: "{{.GIT_ROOT}}/charts/{{.CHART}}"
|
||||
dir: "{{.GIT_ROOT}}/charts/{{.CHART_TYPE}}/{{.CHART}}"
|
||||
cmds:
|
||||
- test -d Chart.lock && rm Chart.lock || exit 0
|
||||
- test -d tmpcharts && rm -rf tmpcharts || exit 0
|
||||
@@ -27,7 +27,7 @@ tasks:
|
||||
|
||||
lint:
|
||||
desc: lint your chart code
|
||||
dir: "{{.GIT_ROOT}}/charts/{{.CHART}}"
|
||||
dir: "{{.GIT_ROOT}}/charts/{{.CHART_TYPE}}/{{.CHART}}"
|
||||
cmds:
|
||||
- helm lint
|
||||
deps:
|
||||
@@ -37,7 +37,7 @@ tasks:
|
||||
ct-lint:
|
||||
desc: run `ct lint` on your chart code
|
||||
cmds:
|
||||
- docker run --rm -it --user $(id -u):$(id -g) -e "HELM_CONFIG_HOME=/tmp/helm" -e "HELM_CACHE_HOME=/tmp/helm" -v {{.GIT_ROOT}}:/ci -w /ci quay.io/helmpack/chart-testing:latest ct lint --charts charts/{{.CHART}} --config /ci/.github/ct-lint.yaml
|
||||
- docker run --rm -it --user $(id -u):$(id -g) -e "HELM_CONFIG_HOME=/tmp/helm" -e "HELM_CACHE_HOME=/tmp/helm" -v {{.GIT_ROOT}}:/ci -w /ci quay.io/helmpack/chart-testing:latest ct lint --charts "charts/{{.CHART_TYPE}}/{{.CHART}}" --config /ci/.github/ct-lint.yaml
|
||||
deps:
|
||||
- check-chart
|
||||
- lint
|
||||
@@ -46,12 +46,13 @@ tasks:
|
||||
desc: generate helm-docs
|
||||
dir: "{{.GIT_ROOT}}/hack"
|
||||
cmds:
|
||||
- ./gen-helm-docs.sh "{{.CHART}}"
|
||||
- ./gen-helm-docs.sh "{{.CHART_TYPE}}" "{{.CHART}}"
|
||||
deps:
|
||||
- check-chart
|
||||
|
||||
# Checks Parameters
|
||||
check-chart:
|
||||
cmds:
|
||||
- test ! -z "{{.CHART_TYPE}}" || (echo "Please define CHART_TYPE parameter"; exit 1)
|
||||
- test ! -z "{{.CHART}}" || (echo "Please define CHART parameter"; exit 1)
|
||||
silent: true
|
||||
|
||||
@@ -22,3 +22,5 @@
|
||||
.vscode/
|
||||
# OWNERS file for Kubernetes
|
||||
OWNERS
|
||||
# helm-docs templates
|
||||
*.gotmpl
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
apiVersion: v2
|
||||
appVersion: v0.102.0
|
||||
appVersion: v0.105.2
|
||||
description: DNS proxy as ad-blocker for local network
|
||||
name: adguard-home
|
||||
version: 2.2.3
|
||||
version: 3.0.0
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
keywords:
|
||||
- adguard-home
|
||||
- adguard
|
||||
- dns
|
||||
- adguard-home
|
||||
- adblock
|
||||
- dns
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/stable/adguard-home
|
||||
icon: https://avatars3.githubusercontent.com/u/8361145?s=200&v=4?sanitize=true
|
||||
sources:
|
||||
- https://github.com/AdguardTeam/AdGuardHome
|
||||
- https://github.com/AdguardTeam/AdGuardHome
|
||||
maintainers:
|
||||
- name: billimek
|
||||
- name: billimek
|
||||
email: jeff@billimek.com
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.k8s-at-home.com
|
||||
version: 2.1.0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# adguard-home
|
||||
|
||||
 
|
||||
 
|
||||
|
||||
DNS proxy as ad-blocker for local network
|
||||
|
||||
@@ -12,10 +12,13 @@ DNS proxy as ad-blocker for local network
|
||||
|
||||
## Requirements
|
||||
|
||||
Kubernetes: `>=1.16.0-0`
|
||||
|
||||
## Dependencies
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| https://library-charts.k8s-at-home.com | common | 2.1.0 |
|
||||
|
||||
## TL;DR
|
||||
|
||||
@@ -72,165 +75,35 @@ N/A
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| affinity | object | `{}` | |
|
||||
| configAsCode.config.bind_host | string | `"0.0.0.0"` | |
|
||||
| configAsCode.config.bind_port | int | `3000` | |
|
||||
| configAsCode.config.clients | list | `[]` | |
|
||||
| configAsCode.config.debug_pprof | bool | `false` | |
|
||||
| configAsCode.config.dhcp.enabled | bool | `false` | |
|
||||
| configAsCode.config.dhcp.gateway_ip | string | `""` | |
|
||||
| configAsCode.config.dhcp.icmp_timeout_msec | int | `1000` | |
|
||||
| configAsCode.config.dhcp.interface_name | string | `""` | |
|
||||
| configAsCode.config.dhcp.lease_duration | int | `86400` | |
|
||||
| configAsCode.config.dhcp.range_end | string | `""` | |
|
||||
| configAsCode.config.dhcp.range_start | string | `""` | |
|
||||
| configAsCode.config.dhcp.subnet_mask | string | `""` | |
|
||||
| configAsCode.config.dns.aaaa_disabled | bool | `false` | |
|
||||
| configAsCode.config.dns.all_servers | bool | `false` | |
|
||||
| configAsCode.config.dns.allowed_clients | list | `[]` | |
|
||||
| configAsCode.config.dns.anonymize_client_ip | bool | `false` | |
|
||||
| configAsCode.config.dns.bind_host | string | `"0.0.0.0"` | |
|
||||
| configAsCode.config.dns.blocked_hosts | list | `[]` | |
|
||||
| configAsCode.config.dns.blocked_response_ttl | int | `10` | |
|
||||
| configAsCode.config.dns.blocked_services | list | `[]` | |
|
||||
| configAsCode.config.dns.blocking_ipv4 | string | `""` | |
|
||||
| configAsCode.config.dns.blocking_ipv6 | string | `""` | |
|
||||
| configAsCode.config.dns.blocking_mode | string | `"default"` | |
|
||||
| configAsCode.config.dns.bogus_nxdomain | list | `[]` | |
|
||||
| configAsCode.config.dns.bootstrap_dns[0] | string | `"9.9.9.10"` | |
|
||||
| configAsCode.config.dns.bootstrap_dns[1] | string | `"149.112.112.10"` | |
|
||||
| configAsCode.config.dns.bootstrap_dns[2] | string | `"2620:fe::10"` | |
|
||||
| configAsCode.config.dns.bootstrap_dns[3] | string | `"2620:fe::fe:10"` | |
|
||||
| configAsCode.config.dns.cache_size | int | `4194304` | |
|
||||
| configAsCode.config.dns.cache_time | int | `30` | |
|
||||
| configAsCode.config.dns.cache_ttl_max | int | `0` | |
|
||||
| configAsCode.config.dns.cache_ttl_min | int | `0` | |
|
||||
| configAsCode.config.dns.disallowed_clients | list | `[]` | |
|
||||
| configAsCode.config.dns.edns_client_subnet | bool | `false` | |
|
||||
| configAsCode.config.dns.enable_dnssec | bool | `false` | |
|
||||
| configAsCode.config.dns.fastest_addr | bool | `false` | |
|
||||
| configAsCode.config.dns.filtering_enabled | bool | `true` | |
|
||||
| configAsCode.config.dns.filters_update_interval | int | `24` | |
|
||||
| configAsCode.config.dns.parental_block_host | string | `"family-block.dns.adguard.com"` | |
|
||||
| configAsCode.config.dns.parental_cache_size | int | `1048576` | |
|
||||
| configAsCode.config.dns.parental_enabled | bool | `false` | |
|
||||
| configAsCode.config.dns.port | int | `53` | |
|
||||
| configAsCode.config.dns.protection_enabled | bool | `true` | |
|
||||
| configAsCode.config.dns.querylog_enabled | bool | `true` | |
|
||||
| configAsCode.config.dns.querylog_interval | int | `90` | |
|
||||
| configAsCode.config.dns.querylog_size_memory | int | `1000` | |
|
||||
| configAsCode.config.dns.ratelimit | int | `0` | |
|
||||
| configAsCode.config.dns.ratelimit_whitelist | list | `[]` | |
|
||||
| configAsCode.config.dns.refuse_any | bool | `true` | |
|
||||
| configAsCode.config.dns.rewrites | list | `[]` | |
|
||||
| configAsCode.config.dns.safebrowsing_block_host | string | `"standard-block.dns.adguard.com"` | |
|
||||
| configAsCode.config.dns.safebrowsing_cache_size | int | `1048576` | |
|
||||
| configAsCode.config.dns.safebrowsing_enabled | bool | `false` | |
|
||||
| configAsCode.config.dns.safesearch_cache_size | int | `1048576` | |
|
||||
| configAsCode.config.dns.safesearch_enabled | bool | `false` | |
|
||||
| configAsCode.config.dns.statistics_interval | int | `1` | |
|
||||
| configAsCode.config.dns.upstream_dns[0] | string | `"https://dns10.quad9.net/dns-query"` | |
|
||||
| configAsCode.config.filters[0].enabled | bool | `true` | |
|
||||
| configAsCode.config.filters[0].id | int | `1` | |
|
||||
| configAsCode.config.filters[0].name | string | `"AdGuard DNS filter"` | |
|
||||
| configAsCode.config.filters[0].url | string | `"https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt"` | |
|
||||
| configAsCode.config.filters[1].enabled | bool | `false` | |
|
||||
| configAsCode.config.filters[1].id | int | `2` | |
|
||||
| configAsCode.config.filters[1].name | string | `"AdAway"` | |
|
||||
| configAsCode.config.filters[1].url | string | `"https://adaway.org/hosts.txt"` | |
|
||||
| configAsCode.config.filters[2].enabled | bool | `false` | |
|
||||
| configAsCode.config.filters[2].id | int | `4` | |
|
||||
| configAsCode.config.filters[2].name | string | `"MalwareDomainList.com Hosts List"` | |
|
||||
| configAsCode.config.filters[2].url | string | `"https://www.malwaredomainlist.com/hostslist/hosts.txt"` | |
|
||||
| configAsCode.config.http_proxy | string | `""` | |
|
||||
| configAsCode.config.language | string | `"en"` | |
|
||||
| configAsCode.config.log_file | string | `""` | |
|
||||
| configAsCode.config.rlimit_nofile | int | `0` | |
|
||||
| configAsCode.config.schema_version | int | `6` | |
|
||||
| configAsCode.config.tls.allow_unencrypted_doh | bool | `false` | |
|
||||
| configAsCode.config.tls.certificate_chain | string | `""` | |
|
||||
| configAsCode.config.tls.certificate_path | string | `""` | |
|
||||
| configAsCode.config.tls.enabled | bool | `false` | |
|
||||
| configAsCode.config.tls.force_https | bool | `false` | |
|
||||
| configAsCode.config.tls.port_dns_over_tls | int | `853` | |
|
||||
| configAsCode.config.tls.port_https | int | `443` | |
|
||||
| configAsCode.config.tls.private_key | string | `""` | |
|
||||
| configAsCode.config.tls.private_key_path | string | `""` | |
|
||||
| configAsCode.config.tls.server_name | string | `""` | |
|
||||
| configAsCode.config.tls.strict_sni_check | bool | `false` | |
|
||||
| configAsCode.config.user_rules | list | `[]` | |
|
||||
| configAsCode.config.users | list | `[]` | |
|
||||
| configAsCode.config.verbose | bool | `false` | |
|
||||
| configAsCode.config.web_session_ttl | int | `720` | |
|
||||
| configAsCode.config.whitelist_filters | list | `[]` | |
|
||||
| configAsCode.enabled | bool | `false` | |
|
||||
| configAsCode.image.pullPolicy | string | `"Always"` | |
|
||||
| configAsCode.image.repository | string | `"busybox"` | |
|
||||
| configAsCode.image.tag | string | `"latest"` | |
|
||||
| configAsCode.resources | object | `{}` | |
|
||||
| fullnameOverride | string | `""` | |
|
||||
| args[0] | string | `"--config"` | |
|
||||
| args[1] | string | `"/opt/adguardhome/conf/AdGuardHome.yaml"` | |
|
||||
| args[2] | string | `"--no-check-update"` | |
|
||||
| config | string | `"bind_host: 0.0.0.0\nbind_port: 3000\nbeta_bind_port: 0\nusers: []\nhttp_proxy: \"\"\nlanguage: en\nrlimit_nofile: 0\ndebug_pprof: false\nweb_session_ttl: 720\ndns:\n bind_host: 0.0.0.0\n port: 53\n statistics_interval: 1\n querylog_enabled: true\n querylog_file_enabled: true\n querylog_interval: 90\n querylog_size_memory: 1000\n anonymize_client_ip: false\n protection_enabled: true\n blocking_mode: default\n blocking_ipv4: \"\"\n blocking_ipv6: \"\"\n blocked_response_ttl: 10\n parental_block_host: family-block.dns.adguard.com\n safebrowsing_block_host: standard-block.dns.adguard.com\n ratelimit: 0\n ratelimit_whitelist: []\n refuse_any: true\n upstream_dns:\n - https://dns10.quad9.net/dns-query\n upstream_dns_file: \"\"\n bootstrap_dns:\n - 9.9.9.10\n - 149.112.112.10\n - 2620:fe::10\n - 2620:fe::fe:10\n all_servers: false\n fastest_addr: false\n allowed_clients: []\n disallowed_clients: []\n blocked_hosts: []\n cache_size: 4194304\n cache_ttl_min: 0\n cache_ttl_max: 0\n bogus_nxdomain: []\n aaaa_disabled: false\n enable_dnssec: false\n edns_client_subnet: false\n max_goroutines: 300\n ipset: []\n filtering_enabled: true\n filters_update_interval: 24\n parental_enabled: false\n safesearch_enabled: false\n safebrowsing_enabled: false\n safebrowsing_cache_size: 1048576\n safesearch_cache_size: 1048576\n parental_cache_size: 1048576\n cache_time: 30\n rewrites: []\n blocked_services: []\n customresolver: null\ntls:\n enabled: false\n server_name: \"\"\n force_https: false\n port_https: 443\n port_dns_over_tls: 853\n port_dns_over_quic: 784\n port_dnscrypt: 0\n dnscrypt_config_file: \"\"\n allow_unencrypted_doh: false\n strict_sni_check: false\n certificate_chain: \"\"\n private_key: \"\"\n certificate_path: \"\"\n private_key_path: \"\"\nfilters:\n- enabled: true\n url: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt\n name: AdGuard DNS filter\n id: 1\n- enabled: false\n url: https://adaway.org/hosts.txt\n name: AdAway\n id: 2\n- enabled: false\n url: https://www.malwaredomainlist.com/hostslist/hosts.txt\n name: MalwareDomainList.com Hosts List\n id: 4\nwhitelist_filters: []\nuser_rules: []\ndhcp:\n enabled: false\n interface_name: \"\"\n dhcpv4:\n gateway_ip: \"\"\n subnet_mask: \"\"\n range_start: \"\"\n range_end: \"\"\n lease_duration: 86400\n icmp_timeout_msec: 1000\n options: []\n dhcpv6:\n range_start: \"\"\n lease_duration: 86400\n ra_slaac_only: false\n ra_allow_slaac: false\nclients: []\nlog_compress: false\nlog_localtime: false\nlog_max_backups: 0\nlog_max_size: 100\nlog_max_age: 3\nlog_file: \"\"\nverbose: false\nschema_version: 7\n"` | |
|
||||
| env | object | `{}` | |
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| image.repository | string | `"adguard/adguardhome"` | |
|
||||
| ingress.annotations | object | `{}` | |
|
||||
| ingress.enabled | bool | `false` | |
|
||||
| ingress.hosts[0] | string | `"chart-example.local"` | |
|
||||
| ingress.path | string | `"/"` | |
|
||||
| ingress.tls | list | `[]` | |
|
||||
| nameOverride | string | `""` | |
|
||||
| nodeSelector | object | `{}` | |
|
||||
| persistence.config.accessMode | string | `"ReadWriteOnce"` | |
|
||||
| persistence.config.enabled | bool | `true` | |
|
||||
| persistence.config.size | string | `"20Mi"` | |
|
||||
| persistence.config.skipuninstall | bool | `false` | |
|
||||
| persistence.work.accessMode | string | `"ReadWriteOnce"` | |
|
||||
| persistence.work.enabled | bool | `true` | |
|
||||
| persistence.work.size | string | `"10Gi"` | |
|
||||
| persistence.work.skipuninstall | bool | `false` | |
|
||||
| podAnnotations."prometheus.io/port" | string | `"api"` | |
|
||||
| podAnnotations."prometheus.io/scrape" | string | `"true"` | |
|
||||
| podSecurityContext | object | `{}` | |
|
||||
| probes.liveness.enabled | bool | `true` | |
|
||||
| probes.liveness.failureThreshold | int | `5` | |
|
||||
| probes.liveness.initialDelaySeconds | int | `5` | |
|
||||
| probes.liveness.periodSeconds | int | `10` | |
|
||||
| probes.readiness.enabled | bool | `false` | |
|
||||
| probes.readiness.failureThreshold | int | `5` | |
|
||||
| probes.readiness.initialDelaySeconds | int | `5` | |
|
||||
| probes.readiness.periodSeconds | int | `10` | |
|
||||
| probes.startup.enabled | bool | `false` | |
|
||||
| probes.startup.failureThreshold | int | `30` | |
|
||||
| probes.startup.initialDelaySeconds | int | `5` | |
|
||||
| probes.startup.periodSeconds | int | `10` | |
|
||||
| resources | object | `{}` | |
|
||||
| securityContext | object | `{}` | |
|
||||
| service.annotations | object | `{}` | |
|
||||
| service.type | string | `"ClusterIP"` | |
|
||||
| serviceDHCP.annotations | object | `{}` | |
|
||||
| serviceDHCP.enabled | bool | `false` | |
|
||||
| serviceDHCP.loadBalancerIP | string | `""` | |
|
||||
| serviceDHCP.type | string | `"NodePort"` | |
|
||||
| serviceDNSOverTLS.annotations | object | `{}` | |
|
||||
| serviceDNSOverTLS.enabled | bool | `false` | |
|
||||
| serviceDNSOverTLS.loadBalancerIP | string | `""` | |
|
||||
| serviceDNSOverTLS.type | string | `"NodePort"` | |
|
||||
| serviceMonitor.additionalLabels | object | `{}` | |
|
||||
| serviceMonitor.enabled | bool | `false` | |
|
||||
| serviceTCP.annotations | object | `{}` | |
|
||||
| serviceTCP.enabled | bool | `false` | |
|
||||
| serviceTCP.loadBalancerIP | string | `""` | |
|
||||
| serviceTCP.type | string | `"NodePort"` | |
|
||||
| serviceUDP.annotations | object | `{}` | |
|
||||
| serviceUDP.enabled | bool | `true` | |
|
||||
| serviceUDP.loadBalancerIP | string | `""` | |
|
||||
| serviceUDP.type | string | `"NodePort"` | |
|
||||
| strategyType | string | `"Recreate"` | |
|
||||
| timezone | string | `"UTC"` | |
|
||||
| tlsSecretName | string | `""` | |
|
||||
| tolerations | list | `[]` | |
|
||||
| volumePermissions.image.pullPolicy | string | `"Always"` | |
|
||||
| volumePermissions.image.repository | string | `"busybox"` | |
|
||||
| volumePermissions.image.tag | string | `"latest"` | |
|
||||
| volumePermissions.resources | object | `{}` | |
|
||||
| image.tag | string | `"v0.105.2"` | |
|
||||
| initContainers[0].command[0] | string | `"sh"` | |
|
||||
| initContainers[0].command[1] | string | `"-c"` | |
|
||||
| initContainers[0].command[2] | string | `"if [ ! -f /opt/adguardhome/conf/AdGuardHome.yaml ]; then\n mkdir -p /opt/adguardhome/conf\n cp /tmp/AdGuardHome.yaml /opt/adguardhome/conf/AdGuardHome.yaml\nfi\n"` | |
|
||||
| initContainers[0].image | string | `"busybox"` | |
|
||||
| initContainers[0].name | string | `"copy-configmap"` | |
|
||||
| initContainers[0].securityContext.runAsUser | int | `0` | |
|
||||
| initContainers[0].volumeMounts[0].mountPath | string | `"/tmp/AdGuardHome.yaml"` | |
|
||||
| initContainers[0].volumeMounts[0].name | string | `"adguard-home-config"` | |
|
||||
| initContainers[0].volumeMounts[0].subPath | string | `"AdGuardHome.yaml"` | |
|
||||
| persistence.config.emptyDir.enabled | bool | `false` | |
|
||||
| persistence.config.enabled | bool | `false` | |
|
||||
| persistence.config.mountPath | string | `"/opt/adguardhome/conf"` | |
|
||||
| persistence.data.emptyDir.enabled | bool | `false` | |
|
||||
| persistence.data.enabled | bool | `false` | |
|
||||
| persistence.data.mountPath | string | `"/opt/adguardhome/work"` | |
|
||||
| prometheus.serviceMonitor.additionalLabels | object | `{}` | |
|
||||
| prometheus.serviceMonitor.enabled | bool | `false` | |
|
||||
| prometheus.serviceMonitor.interval | string | `"30s"` | |
|
||||
| replicas | int | `1` | (int) Number of pods to load balance between |
|
||||
| service.port.port | int | `3000` | |
|
||||
| strategy.type | string | `"Recreate"` | |
|
||||
|
||||
## Changelog
|
||||
|
||||
@@ -238,7 +111,7 @@ All notable changes to this application Helm chart will be documented in this fi
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### [2.2.1]
|
||||
### [3.0.0]
|
||||
|
||||
#### Added
|
||||
|
||||
@@ -246,13 +119,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
|
||||
#### Changed
|
||||
|
||||
- Use helm-docs
|
||||
- **BREAKING** Migrate Adguard Home to the common library, a lot of configuration has changed.
|
||||
|
||||
#### Removed
|
||||
|
||||
- N/A
|
||||
|
||||
[2.2.1]: #2.2.1
|
||||
[3.0.0]: #3.0.0
|
||||
|
||||
## Support
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ All notable changes to this application Helm chart will be documented in this fi
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### [2.2.1]
|
||||
### [3.0.0]
|
||||
|
||||
#### Added
|
||||
|
||||
@@ -17,11 +17,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
|
||||
#### Changed
|
||||
|
||||
- Use helm-docs
|
||||
- **BREAKING** Migrate Adguard Home to the common library, a lot of configuration has changed.
|
||||
|
||||
#### Removed
|
||||
|
||||
- N/A
|
||||
|
||||
[2.2.1]: #2.2.1
|
||||
[3.0.0]: #3.0.0
|
||||
{{- end -}}
|
||||
|
||||
11
charts/stable/adguard-home/ci/ct-values.yaml
Normal file
11
charts/stable/adguard-home/ci/ct-values.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
persistence:
|
||||
config:
|
||||
enabled: true
|
||||
emptyDir:
|
||||
enabled: true
|
||||
mountPath: /opt/adguardhome/conf
|
||||
data:
|
||||
enabled: true
|
||||
emptyDir:
|
||||
enabled: true
|
||||
mountPath: /opt/adguardhome/work
|
||||
@@ -1,15 +1 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if contains "NodePort" .Values.serviceUDP.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "adguard-home.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
{{- else if contains "LoadBalancer" .Values.serviceUDP.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ include "adguard-home.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "adguard-home.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.serviceUDP.port }}
|
||||
{{- else if contains "ClusterIP" .Values.serviceUDP.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "adguard-home.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:3000
|
||||
{{- end }}
|
||||
{{- include "common.notes.defaultNotes" . -}}
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "adguard-home.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "adguard-home.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "adguard-home.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
31
charts/stable/adguard-home/templates/common.yaml
Normal file
31
charts/stable/adguard-home/templates/common.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
{{/* Make sure all variables are set properly */}}
|
||||
{{- include "common.values.setup" . }}
|
||||
|
||||
{{/* Append the configMap to the additionalVolumes */}}
|
||||
{{- define "adguard-home.configmap.volume" -}}
|
||||
name: adguard-home-config
|
||||
configMap:
|
||||
name: {{ template "common.names.fullname" . }}-config
|
||||
{{- end -}}
|
||||
|
||||
{{- $volume := include "adguard-home.configmap.volume" . | fromYaml -}}
|
||||
{{- if $volume -}}
|
||||
{{- $additionalVolumes := append .Values.additionalVolumes $volume }}
|
||||
{{- $_ := set .Values "additionalVolumes" (deepCopy $additionalVolumes) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Append the configMap volume to the additionalVolumeMounts */}}
|
||||
{{- define "adguard-home.configmap.volumeMount" -}}
|
||||
name: adguard-home-config
|
||||
mountPath: /tmp/AdGuardHome.yaml
|
||||
subPath: AdGuardHome.yaml
|
||||
{{- end -}}
|
||||
|
||||
{{- $volumeMount := include "adguard-home.configmap.volumeMount" . | fromYaml -}}
|
||||
{{- if $volumeMount -}}
|
||||
{{- $additionalVolumeMounts := append .Values.additionalVolumeMounts $volumeMount }}
|
||||
{{- $_ := set .Values "additionalVolumeMounts" (deepCopy $additionalVolumeMounts) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Render the templates */}}
|
||||
{{ include "common.all" . }}
|
||||
@@ -1,29 +0,0 @@
|
||||
|
||||
{{- if and .Values.persistence.config.enabled (not .Values.persistence.config.existingClaim) }}
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "adguard-home.fullname" . }}-config
|
||||
{{- if .Values.persistence.config.skipuninstall }}
|
||||
annotations:
|
||||
"helm.sh/resource-policy": keep
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .Values.persistence.config.accessMode | quote }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.persistence.config.size | quote }}
|
||||
{{- if .Values.persistence.config.storageClass }}
|
||||
{{- if (eq "-" .Values.persistence.config.storageClass) }}
|
||||
storageClassName: ""
|
||||
{{- else }}
|
||||
storageClassName: "{{ .Values.persistence.config.storageClass }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -1,14 +1,9 @@
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}
|
||||
name: {{ template "common.names.fullname" . }}-config
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
data:
|
||||
AdGuardHome.yaml: |
|
||||
{{- toYaml .Values.configAsCode.config | nindent 4 }}
|
||||
{{- end }}
|
||||
{{ .Values.config | indent 4 }}
|
||||
|
||||
@@ -1,208 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
spec:
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: {{ .Values.strategyType }}
|
||||
revisionHistoryLimit: 3
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
annotations:
|
||||
{{- with .Values.podAnnotations }}
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
||||
{{- end }}
|
||||
spec:
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
{{- if or .Values.configAsCode.enabled .Values.securityContext.runAsUser }}
|
||||
initContainers:
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
- name: "config"
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: true
|
||||
image: "{{ .Values.configAsCode.image.repository }}:{{ .Values.configAsCode.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.configAsCode.image.pullPolicy }}
|
||||
command: ["sh", "-c", "cat /configmap/AdGuardHome.yaml > /opt/adguardhome/conf/AdGuardHome.yaml"]
|
||||
resources: {{- toYaml .Values.configAsCode.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- name: configmap
|
||||
mountPath: /configmap
|
||||
- name: config
|
||||
mountPath: /opt/adguardhome/conf
|
||||
readOnly: false
|
||||
{{- end }}
|
||||
{{- if .Values.securityContext.runAsUser }}
|
||||
- name: "volume-permissions"
|
||||
securityContext:
|
||||
readOnlyRootFilesystem: true
|
||||
image: "{{ .Values.volumePermissions.image.repository }}:{{ .Values.volumePermissions.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.volumePermissions.image.pullPolicy }}
|
||||
command: ["/bin/chown", "-R", "{{ .Values.securityContext.runAsUser }}:", "/opt/adguardhome/work", "/opt/adguardhome/conf"]
|
||||
resources: {{- toYaml .Values.volumePermissions.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- name: work
|
||||
mountPath: /opt/adguardhome/work
|
||||
{{- with .Values.persistence.work.subPath }}
|
||||
subPath: {{ . }}
|
||||
{{- end }}
|
||||
readOnly: false
|
||||
- name: config
|
||||
mountPath: /opt/adguardhome/conf
|
||||
{{- with .Values.persistence.config.subPath }}
|
||||
subPath: {{ . }}
|
||||
{{- end }}
|
||||
readOnly: false
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.securityContext | nindent 12 }}
|
||||
image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
env:
|
||||
{{- if .Values.timezone }}
|
||||
- name: TZ
|
||||
value: {{ .Values.timezone | quote }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
- name: work
|
||||
mountPath: /opt/adguardhome/work
|
||||
{{- with .Values.persistence.work.subPath }}
|
||||
subPath: {{ . }}
|
||||
{{- end }}
|
||||
readOnly: false
|
||||
- name: config
|
||||
mountPath: /opt/adguardhome/conf
|
||||
{{- with .Values.persistence.config.subPath }}
|
||||
subPath: {{ . }}
|
||||
{{- end }}
|
||||
readOnly: false
|
||||
{{- if .Values.tlsSecretName }}
|
||||
- name: certs
|
||||
mountPath: /certs
|
||||
readOnly: false
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
containerPort: {{ .Values.configAsCode.config.bind_port | default 3000 }}
|
||||
{{- else }}
|
||||
containerPort: 3000
|
||||
{{- end }}
|
||||
- name: dns
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
containerPort: {{ .Values.configAsCode.config.dns.port | default 53 }}
|
||||
{{- else }}
|
||||
containerPort: 53
|
||||
{{- end }}
|
||||
protocol: TCP
|
||||
- name: dns-udp
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
containerPort: {{ .Values.configAsCode.config.dns.port | default 53 }}
|
||||
{{- else }}
|
||||
containerPort: 53
|
||||
{{- end }}
|
||||
protocol: UDP
|
||||
{{- if .Values.serviceDHCP.enabled }}
|
||||
- name: dhcp-server-udp
|
||||
containerPort: 67
|
||||
protocol: UDP
|
||||
- name: dhcp-client-tcp
|
||||
containerPort: 68
|
||||
protocol: TCP
|
||||
- name: dhcp-client-udp
|
||||
containerPort: 68
|
||||
protocol: UDP
|
||||
{{- end }}
|
||||
{{- if .Values.serviceDNSOverTLS.enabled }}
|
||||
- name: dns-over-tls
|
||||
containerPort: 853
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
{{- if .Values.probes.liveness.enabled }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /login.html
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: {{ .Values.probes.liveness.initialDelaySeconds }}
|
||||
failureThreshold: {{ .Values.probes.liveness.failureThreshold }}
|
||||
periodSeconds: {{ .Values.probes.liveness.periodSeconds }}
|
||||
{{- end }}
|
||||
{{- if .Values.probes.readiness.enabled }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /login.html
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: {{ .Values.probes.readiness.initialDelaySeconds }}
|
||||
failureThreshold: {{ .Values.probes.readiness.failureThreshold }}
|
||||
periodSeconds: {{ .Values.probes.readiness.periodSeconds }}
|
||||
{{- end }}
|
||||
{{- if .Values.probes.startup.enabled }}
|
||||
startupProbe:
|
||||
httpGet:
|
||||
path: /login.html
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: {{ .Values.probes.startup.initialDelaySeconds }}
|
||||
failureThreshold: {{ .Values.probes.startup.failureThreshold }}
|
||||
periodSeconds: {{ .Values.probes.startup.periodSeconds }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
volumes:
|
||||
{{- if .Values.tlsSecretName }}
|
||||
- name: certs
|
||||
secret:
|
||||
secretName: {{ .Values.tlsSecretName }}
|
||||
{{- end }}
|
||||
{{- if .Values.configAsCode.enabled }}
|
||||
- name: configmap
|
||||
configMap:
|
||||
name: {{ include "adguard-home.fullname" . }}
|
||||
{{- end }}
|
||||
- name: config
|
||||
{{- if .Values.persistence.config.enabled }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ if .Values.persistence.config.existingClaim }}{{ .Values.persistence.config.existingClaim }}{{- else }}{{ template "adguard-home.fullname" . }}-config{{- end }}
|
||||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
- name: work
|
||||
{{- if .Values.persistence.work.enabled }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ if .Values.persistence.work.existingClaim }}{{ .Values.persistence.work.existingClaim }}{{- else }}{{ template "adguard-home.fullname" . }}-work{{- end }}
|
||||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
@@ -1,38 +0,0 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "adguard-home.fullname" . -}}
|
||||
{{- $ingressPath := .Values.ingress.path -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ . | quote }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ $ingressPath }}
|
||||
backend:
|
||||
serviceName: {{ $fullName }}
|
||||
servicePort: http
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,45 +0,0 @@
|
||||
{{- if .Values.serviceDHCP.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}-dhcp
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.serviceDHCP.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.serviceDHCP.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.serviceDHCP.type }}
|
||||
{{- if .Values.serviceDHCP.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.serviceDHCP.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceDHCP.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.serviceDHCP.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- if .Values.serviceDHCP.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.serviceDHCP.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
externalTrafficPolicy: {{ .Values.serviceDHCP.externalTrafficPolicy }}
|
||||
ports:
|
||||
- port: 67
|
||||
targetPort: dhcp-server-udp
|
||||
protocol: UDP
|
||||
name: dhcp-server-udp
|
||||
- port: 68
|
||||
targetPort: dhcp-client-tcp
|
||||
protocol: TCP
|
||||
name: dhcp-client-tcp
|
||||
- port: 68
|
||||
targetPort: dhcp-client-udp
|
||||
protocol: UDP
|
||||
name: dhcp-client-udp
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
@@ -1,37 +0,0 @@
|
||||
{{- if .Values.serviceDNSOverTLS.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}-dns-over-tls
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.serviceDNSOverTLS.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.serviceDNSOverTLS.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.serviceDNSOverTLS.type }}
|
||||
{{- if .Values.serviceDNSOverTLS.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.serviceDNSOverTLS.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceDNSOverTLS.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.serviceDNSOverTLS.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- if .Values.serviceDNSOverTLS.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.serviceDNSOverTLS.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
externalTrafficPolicy: {{ .Values.serviceDNSOverTLS.externalTrafficPolicy }}
|
||||
ports:
|
||||
- port: 853
|
||||
targetPort: dns-over-tls
|
||||
protocol: TCP
|
||||
name: dns-over-tls
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
@@ -1,37 +0,0 @@
|
||||
{{- if .Values.serviceTCP.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}-tcp
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.serviceTCP.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.serviceTCP.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.serviceTCP.type }}
|
||||
{{- if .Values.serviceTCP.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.serviceTCP.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceTCP.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.serviceTCP.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- if .Values.serviceTCP.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.serviceTCP.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
externalTrafficPolicy: {{ .Values.serviceTCP.externalTrafficPolicy }}
|
||||
ports:
|
||||
- port: 53
|
||||
targetPort: dns
|
||||
protocol: TCP
|
||||
name: dns
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
@@ -1,37 +0,0 @@
|
||||
{{- if .Values.serviceUDP.enabled }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}-udp
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.serviceUDP.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.serviceUDP.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.serviceUDP.type }}
|
||||
{{- if .Values.serviceUDP.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.serviceUDP.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.serviceUDP.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.serviceUDP.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- if .Values.serviceUDP.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.serviceUDP.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
externalTrafficPolicy: {{ .Values.serviceUDP.externalTrafficPolicy }}
|
||||
ports:
|
||||
- port: 53
|
||||
targetPort: dns-udp
|
||||
protocol: UDP
|
||||
name: dns-udp
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
@@ -1,35 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.service.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.service.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
{{- if .Values.service.loadBalancerIP }}
|
||||
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
|
||||
{{- end }}
|
||||
{{- if .Values.service.loadBalancerSourceRanges }}
|
||||
loadBalancerSourceRanges:
|
||||
{{ toYaml .Values.service.loadBalancerSourceRanges | indent 4 }}
|
||||
{{- end -}}
|
||||
{{- if .Values.service.externalIPs }}
|
||||
externalIPs:
|
||||
{{ toYaml .Values.service.externalIPs | indent 4 }}
|
||||
{{- end }}
|
||||
externalTrafficPolicy: {{ .Values.service.externalTrafficPolicy }}
|
||||
ports:
|
||||
- port: 3000
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
@@ -1,23 +1,21 @@
|
||||
{{- if .Values.serviceMonitor.enabled }}
|
||||
{{- if .Values.prometheus.serviceMonitor.enabled }}
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: {{ include "adguard-home.fullname" . }}
|
||||
name: {{ template "common.names.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
{{- with .Values.serviceMonitor.additionalLabels }}
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
{{- with .Values.prometheus.serviceMonitor.additionalLabels }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- include "common.labels.selectorLabels" . | nindent 6 }}
|
||||
endpoints:
|
||||
- port: http
|
||||
interval: 30s
|
||||
{{- with .Values.prometheus.serviceMonitor.interval }}
|
||||
interval: {{ . }}
|
||||
{{- end }}
|
||||
path: /
|
||||
{{- end }}
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
|
||||
{{- if and .Values.persistence.work.enabled (not .Values.persistence.work.existingClaim) }}
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "adguard-home.fullname" . }}-work
|
||||
{{- if .Values.persistence.work.skipuninstall }}
|
||||
annotations:
|
||||
"helm.sh/resource-policy": keep
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "adguard-home.name" . }}
|
||||
helm.sh/chart: {{ include "adguard-home.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .Values.persistence.work.accessMode | quote }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.persistence.work.size | quote }}
|
||||
{{- if .Values.persistence.work.storageClass }}
|
||||
{{- if (eq "-" .Values.persistence.work.storageClass) }}
|
||||
storageClassName: ""
|
||||
{{- else }}
|
||||
storageClassName: "{{ .Values.persistence.work.storageClass }}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -1,24 +1,115 @@
|
||||
# upgrade strategy type (e.g. Recreate or RollingUpdate)
|
||||
strategyType: Recreate
|
||||
#
|
||||
# IMPORTANT NOTE
|
||||
#
|
||||
# This chart inherits from our common library chart. You can check the default values/options here:
|
||||
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
|
||||
#
|
||||
|
||||
configAsCode:
|
||||
enabled: false
|
||||
resources: {}
|
||||
# requests:
|
||||
# memory: 128Mi
|
||||
# cpu: 100m
|
||||
image:
|
||||
repository: busybox
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
# Copy the configmap to the AdGuardHome conf directory
|
||||
# Do NOT overwrite when the file already exists
|
||||
initContainers:
|
||||
- name: copy-configmap
|
||||
image: busybox
|
||||
command:
|
||||
- "sh"
|
||||
- "-c"
|
||||
- |
|
||||
if [ ! -f /opt/adguardhome/conf/AdGuardHome.yaml ]; then
|
||||
mkdir -p /opt/adguardhome/conf
|
||||
cp /tmp/AdGuardHome.yaml /opt/adguardhome/conf/AdGuardHome.yaml
|
||||
fi
|
||||
volumeMounts:
|
||||
- name: adguard-home-config
|
||||
mountPath: /tmp/AdGuardHome.yaml
|
||||
subPath: AdGuardHome.yaml
|
||||
securityContext:
|
||||
runAsUser: 0
|
||||
|
||||
image:
|
||||
repository: adguard/adguardhome
|
||||
tag: v0.105.2
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
strategy:
|
||||
type: Recreate
|
||||
|
||||
env: {}
|
||||
# TZ:
|
||||
|
||||
args:
|
||||
- "--config"
|
||||
- "/opt/adguardhome/conf/AdGuardHome.yaml"
|
||||
- "--no-check-update"
|
||||
|
||||
# -- (int) Number of pods to load balance between
|
||||
replicas: 1
|
||||
|
||||
service:
|
||||
port:
|
||||
port: 3000
|
||||
# additionalServices:
|
||||
# - enabled: true
|
||||
# nameSuffix: dns-tcp
|
||||
# type: NodePort
|
||||
# port:
|
||||
# port: 53
|
||||
# name: dns-tcp
|
||||
# protocol: TCP
|
||||
# targetPort: 53
|
||||
# externalTrafficPolicy: Local
|
||||
# - enabled: true
|
||||
# nameSuffix: dns-udp
|
||||
# type: NodePort
|
||||
# port:
|
||||
# port: 53
|
||||
# name: dns-udp
|
||||
# protocol: UDP
|
||||
# targetPort: 53
|
||||
# externalTrafficPolicy: Local
|
||||
|
||||
persistence:
|
||||
config:
|
||||
enabled: false
|
||||
emptyDir:
|
||||
enabled: false
|
||||
mountPath: /opt/adguardhome/conf
|
||||
data:
|
||||
enabled: false
|
||||
emptyDir:
|
||||
enabled: false
|
||||
mountPath: /opt/adguardhome/work
|
||||
## Persistent Volume Storage Class
|
||||
## If defined, storageClassName: <storageClass>
|
||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
## If undefined (the default) or set to null, no storageClassName spec is
|
||||
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
||||
## GKE, AWS & OpenStack)
|
||||
# storageClass: "-"
|
||||
# accessMode: ReadWriteOnce
|
||||
# size: 1Gi
|
||||
## Do not delete the pvc upon helm uninstall
|
||||
# skipuninstall: false
|
||||
# existingClaim: ""
|
||||
|
||||
prometheus:
|
||||
serviceMonitor:
|
||||
enabled: false
|
||||
interval: 30s
|
||||
additionalLabels: {}
|
||||
|
||||
# podAnnotations:
|
||||
# prometheus.io/scrape: "true"
|
||||
# prometheus.io/port: "api"
|
||||
|
||||
# -- Full list of options https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration
|
||||
# @default -- see URL to default config
|
||||
config: |
|
||||
bind_host: 0.0.0.0
|
||||
bind_port: 3000
|
||||
beta_bind_port: 0
|
||||
users: []
|
||||
# - name: admin
|
||||
# password: $2y$05$mV4GSa5Dymk4Hjg3NCscBuCYSckCGfc2mbS57SNkBkBAfvqfOdFfm
|
||||
http_proxy: ""
|
||||
language: "en"
|
||||
language: en
|
||||
rlimit_nofile: 0
|
||||
debug_pprof: false
|
||||
web_session_ttl: 720
|
||||
@@ -27,6 +118,7 @@ configAsCode:
|
||||
port: 53
|
||||
statistics_interval: 1
|
||||
querylog_enabled: true
|
||||
querylog_file_enabled: true
|
||||
querylog_interval: 90
|
||||
querylog_size_memory: 1000
|
||||
anonymize_client_ip: false
|
||||
@@ -42,6 +134,7 @@ configAsCode:
|
||||
refuse_any: true
|
||||
upstream_dns:
|
||||
- https://dns10.quad9.net/dns-query
|
||||
upstream_dns_file: ""
|
||||
bootstrap_dns:
|
||||
- 9.9.9.10
|
||||
- 149.112.112.10
|
||||
@@ -50,15 +143,8 @@ configAsCode:
|
||||
all_servers: false
|
||||
fastest_addr: false
|
||||
allowed_clients: []
|
||||
# - 10.0.0.1
|
||||
# - 10.0.1.1/24
|
||||
disallowed_clients: []
|
||||
# - 10.0.1.1
|
||||
# - 10.0.11.1/24
|
||||
blocked_hosts: []
|
||||
# - example.org
|
||||
# - '*.example.org'
|
||||
# - '||example.org^'
|
||||
cache_size: 4194304
|
||||
cache_ttl_min: 0
|
||||
cache_ttl_max: 0
|
||||
@@ -66,6 +152,8 @@ configAsCode:
|
||||
aaaa_disabled: false
|
||||
enable_dnssec: false
|
||||
edns_client_subnet: false
|
||||
max_goroutines: 300
|
||||
ipset: []
|
||||
filtering_enabled: true
|
||||
filters_update_interval: 24
|
||||
parental_enabled: false
|
||||
@@ -76,38 +164,17 @@ configAsCode:
|
||||
parental_cache_size: 1048576
|
||||
cache_time: 30
|
||||
rewrites: []
|
||||
# - domain: example.org
|
||||
# answer: 127.0.0.1
|
||||
# - domain: '*.example.org'
|
||||
# answer: 127.0.0.1
|
||||
blocked_services: []
|
||||
# - facebook
|
||||
# - origin
|
||||
# - twitter
|
||||
# - snapchat
|
||||
# - skype
|
||||
# - whatsapp
|
||||
# - instagram
|
||||
# - youtube
|
||||
# - netflix
|
||||
# - twitch
|
||||
# - discord
|
||||
# - amazon
|
||||
# - ebay
|
||||
# - cloudflare
|
||||
# - steam
|
||||
# - epic_games
|
||||
# - reddit
|
||||
# - ok
|
||||
# - vk
|
||||
# - mail_ru
|
||||
# - tiktok
|
||||
customresolver: null
|
||||
tls:
|
||||
enabled: false
|
||||
server_name: ""
|
||||
force_https: false
|
||||
port_https: 443
|
||||
port_dns_over_tls: 853
|
||||
port_dns_over_quic: 784
|
||||
port_dnscrypt: 0
|
||||
dnscrypt_config_file: ""
|
||||
allow_unencrypted_doh: false
|
||||
strict_sni_check: false
|
||||
certificate_chain: ""
|
||||
@@ -128,235 +195,29 @@ configAsCode:
|
||||
name: MalwareDomainList.com Hosts List
|
||||
id: 4
|
||||
whitelist_filters: []
|
||||
# - enabled: true
|
||||
# url: https://easylist-downloads.adblockplus.org/exceptionrules.txt
|
||||
# name: Allow nonintrusive advertising
|
||||
# id: 1595760241
|
||||
user_rules: []
|
||||
# - '||example.org^'
|
||||
# - '@@||example.org^'
|
||||
# - 127.0.0.1 example.org
|
||||
# - '! Here goes a comment'
|
||||
# - '# Also a comment'
|
||||
dhcp:
|
||||
enabled: false
|
||||
interface_name: ""
|
||||
dhcpv4:
|
||||
gateway_ip: ""
|
||||
subnet_mask: ""
|
||||
range_start: ""
|
||||
range_end: ""
|
||||
lease_duration: 86400
|
||||
icmp_timeout_msec: 1000
|
||||
options: []
|
||||
dhcpv6:
|
||||
range_start: ""
|
||||
lease_duration: 86400
|
||||
ra_slaac_only: false
|
||||
ra_allow_slaac: false
|
||||
clients: []
|
||||
# - name: myuser
|
||||
# tags:
|
||||
# - user_admin
|
||||
# ids:
|
||||
# - 192.168.91.1
|
||||
# use_global_settings: true
|
||||
# filtering_enabled: false
|
||||
# parental_enabled: false
|
||||
# safesearch_enabled: false
|
||||
# safebrowsing_enabled: false
|
||||
# use_global_blocked_services: true
|
||||
# blocked_services: []
|
||||
# upstreams: []
|
||||
log_compress: false
|
||||
log_localtime: false
|
||||
log_max_backups: 0
|
||||
log_max_size: 100
|
||||
log_max_age: 3
|
||||
log_file: ""
|
||||
verbose: false
|
||||
schema_version: 6
|
||||
|
||||
tlsSecretName: ""
|
||||
# name of the secret that contains the tls cert and key.
|
||||
# this secret will be mounted inside the adguard container /certs path. e.g. works with cert-manager
|
||||
|
||||
image:
|
||||
repository: adguard/adguardhome
|
||||
# Image tag is set via charts appVersion. If you want to override the tag, specify it here
|
||||
# tag: vX.Y.Z
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
podSecurityContext: {}
|
||||
# fsGroup: 2000
|
||||
|
||||
securityContext: {}
|
||||
# capabilities:
|
||||
# drop:
|
||||
# - ALL
|
||||
# add:
|
||||
# - NET_BIND_SERVICE
|
||||
# readOnlyRootFilesystem: true
|
||||
# runAsNonRoot: true
|
||||
# runAsUser: 1000
|
||||
|
||||
timezone: "UTC"
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
path: /
|
||||
hosts:
|
||||
- chart-example.local
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
# - chart-example.local
|
||||
|
||||
|
||||
# Probes configuration
|
||||
probes:
|
||||
liveness:
|
||||
enabled: true
|
||||
initialDelaySeconds: 5
|
||||
failureThreshold: 5
|
||||
periodSeconds: 10
|
||||
readiness:
|
||||
enabled: false
|
||||
initialDelaySeconds: 5
|
||||
failureThreshold: 5
|
||||
periodSeconds: 10
|
||||
startup:
|
||||
enabled: false
|
||||
initialDelaySeconds: 5
|
||||
failureThreshold: 30
|
||||
periodSeconds: 10
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
# externalTrafficPolicy: Local
|
||||
# externalIPs: []
|
||||
# loadBalancerIP: ""
|
||||
# a fixed LoadBalancer IP
|
||||
# loadBalancerSourceRanges: []
|
||||
annotations: {}
|
||||
# metallb.universe.tf/address-pool: network-services
|
||||
# metallb.universe.tf/allow-shared-ip: adguard-home-svc
|
||||
|
||||
serviceTCP:
|
||||
enabled: false
|
||||
type: NodePort
|
||||
# externalTrafficPolicy: Local
|
||||
# externalIPs: []
|
||||
loadBalancerIP: ""
|
||||
# a fixed LoadBalancer IP
|
||||
# loadBalancerSourceRanges: []
|
||||
annotations: {}
|
||||
# metallb.universe.tf/address-pool: network-services
|
||||
# metallb.universe.tf/allow-shared-ip: adguard-home-svc
|
||||
|
||||
serviceUDP:
|
||||
enabled: true
|
||||
type: NodePort
|
||||
# externalTrafficPolicy: Local
|
||||
# externalIPs: []
|
||||
loadBalancerIP: ""
|
||||
# a fixed LoadBalancer IP
|
||||
# loadBalancerSourceRanges: []
|
||||
annotations: {}
|
||||
# metallb.universe.tf/address-pool: network-services
|
||||
# metallb.universe.tf/allow-shared-ip: adguard-home-svc
|
||||
|
||||
serviceDNSOverTLS:
|
||||
enabled: false
|
||||
## Enable if you use AdGuard as a DNS over TLS/HTTPS server
|
||||
type: NodePort
|
||||
# externalTrafficPolicy: Local
|
||||
# externalIPs: []
|
||||
loadBalancerIP: ""
|
||||
# a fixed LoadBalancer IP
|
||||
# loadBalancerSourceRanges: []
|
||||
annotations: {}
|
||||
# metallb.universe.tf/address-pool: network-services
|
||||
# metallb.universe.tf/allow-shared-ip: adguard-home-svc
|
||||
|
||||
serviceDHCP:
|
||||
enabled: false
|
||||
## Enable if you use AdGuard as a DHCP Server
|
||||
type: NodePort
|
||||
# externalTrafficPolicy: Local
|
||||
# externalIPs: []
|
||||
loadBalancerIP: ""
|
||||
# a fixed LoadBalancer IP
|
||||
annotations: {}
|
||||
# metallb.universe.tf/address-pool: network-services
|
||||
# metallb.universe.tf/allow-shared-ip: adguard-home-svc
|
||||
|
||||
serviceMonitor:
|
||||
enabled: false
|
||||
additionalLabels: {}
|
||||
|
||||
## Pod Annotations
|
||||
podAnnotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "api"
|
||||
|
||||
persistence:
|
||||
config:
|
||||
enabled: true
|
||||
## adguard-home configuration data Persistent Volume Storage Class
|
||||
## If defined, storageClassName: <storageClass>
|
||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
## If undefined (the default) or set to null, no storageClassName spec is
|
||||
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
||||
## GKE, AWS & OpenStack)
|
||||
##
|
||||
# storageClass: "-"
|
||||
##
|
||||
## If you want to reuse an existing claim, you can pass the name of the PVC using
|
||||
## the existingClaim variable
|
||||
# existingClaim: your-claim
|
||||
# subPath: some-subpath
|
||||
accessMode: ReadWriteOnce
|
||||
size: 20Mi
|
||||
## Do not delete the pvc upon helm uninstall
|
||||
skipuninstall: false
|
||||
work:
|
||||
enabled: true
|
||||
## adguard-home work volume configuration
|
||||
## If defined, storageClassName: <storageClass>
|
||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
## If undefined (the default) or set to null, no storageClassName spec is
|
||||
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
||||
## GKE, AWS & OpenStack)
|
||||
##
|
||||
# storageClass: "-"
|
||||
##
|
||||
## If you want to reuse an existing claim, you can pass the name of the PVC using
|
||||
## the existingClaim variable
|
||||
# existingClaim: your-claim
|
||||
# subPath: some-subpath
|
||||
accessMode: ReadWriteOnce
|
||||
size: 10Gi
|
||||
## Do not delete the pvc upon helm uninstall
|
||||
skipuninstall: false
|
||||
|
||||
volumePermissions:
|
||||
image:
|
||||
repository: busybox
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
resources: {}
|
||||
# requests:
|
||||
# memory: 128Mi
|
||||
# cpu: 100m
|
||||
|
||||
resources: {}
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
# limits:
|
||||
# memory: 500Mi
|
||||
# requests:
|
||||
# cpu: 50m
|
||||
# memory: 275Mi
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
schema_version: 7
|
||||
|
||||
26
charts/stable/stash/.helmignore
Normal file
26
charts/stable/stash/.helmignore
Normal file
@@ -0,0 +1,26 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
# OWNERS file for Kubernetes
|
||||
OWNERS
|
||||
# helm-docs templates
|
||||
*.gotmpl
|
||||
19
charts/stable/stash/Chart.yaml
Normal file
19
charts/stable/stash/Chart.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
apiVersion: v2
|
||||
appVersion: latest
|
||||
description: An organizer for your porn, written in Go
|
||||
name: stash
|
||||
version: 1.0.0
|
||||
kubeVersion: ">=1.16.0-0"
|
||||
keywords:
|
||||
- porn
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/stable/stash
|
||||
sources:
|
||||
- https://github.com/stashapp/stash
|
||||
- https://hub.docker.com/r/stashapp/stash
|
||||
maintainers:
|
||||
- name: onedr0p
|
||||
email: devin.kray@gmail.com
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.k8s-at-home.com
|
||||
version: 2.1.0
|
||||
122
charts/stable/stash/README.md
Normal file
122
charts/stable/stash/README.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# stash
|
||||
|
||||
 
|
||||
|
||||
An organizer for your porn, written in Go
|
||||
|
||||
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
|
||||
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/stashapp/stash>
|
||||
* <https://hub.docker.com/r/stashapp/stash>
|
||||
|
||||
## Requirements
|
||||
|
||||
Kubernetes: `>=1.16.0-0`
|
||||
|
||||
## Dependencies
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| https://library-charts.k8s-at-home.com | common | 2.1.0 |
|
||||
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
helm repo add k8s-at-home https://k8s-at-home.com/charts/
|
||||
helm repo update
|
||||
helm install stash k8s-at-home/stash
|
||||
```
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `stash`
|
||||
|
||||
```console
|
||||
helm install stash k8s-at-home/stash
|
||||
```
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall the `stash` deployment
|
||||
|
||||
```console
|
||||
helm uninstall stash
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
|
||||
|
||||
## Configuration
|
||||
|
||||
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
|
||||
Other values may be used from the [values.yaml](https://github.com/k8s-at-home/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).
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||
|
||||
```console
|
||||
helm install stash \
|
||||
--set env.TZ="America/New York" \
|
||||
k8s-at-home/stash
|
||||
```
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
|
||||
|
||||
```console
|
||||
helm install stash k8s-at-home/stash -f values.yaml
|
||||
```
|
||||
|
||||
## Custom configuration
|
||||
|
||||
N/A
|
||||
|
||||
## Values
|
||||
|
||||
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| env | object | `{}` | |
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| image.repository | string | `"stashapp/stash"` | |
|
||||
| image.tag | string | `"latest"` | |
|
||||
| ingress.enabled | bool | `false` | |
|
||||
| persistence.config.emptyDir.enabled | bool | `false` | |
|
||||
| persistence.config.enabled | bool | `false` | |
|
||||
| persistence.media.emptyDir.enabled | bool | `false` | |
|
||||
| persistence.media.enabled | bool | `false` | |
|
||||
| persistence.media.mountPath | string | `"/media"` | |
|
||||
| service.port.port | int | `9999` | |
|
||||
| strategy.type | string | `"Recreate"` | |
|
||||
|
||||
## Changelog
|
||||
|
||||
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common#changelog).
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### [1.0.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- N/A
|
||||
|
||||
#### Changed
|
||||
|
||||
- N/A
|
||||
|
||||
#### Removed
|
||||
|
||||
- N/A
|
||||
|
||||
[1.0.0]: #1.0.0
|
||||
|
||||
## Support
|
||||
|
||||
- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
|
||||
- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
|
||||
- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
|
||||
- Join our [Discord](https://discord.gg/sTMX7Vh) community
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
|
||||
145
charts/stable/stash/README.md.gotmpl
Normal file
145
charts/stable/stash/README.md.gotmpl
Normal file
@@ -0,0 +1,145 @@
|
||||
{{- define "custom.repository.organization" -}}
|
||||
k8s-at-home
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.repository.url" -}}
|
||||
https://github.com/k8s-at-home/charts
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.helm.url" -}}
|
||||
https://k8s-at-home.com/charts/
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.helm.path" -}}
|
||||
{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.notes" -}}
|
||||
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.requirements" -}}
|
||||
## Requirements
|
||||
|
||||
{{ template "chart.kubeVersionLine" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.dependencies" -}}
|
||||
## Dependencies
|
||||
|
||||
{{ template "chart.requirementsTable" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.install.tldr" -}}
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
|
||||
helm repo update
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.install" -}}
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `{{ template "chart.name" . }}`
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.uninstall" -}}
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall the `{{ template "chart.name" . }}` deployment
|
||||
|
||||
```console
|
||||
helm uninstall {{ template "chart.name" . }}
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.header" -}}
|
||||
## Configuration
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.readValues" -}}
|
||||
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
|
||||
Other values may be used from the [values.yaml](https://github.com/k8s-at-home/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).
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.example.set" -}}
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} \
|
||||
--set env.TZ="America/New York" \
|
||||
{{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.example.file" -}}
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.valuesSection" -}}
|
||||
## Values
|
||||
|
||||
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
|
||||
|
||||
{{ template "chart.valuesTable" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.support" -}}
|
||||
## Support
|
||||
|
||||
- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
|
||||
- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
|
||||
- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
|
||||
- Join our [Discord](https://discord.gg/sTMX7Vh) community
|
||||
{{- end -}}
|
||||
|
||||
{{ template "chart.header" . }}
|
||||
|
||||
{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
|
||||
|
||||
{{ template "chart.description" . }}
|
||||
|
||||
{{ template "custom.notes" . }}
|
||||
|
||||
{{ template "chart.sourcesSection" . }}
|
||||
|
||||
{{ template "custom.requirements" . }}
|
||||
|
||||
{{ template "custom.dependencies" . }}
|
||||
|
||||
{{ template "custom.install.tldr" . }}
|
||||
|
||||
{{ template "custom.install" . }}
|
||||
|
||||
{{ template "custom.uninstall" . }}
|
||||
|
||||
{{ template "custom.configuration.header" . }}
|
||||
|
||||
{{ template "custom.configuration.readValues" . }}
|
||||
|
||||
{{ template "custom.configuration.example.set" . }}
|
||||
|
||||
{{ template "custom.configuration.example.file" . }}
|
||||
|
||||
{{ template "custom.custom.configuration" . }}
|
||||
|
||||
{{ template "custom.valuesSection" . }}
|
||||
|
||||
{{ template "custom.changelog" . }}
|
||||
|
||||
{{ template "custom.support" . }}
|
||||
|
||||
{{ template "helm-docs.versionFooter" . }}
|
||||
27
charts/stable/stash/README_CHANGELOG.md.gotmpl
Normal file
27
charts/stable/stash/README_CHANGELOG.md.gotmpl
Normal file
@@ -0,0 +1,27 @@
|
||||
{{- define "custom.changelog.header" -}}
|
||||
## Changelog
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.changelog" -}}
|
||||
{{ template "custom.changelog.header" . }}
|
||||
|
||||
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common#changelog).
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### [1.0.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- N/A
|
||||
|
||||
#### Changed
|
||||
|
||||
- N/A
|
||||
|
||||
#### Removed
|
||||
|
||||
- N/A
|
||||
|
||||
[1.0.0]: #1.0.0
|
||||
{{- end -}}
|
||||
9
charts/stable/stash/README_CONFIG.md.gotmpl
Normal file
9
charts/stable/stash/README_CONFIG.md.gotmpl
Normal file
@@ -0,0 +1,9 @@
|
||||
{{- define "custom.custom.configuration.header" -}}
|
||||
## Custom configuration
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.custom.configuration" -}}
|
||||
{{ template "custom.custom.configuration.header" . }}
|
||||
|
||||
N/A
|
||||
{{- end -}}
|
||||
16
charts/stable/stash/ci/ct-values.yaml
Normal file
16
charts/stable/stash/ci/ct-values.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
env:
|
||||
STASH_STASH: "/media"
|
||||
STASH_GENERATED: "/root/.stash/generated"
|
||||
STASH_METADATA: "/root/.stash/metadata"
|
||||
STASH_CACHE: "/root/.stash/cache"
|
||||
persistence:
|
||||
config:
|
||||
enabled: true
|
||||
emptyDir:
|
||||
enabled: true
|
||||
mountPath: /root/.stash
|
||||
media:
|
||||
enabled: true
|
||||
emptyDir:
|
||||
enabled: true
|
||||
mountPath: /media
|
||||
1
charts/stable/stash/templates/NOTES.txt
Normal file
1
charts/stable/stash/templates/NOTES.txt
Normal file
@@ -0,0 +1 @@
|
||||
{{- include "common.notes.defaultNotes" . -}}
|
||||
1
charts/stable/stash/templates/common.yaml
Normal file
1
charts/stable/stash/templates/common.yaml
Normal file
@@ -0,0 +1 @@
|
||||
{{ include "common.all" . }}
|
||||
54
charts/stable/stash/values.yaml
Normal file
54
charts/stable/stash/values.yaml
Normal file
@@ -0,0 +1,54 @@
|
||||
#
|
||||
# IMPORTANT NOTE
|
||||
#
|
||||
# This chart inherits from our common library chart. You can check the default values/options here:
|
||||
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
|
||||
#
|
||||
|
||||
image:
|
||||
repository: stashapp/stash
|
||||
pullPolicy: IfNotPresent
|
||||
tag: latest@sha256:24dbd76071745be0c4e75f730aa7ac2b37cb2b2918eabf8559643196b3b7a64a
|
||||
|
||||
strategy:
|
||||
type: Recreate
|
||||
|
||||
# # See more environment variables in the stash documentation
|
||||
# https://raw.githubusercontent.com/stashapp/stash/master/docker/production/docker-compose.yml
|
||||
env: {}
|
||||
# STASH_STASH:
|
||||
# STASH_GENERATED:
|
||||
# STASH_METADATA:
|
||||
# STASH_CACHE:
|
||||
|
||||
service:
|
||||
port:
|
||||
port: 9999
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
|
||||
persistence:
|
||||
config:
|
||||
enabled: false
|
||||
emptyDir:
|
||||
enabled: false
|
||||
mountPath: /root/.stash
|
||||
|
||||
media:
|
||||
enabled: false
|
||||
emptyDir:
|
||||
enabled: false
|
||||
mountPath: /media
|
||||
## Persistent Volume Storage Class
|
||||
## If defined, storageClassName: <storageClass>
|
||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
## If undefined (the default) or set to null, no storageClassName spec is
|
||||
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
||||
## GKE, AWS & OpenStack)
|
||||
# storageClass: "-"
|
||||
# accessMode: ReadWriteOnce
|
||||
# size: 1Gi
|
||||
## Do not delete the pvc upon helm uninstall
|
||||
# skipuninstall: false
|
||||
# existingClaim: ""
|
||||
24
charts/stable/zalando-postgres-cluster/.helmignore
Normal file
24
charts/stable/zalando-postgres-cluster/.helmignore
Normal file
@@ -0,0 +1,24 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
# OWNERS file for Kubernetes
|
||||
OWNERS
|
||||
12
charts/stable/zalando-postgres-cluster/CHANGELOG.md
Normal file
12
charts/stable/zalando-postgres-cluster/CHANGELOG.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
|
||||
## [1.0.0]
|
||||
|
||||
### Changed
|
||||
|
||||
- Initial version
|
||||
20
charts/stable/zalando-postgres-cluster/Chart.yaml
Normal file
20
charts/stable/zalando-postgres-cluster/Chart.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: v2
|
||||
version: 1.0.0
|
||||
description: Creates a postgres cluster using the Zalando Postgres operator and local storage
|
||||
name: zalando-postgres-cluster
|
||||
appVersion: 1.0.0
|
||||
keywords:
|
||||
- postgres
|
||||
- operator
|
||||
- zalando
|
||||
home: https://github.com/k8s-at-home/charts/tree/master/charts/stable/zalando-postgres-cluster
|
||||
icon: https://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Postgresql_elephant.svg/1200px-Postgresql_elephant.svg.png
|
||||
sources:
|
||||
- https://github.com/zalando/postgres-operator
|
||||
maintainers:
|
||||
- name: angelnu
|
||||
email: git@angelnu.com
|
||||
dependencies:
|
||||
- name: common
|
||||
repository: https://library-charts.k8s-at-home.com
|
||||
version: 2.1.0
|
||||
142
charts/stable/zalando-postgres-cluster/README.md
Normal file
142
charts/stable/zalando-postgres-cluster/README.md
Normal file
@@ -0,0 +1,142 @@
|
||||
# zalando-postgres-cluster
|
||||
|
||||
 
|
||||
|
||||
Creates a postgres cluster using the Zalando Postgres operator and local storage
|
||||
|
||||
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
|
||||
|
||||
## Source Code
|
||||
|
||||
* <https://github.com/zalando/postgres-operator>
|
||||
|
||||
## Requirements
|
||||
|
||||
## Dependencies
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| https://library-charts.k8s-at-home.com | common | 2.1.0 |
|
||||
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
helm repo add k8s-at-home https://k8s-at-home.com/charts/
|
||||
helm repo update
|
||||
helm install zalando-postgres-cluster k8s-at-home/zalando-postgres-cluster
|
||||
```
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `zalando-postgres-cluster`
|
||||
|
||||
```console
|
||||
helm install zalando-postgres-cluster k8s-at-home/zalando-postgres-cluster
|
||||
```
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall the `zalando-postgres-cluster` deployment
|
||||
|
||||
```console
|
||||
helm uninstall zalando-postgres-cluster
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
|
||||
|
||||
## Configuration
|
||||
|
||||
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
|
||||
Other values may be used from the [values.yaml](https://github.com/k8s-at-home/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).
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||
|
||||
```console
|
||||
helm install zalando-postgres-cluster \
|
||||
--set env.TZ="America/New York" \
|
||||
k8s-at-home/zalando-postgres-cluster
|
||||
```
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
|
||||
|
||||
```console
|
||||
helm install zalando-postgres-cluster k8s-at-home/zalando-postgres-cluster -f values.yaml
|
||||
```
|
||||
|
||||
## Custom configuration
|
||||
|
||||
This chart is a wrapper for the [Zalando postgres operator](https://github.com/zalando/postgres-operator) to create
|
||||
a high available Postgres cluster using nodes local storage.
|
||||
|
||||
Features added by this wrapper:
|
||||
- creates an storage class using local storage in the nodes specified in `persistentVolumes.replicaNodes`. These replicas survive
|
||||
a tear-down and tear-up of the cluster.
|
||||
- (optional) does sql dumps to an existing PVC with K8S cronjobs. The Operator only supports backups to cloud, not NFS PVC for example.
|
||||
- Define the password for the DB so that it can be used accross tear-down and tear-up of the cluster.
|
||||
|
||||
## Values
|
||||
|
||||
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| controllerType | string | `""` | |
|
||||
| dumpBackup.existingClaim | string | `nil` | |
|
||||
| dumpBackup.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| dumpBackup.image.repository | string | `"postgres"` | |
|
||||
| dumpBackup.image.tag | string | `"latest"` | |
|
||||
| dumpBackup.resources.requests.cpu | string | `"5m"` | |
|
||||
| dumpBackup.resources.requests.memory | string | `"10Mi"` | |
|
||||
| dumpBackup.schedule | string | `"@daily"` | Backup schedule for postgres dumps |
|
||||
| dumpBackup.subpath | string | `nil` | Persistent volume claim subpath for the backups @default: <subpathPrefix/<release-name> |
|
||||
| dumpBackup.subpathPrefix | string | `"backup/db"` | Persistent volume claim subpath prefix for the backups |
|
||||
| persistentVolumes.accessModes[0] | string | `"ReadWriteOnce"` | |
|
||||
| persistentVolumes.annotations | object | `{}` | |
|
||||
| persistentVolumes.hostPath | string | `nil` | Local path for the persistent volumes @default: <hostPathPrefix/<release-name> |
|
||||
| persistentVolumes.hostPathPrefix | string | `"/run/db"` | Local prefix for persistent volumes NOTE: The default is in tempfs - you should change to a persistent place for production!!! |
|
||||
| persistentVolumes.labels | object | `{}` | |
|
||||
| persistentVolumes.reclaimPolicy | string | `"Retain"` | persistentVolumeReclaimPolicy for the persistent volumes Recicle will delete content once DB is deleted while Retain (default) will keep it. |
|
||||
| persistentVolumes.replicaNodes | list | `["node1.example.com","node2.example.com"]` | Replica nodes Must set with at least 2 nodes for the cluster to be highly available |
|
||||
| postgresql.databases | object | `{"postgres":"postgres"}` | databases to create and their user |
|
||||
| postgresql.numberOfInstances | string | `nil` | Number of replicas It will be automatically set with the number of replicaNodes so any values set here are ignored. |
|
||||
| postgresql.postgresql.version | string | `"13"` | Postgres version to deploy - see which versions are supported by the operator |
|
||||
| postgresql.teamId | string | `nil` | team Id for the DB cluster |
|
||||
| postgresql.users | object | `{"postgres":["superuser","createdb"]}` | DB users to create (see operator) |
|
||||
| postgresql.volume.size | string | `"1Gi"` | Size of the persistance volume to allocate |
|
||||
| postgresql.volume.storageClass | string | `nil` | Name of the storage class |
|
||||
| service.enabled | bool | `false` | |
|
||||
| superuser.password | string | `nil` | Superuser password |
|
||||
| superuser.secret | string | `nil` | Superuser k8s secret name. It must match the patter used by the operator |
|
||||
| superuser.user | string | `nil` | Superuser user used for cronjobs |
|
||||
|
||||
## Changelog
|
||||
|
||||
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/commonREADME.md#Changelog).
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### [1.0.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- N/A
|
||||
|
||||
#### Changed
|
||||
|
||||
- N/A
|
||||
|
||||
#### Removed
|
||||
|
||||
- N/A
|
||||
|
||||
[1.0.0]: #1.0.0
|
||||
|
||||
## Support
|
||||
|
||||
- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
|
||||
- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
|
||||
- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
|
||||
- Join our [Discord](https://discord.gg/sTMX7Vh) community
|
||||
|
||||
----------------------------------------------
|
||||
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
|
||||
145
charts/stable/zalando-postgres-cluster/README.md.gotmpl
Normal file
145
charts/stable/zalando-postgres-cluster/README.md.gotmpl
Normal file
@@ -0,0 +1,145 @@
|
||||
{{- define "custom.repository.organization" -}}
|
||||
k8s-at-home
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.repository.url" -}}
|
||||
https://github.com/k8s-at-home/charts
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.helm.url" -}}
|
||||
https://k8s-at-home.com/charts/
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.helm.path" -}}
|
||||
{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.notes" -}}
|
||||
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.requirements" -}}
|
||||
## Requirements
|
||||
|
||||
{{ template "chart.kubeVersionLine" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.dependencies" -}}
|
||||
## Dependencies
|
||||
|
||||
{{ template "chart.requirementsTable" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.install.tldr" -}}
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
|
||||
helm repo update
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.install" -}}
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `{{ template "chart.name" . }}`
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.uninstall" -}}
|
||||
## Uninstalling the Chart
|
||||
|
||||
To uninstall the `{{ template "chart.name" . }}` deployment
|
||||
|
||||
```console
|
||||
helm uninstall {{ template "chart.name" . }}
|
||||
```
|
||||
|
||||
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.header" -}}
|
||||
## Configuration
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.readValues" -}}
|
||||
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
|
||||
Other values may be used from the [values.yaml](https://github.com/k8s-at-home/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).
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.example.set" -}}
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} \
|
||||
--set env.TZ="America/New York" \
|
||||
{{ template "custom.helm.path" . }}
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.configuration.example.file" -}}
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
|
||||
|
||||
```console
|
||||
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
|
||||
```
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.valuesSection" -}}
|
||||
## Values
|
||||
|
||||
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common)
|
||||
|
||||
{{ template "chart.valuesTable" . }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.support" -}}
|
||||
## Support
|
||||
|
||||
- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
|
||||
- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
|
||||
- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
|
||||
- Join our [Discord](https://discord.gg/sTMX7Vh) community
|
||||
{{- end -}}
|
||||
|
||||
{{ template "chart.header" . }}
|
||||
|
||||
{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
|
||||
|
||||
{{ template "chart.description" . }}
|
||||
|
||||
{{ template "custom.notes" . }}
|
||||
|
||||
{{ template "chart.sourcesSection" . }}
|
||||
|
||||
{{ template "custom.requirements" . }}
|
||||
|
||||
{{ template "custom.dependencies" . }}
|
||||
|
||||
{{ template "custom.install.tldr" . }}
|
||||
|
||||
{{ template "custom.install" . }}
|
||||
|
||||
{{ template "custom.uninstall" . }}
|
||||
|
||||
{{ template "custom.configuration.header" . }}
|
||||
|
||||
{{ template "custom.configuration.readValues" . }}
|
||||
|
||||
{{ template "custom.configuration.example.set" . }}
|
||||
|
||||
{{ template "custom.configuration.example.file" . }}
|
||||
|
||||
{{ template "custom.custom.configuration" . }}
|
||||
|
||||
{{ template "custom.valuesSection" . }}
|
||||
|
||||
{{ template "custom.changelog" . }}
|
||||
|
||||
{{ template "custom.support" . }}
|
||||
|
||||
{{ template "helm-docs.versionFooter" . }}
|
||||
@@ -0,0 +1,27 @@
|
||||
{{- define "custom.changelog.header" -}}
|
||||
## Changelog
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.changelog" -}}
|
||||
{{ template "custom.changelog.header" . }}
|
||||
|
||||
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/commonREADME.md#Changelog).
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
### [1.0.0]
|
||||
|
||||
#### Added
|
||||
|
||||
- N/A
|
||||
|
||||
#### Changed
|
||||
|
||||
- N/A
|
||||
|
||||
#### Removed
|
||||
|
||||
- N/A
|
||||
|
||||
[1.0.0]: #1.0.0
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,17 @@
|
||||
{{- define "custom.custom.configuration.header" -}}
|
||||
## Custom configuration
|
||||
{{- end -}}
|
||||
|
||||
{{- define "custom.custom.configuration" -}}
|
||||
{{ template "custom.custom.configuration.header" . }}
|
||||
|
||||
This chart is a wrapper for the [Zalando postgres operator](https://github.com/zalando/postgres-operator) to create
|
||||
a high available Postgres cluster using nodes local storage.
|
||||
|
||||
Features added by this wrapper:
|
||||
- creates an storage class using local storage in the nodes specified in `persistentVolumes.replicaNodes`. These replicas survive
|
||||
a tear-down and tear-up of the cluster.
|
||||
- (optional) does sql dumps to an existing PVC with K8S cronjobs. The Operator only supports backups to cloud, not NFS PVC for example.
|
||||
- Define the password for the DB so that it can be used accross tear-down and tear-up of the cluster.
|
||||
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,56 @@
|
||||
{{- if .Values.dumpBackup.existingClaim -}}
|
||||
# ------------------- CronJob ------------------- #
|
||||
apiVersion: batch/v1beta1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}-backup
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
spec:
|
||||
schedule: {{ .Values.dumpBackup.schedule | quote }}
|
||||
concurrencyPolicy: Replace
|
||||
jobTemplate:
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
name: {{ include "common.names.fullname" . }}-backup
|
||||
labels:
|
||||
{{- include "common.labels.selectorLabels" . | nindent 12 }}
|
||||
spec:
|
||||
containers:
|
||||
- name: backup
|
||||
image: "{{ .Values.dumpBackup.image.repository}}:{{ .Values.dumpBackup.image.tag}}"
|
||||
imagePullPolicy: {{ .Values.dumpBackup.image.imagePullPolicy}}
|
||||
command:
|
||||
- /bin/sh
|
||||
- -ce
|
||||
- |
|
||||
echo "$(date) - Start dump"
|
||||
pg_dumpall > /backup/new && mv /backup/new /backup/backup
|
||||
echo "$(date) - End dump"
|
||||
ls -lh /backup
|
||||
resources:
|
||||
{{- .Values.dumpBackup.resources | toYaml | nindent 16 }}
|
||||
env:
|
||||
- name: PGHOST
|
||||
value: {{ include "zalando-postgres-cluster.db" . }}
|
||||
- name: PGUSER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "zalando-postgres-cluster.superuser_secret" . }}
|
||||
key: username
|
||||
- name: PGPASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "zalando-postgres-cluster.superuser_secret" . }}
|
||||
key: password
|
||||
volumeMounts:
|
||||
- mountPath: /backup
|
||||
name: backup-volume
|
||||
subPath: {{ include "zalando-postgres-cluster.backupPVCSubpath" . }}
|
||||
restartPolicy: OnFailure
|
||||
volumes:
|
||||
- name: backup-volume
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ .Values.dumpBackup.existingClaim }}
|
||||
{{- end -}}
|
||||
37
charts/stable/zalando-postgres-cluster/templates/common.yaml
Normal file
37
charts/stable/zalando-postgres-cluster/templates/common.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
{{/* Make sure all variables are set properly */}}
|
||||
{{- include "common.values.setup" . }}
|
||||
|
||||
{{- define "zalando-postgres-cluster.db" -}}
|
||||
{{- include "common.names.fullname" .|lower -}}-postgres
|
||||
{{- end -}}
|
||||
|
||||
{{- define "zalando-postgres-cluster.superuser" -}}
|
||||
{{- default (keys .Values.postgresql.users | first ) .Values.superuser.user -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "zalando-postgres-cluster.superuser_secret" -}}
|
||||
{{ default (printf "%s.%s.credentials.postgresql.acid.zalan.do" (include "zalando-postgres-cluster.superuser" .) (include "zalando-postgres-cluster.db" .)) .Values.superuser.secret }}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "zalando-postgres-cluster.superuser_password" -}}
|
||||
{{- default (randAlphaNum 50) .Values.superuser.password -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "zalando-postgres-cluster.storageClass" -}}
|
||||
{{- default (include "common.names.fullname" .|lower ) .Values.postgresql.volume.storageClass -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "zalando-postgres-cluster.pvName" -}}
|
||||
{{- include "common.names.fullname" .|lower -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "zalando-postgres-cluster.localPath" -}}
|
||||
{{- default (printf "%s/%s" .Values.persistentVolumes.hostPathPrefix (include "common.names.fullname" .)) .Values.persistentVolumes.hostPath -}}
|
||||
{{- end -}}
|
||||
|
||||
{{- define "zalando-postgres-cluster.backupPVCSubpath" -}}
|
||||
{{- default (printf "%s/%s" .Values.dumpBackup.subpathPrefix (include "common.names.fullname" .)) .Values.dumpBackup.subpath -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/* Render the templates */}}
|
||||
{{ include "common.all" . }}
|
||||
18
charts/stable/zalando-postgres-cluster/templates/db.yaml
Normal file
18
charts/stable/zalando-postgres-cluster/templates/db.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
{{- if not .Values.postgresql.volume.storageClass -}}
|
||||
{{- $_ := set .Values.postgresql.volume "storageClass" (include "zalando-postgres-cluster.storageClass" .) }}
|
||||
{{- end}}
|
||||
|
||||
{{- if not .Values.postgresql.teamId -}}
|
||||
{{- $_ := set .Values.postgresql "teamId" (include "common.names.fullname" .) }}
|
||||
{{- end}}
|
||||
|
||||
{{- $_ := set .Values.postgresql "numberOfInstances" (len $.Values.persistentVolumes.replicaNodes) }}
|
||||
|
||||
apiVersion: "acid.zalan.do/v1"
|
||||
kind: postgresql
|
||||
metadata:
|
||||
name: {{ include "zalando-postgres-cluster.db" . }}
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
spec:
|
||||
{{- .Values.postgresql | toYaml | nindent 2 }}
|
||||
@@ -0,0 +1,40 @@
|
||||
{{- range $i:= untilStep 0 (len $.Values.persistentVolumes.replicaNodes) 1 -}}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: {{ include "zalando-postgres-cluster.pvName" $ }}-{{ $i }}
|
||||
labels:
|
||||
{{- include "common.labels" $ | nindent 4 }}
|
||||
{{- if gt (len $.Values.persistentVolumes.labels) 0 }}
|
||||
{{- $.Values.persistentVolumes.labels | toYaml | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- if gt (len $.Values.persistentVolumes.annotations) 0 }}
|
||||
annotations:
|
||||
{{- $.Values.persistentVolumes.annotations | toYaml | nindent 4 }}
|
||||
{{- end }}
|
||||
finalizers:
|
||||
- kubernetes.io/pv-protection
|
||||
spec:
|
||||
storageClassName: {{ include "zalando-postgres-cluster.storageClass" $ }}
|
||||
volumeMode: Filesystem
|
||||
capacity:
|
||||
storage: "{{ $.Values.postgresql.volume.size }}"
|
||||
accessModes:
|
||||
{{- $.Values.persistentVolumes.accessModes | toYaml | nindent 4 }}
|
||||
hostPath:
|
||||
path: {{ include "zalando-postgres-cluster.localPath" $ }}
|
||||
#Since it is created directly this does not delete it from cluster
|
||||
persistentVolumeReclaimPolicy: "{{ $.Values.persistentVolumes.reclaimPolicy }}"
|
||||
|
||||
{{- $e := index $.Values.persistentVolumes.replicaNodes $i }}
|
||||
nodeAffinity:
|
||||
required:
|
||||
nodeSelectorTerms:
|
||||
- matchExpressions:
|
||||
- key: kubernetes.io/hostname
|
||||
operator: In
|
||||
values:
|
||||
- {{ $e }}
|
||||
|
||||
{{ end }}
|
||||
16
charts/stable/zalando-postgres-cluster/templates/secret.yaml
Normal file
16
charts/stable/zalando-postgres-cluster/templates/secret.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
application: spilo
|
||||
team: {{ include "common.names.fullname" . }}
|
||||
# xref: https://github.com/helm/helm/issues/3053
|
||||
# xref: https://github.com/helm/helm/pull/5290
|
||||
"helm.sh/hook": "pre-install"
|
||||
"helm.sh/hook-delete-policy": "before-hook-creation"
|
||||
name: {{ include "zalando-postgres-cluster.superuser_secret" . }}
|
||||
stringData:
|
||||
username: {{ include "zalando-postgres-cluster.superuser" . }}
|
||||
password: {{ include "zalando-postgres-cluster.superuser_password" . }}
|
||||
type: Opaque
|
||||
@@ -0,0 +1,10 @@
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
name: {{ include "zalando-postgres-cluster.storageClass" . }}
|
||||
labels:
|
||||
{{- include "common.labels" . | nindent 4 }}
|
||||
annotations:
|
||||
provisioner: kubernetes.io/no-provisioner
|
||||
reclaimPolicy: Delete
|
||||
volumeBindingMode: WaitForFirstConsumer
|
||||
@@ -0,0 +1,42 @@
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: "{{ include "common.names.fullname" .|lower }}-test-db"
|
||||
labels:
|
||||
{{ include "common.labels" . | nindent 4 }}
|
||||
annotations:
|
||||
"helm.sh/hook": test-success
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
name: "{{ include "common.names.fullname" .|lower }}-test-db"
|
||||
labels:
|
||||
{{ include "common.labels" . | nindent 8 }}
|
||||
spec:
|
||||
containers:
|
||||
- name: psql
|
||||
image: "{{ .Values.dumpBackup.image.repository}}:{{ .Values.dumpBackup.image.tag}}"
|
||||
imagePullPolicy: {{ .Values.dumpBackup.image.imagePullPolicy}}
|
||||
command: ['sh']
|
||||
args:
|
||||
- "-ecx"
|
||||
- |
|
||||
echo ";"|psql
|
||||
|
||||
env:
|
||||
- name: PGHOST
|
||||
value: {{ include "zalando-postgres-cluster.db" . | quote }}
|
||||
- name: PGSSLMODE
|
||||
value: require
|
||||
- name: PGUSER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "zalando-postgres-cluster.superuser_secret" . }}
|
||||
key: username
|
||||
- name: PGPASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ include "zalando-postgres-cluster.superuser_secret" . }}
|
||||
key: password
|
||||
restartPolicy: Never
|
||||
|
||||
83
charts/stable/zalando-postgres-cluster/values.yaml
Normal file
83
charts/stable/zalando-postgres-cluster/values.yaml
Normal file
@@ -0,0 +1,83 @@
|
||||
# See all operator values at https://github.com/zalando/postgres-operator/blob/master/docs/reference/cluster_manifest.md
|
||||
postgresql:
|
||||
# -- team Id for the DB cluster
|
||||
teamId:
|
||||
volume:
|
||||
# -- Size of the persistance volume to allocate
|
||||
size: "1Gi"
|
||||
# -- (string) Name of the storage class
|
||||
# @default -- chart fullname
|
||||
storageClass:
|
||||
# -- Number of replicas
|
||||
# It will be automatically set with the number of replicaNodes so any values set here are ignored.
|
||||
numberOfInstances:
|
||||
# -- DB users to create (see operator)
|
||||
users:
|
||||
postgres:
|
||||
- superuser
|
||||
- createdb
|
||||
|
||||
# -- databases to create and their user
|
||||
databases:
|
||||
postgres: postgres
|
||||
postgresql:
|
||||
# -- Postgres version to deploy - see which versions are supported by the operator
|
||||
version: "13"
|
||||
|
||||
superuser:
|
||||
# -- Superuser user used for cronjobs
|
||||
# @default -- first user in postgresql.users
|
||||
user:
|
||||
# -- Superuser password
|
||||
# @default -- randomly generated on first install of the chart
|
||||
password:
|
||||
# -- Superuser k8s secret name. It must match the patter used by the operator
|
||||
# @default -- <user>.<db name>.credentials.postgresql.acid.zalan.do
|
||||
secret:
|
||||
|
||||
persistentVolumes:
|
||||
# -- Local prefix for persistent volumes
|
||||
# NOTE: The default is in tempfs - you should change to a persistent place for production!!!
|
||||
hostPathPrefix: "/run/db"
|
||||
# -- Local path for the persistent volumes
|
||||
# @default: <hostPathPrefix/<release-name>
|
||||
hostPath:
|
||||
# -- persistentVolumeReclaimPolicy for the persistent volumes
|
||||
# Recicle will delete content once DB is deleted while Retain (default) will keep it.
|
||||
reclaimPolicy: Retain
|
||||
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
# -- Replica nodes
|
||||
# Must set with at least 2 nodes for the cluster to be highly available
|
||||
replicaNodes:
|
||||
- node1.example.com
|
||||
- node2.example.com
|
||||
labels: {}
|
||||
# foo: a
|
||||
annotations: {}
|
||||
|
||||
|
||||
dumpBackup:
|
||||
# Enable backups to a PVC
|
||||
existingClaim:
|
||||
# -- Backup schedule for postgres dumps
|
||||
schedule: "@daily"
|
||||
# -- Persistent volume claim subpath prefix for the backups
|
||||
subpathPrefix: "backup/db"
|
||||
# -- Persistent volume claim subpath for the backups
|
||||
# @default: <subpathPrefix/<release-name>
|
||||
subpath:
|
||||
image:
|
||||
repository: postgres
|
||||
pullPolicy: IfNotPresent
|
||||
tag: latest
|
||||
resources:
|
||||
requests:
|
||||
memory: "10Mi"
|
||||
cpu: "5m"
|
||||
|
||||
# Dissable Deployment and Service
|
||||
controllerType: ""
|
||||
service:
|
||||
enabled: false
|
||||
Reference in New Issue
Block a user