From 1b1ec5d946f8ad5146581648bb3e09ee23298fd6 Mon Sep 17 00:00:00 2001 From: sonicaj Date: Fri, 24 Mar 2023 21:25:31 +0000 Subject: [PATCH] Update catalog information --- catalog.json | 12 +- charts/pihole/1.0.13/.helmignore | 2 + charts/pihole/1.0.13/Chart.lock | 6 + charts/pihole/1.0.13/Chart.yaml | 24 ++ charts/pihole/1.0.13/README.md | 3 + charts/pihole/1.0.13/app-readme.md | 3 + .../pihole/1.0.13/charts/common-2207.0.0.tgz | Bin 0 -> 4975 bytes charts/pihole/1.0.13/ci/hostnet-values.yaml | 22 ++ charts/pihole/1.0.13/ci/test-values.yaml | 22 ++ charts/pihole/1.0.13/ix_values.yaml | 4 + charts/pihole/1.0.13/questions.yaml | 313 ++++++++++++++++++ .../pihole/1.0.13/templates/deployment.yaml | 108 ++++++ .../1.0.13/templates/pre-install-job.yaml | 32 ++ charts/pihole/1.0.13/templates/secret.yaml | 8 + charts/pihole/1.0.13/templates/service.yaml | 19 ++ charts/pihole/item.yaml | 4 + 16 files changed, 576 insertions(+), 6 deletions(-) create mode 100644 charts/pihole/1.0.13/.helmignore create mode 100644 charts/pihole/1.0.13/Chart.lock create mode 100644 charts/pihole/1.0.13/Chart.yaml create mode 100644 charts/pihole/1.0.13/README.md create mode 100644 charts/pihole/1.0.13/app-readme.md create mode 100644 charts/pihole/1.0.13/charts/common-2207.0.0.tgz create mode 100644 charts/pihole/1.0.13/ci/hostnet-values.yaml create mode 100644 charts/pihole/1.0.13/ci/test-values.yaml create mode 100644 charts/pihole/1.0.13/ix_values.yaml create mode 100644 charts/pihole/1.0.13/questions.yaml create mode 100644 charts/pihole/1.0.13/templates/deployment.yaml create mode 100644 charts/pihole/1.0.13/templates/pre-install-job.yaml create mode 100644 charts/pihole/1.0.13/templates/secret.yaml create mode 100644 charts/pihole/1.0.13/templates/service.yaml create mode 100644 charts/pihole/item.yaml diff --git a/catalog.json b/catalog.json index ac98da14fa..c724d15a31 100644 --- a/catalog.json +++ b/catalog.json @@ -30,13 +30,13 @@ "healthy": true, "healthy_error": null, "location": "/__w/charts/charts/charts/pihole", - "latest_version": "1.0.12", - "latest_app_version": "2022.12.1", - "latest_human_version": "2022.12.1_1.0.12", - "last_update": "2023-01-05 00:00:17", + "latest_version": "1.0.13", + "latest_app_version": "2023.02.2", + "latest_human_version": "2023.02.2_1.0.13", + "last_update": "2023-03-24 21:24:51", "name": "pihole", "recommended": false, - "title": "Pihole", + "title": "Pi-hole", "icon_url": "https://github.com/pi-hole/graphics/raw/master/Vortex/Vortex_Vertical_wordmark_lightmode.png?raw=true)" }, "diskoverdata": { @@ -89,7 +89,7 @@ "latest_version": "1.0.13", "latest_app_version": "221118", "latest_human_version": "221118_1.0.13", - "last_update": "2023-03-24 21:23:55", + "last_update": "2023-03-24 21:24:29", "name": "photoprism", "recommended": false, "title": "PhotoPrism", diff --git a/charts/pihole/1.0.13/.helmignore b/charts/pihole/1.0.13/.helmignore new file mode 100644 index 0000000000..c1347c2c27 --- /dev/null +++ b/charts/pihole/1.0.13/.helmignore @@ -0,0 +1,2 @@ +# Patterns to ignore when building packages. +*.png diff --git a/charts/pihole/1.0.13/Chart.lock b/charts/pihole/1.0.13/Chart.lock new file mode 100644 index 0000000000..fc9d0c4c85 --- /dev/null +++ b/charts/pihole/1.0.13/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common/2207.0.0 + version: 2207.0.0 +digest: sha256:a301ba0f99ec1e08a60a7f0a0320aa02d225993572f2f056f09520f06df88b37 +generated: "2023-03-22T14:34:22.657500007Z" diff --git a/charts/pihole/1.0.13/Chart.yaml b/charts/pihole/1.0.13/Chart.yaml new file mode 100644 index 0000000000..bbb20a318b --- /dev/null +++ b/charts/pihole/1.0.13/Chart.yaml @@ -0,0 +1,24 @@ +name: pihole +description: DNS and Ad-filtering for your network. +annotations: + title: Pi-hole +type: application +version: 1.0.13 +apiVersion: v2 +appVersion: '2023.02.2' +kubeVersion: '>=1.16.0-0' +maintainers: + - name: truenas + url: https://www.truenas.com/ +dependencies: + - name: common + repository: file://../../../common/2207.0.0 + version: 2207.0.0 +home: https://pi-hole.net/ +icon: https://github.com/pi-hole/graphics/raw/master/Vortex/Vortex_Vertical_wordmark_lightmode.png?raw=true +sources: + - https://pi-hole.net/ + - https://github.com/truenas/charts/tree/master/library/ix-dev/charts/pihole +keywords: + - networking + - dns diff --git a/charts/pihole/1.0.13/README.md b/charts/pihole/1.0.13/README.md new file mode 100644 index 0000000000..98d1bcdb3b --- /dev/null +++ b/charts/pihole/1.0.13/README.md @@ -0,0 +1,3 @@ +# Pihole + +DNS and Ad-filtering for your network. diff --git a/charts/pihole/1.0.13/app-readme.md b/charts/pihole/1.0.13/app-readme.md new file mode 100644 index 0000000000..98d1bcdb3b --- /dev/null +++ b/charts/pihole/1.0.13/app-readme.md @@ -0,0 +1,3 @@ +# Pihole + +DNS and Ad-filtering for your network. diff --git a/charts/pihole/1.0.13/charts/common-2207.0.0.tgz b/charts/pihole/1.0.13/charts/common-2207.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f106775893801fc023dc40482ae02db307f60e55 GIT binary patch literal 4975 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 literal 0 HcmV?d00001 diff --git a/charts/pihole/1.0.13/ci/hostnet-values.yaml b/charts/pihole/1.0.13/ci/hostnet-values.yaml new file mode 100644 index 0000000000..110f705716 --- /dev/null +++ b/charts/pihole/1.0.13/ci/hostnet-values.yaml @@ -0,0 +1,22 @@ +appVolumeMounts: + config: + emptyDir: true + mountPath: /etc/pihole + dnsmasq: + emptyDir: true + mountPath: /etc/dnsmasq.d +dhcp: true +dhcp_start: 192.168.10.2 +dhcp_end: 192.168.10.254 +dhcp_gateway: 192.168.10.1 +dnsConfig: + options: [] +emptyDirVolumes: true +environmentVariables: [] +extraAppVolumeMounts: [] +hostNetwork: true +ownerGID: 568 +ownerUID: 568 +password: admin123 +timezone: America/Los_Angeles +web_port: 32000 diff --git a/charts/pihole/1.0.13/ci/test-values.yaml b/charts/pihole/1.0.13/ci/test-values.yaml new file mode 100644 index 0000000000..7c8b3220b6 --- /dev/null +++ b/charts/pihole/1.0.13/ci/test-values.yaml @@ -0,0 +1,22 @@ +appVolumeMounts: + config: + emptyDir: true + mountPath: /etc/pihole + dnsmasq: + emptyDir: true + mountPath: /etc/dnsmasq.d +dhcp: false +dhcp_port: 32003 +dnsConfig: + options: [] +dns_tcp_port: 32001 +dns_udp_port: 32002 +emptyDirVolumes: true +environmentVariables: [] +extraAppVolumeMounts: [] +hostNetwork: false +ownerGID: 568 +ownerUID: 568 +password: admin123 +timezone: America/Los_Angeles +web_port: 32000 diff --git a/charts/pihole/1.0.13/ix_values.yaml b/charts/pihole/1.0.13/ix_values.yaml new file mode 100644 index 0000000000..f5a7eaab14 --- /dev/null +++ b/charts/pihole/1.0.13/ix_values.yaml @@ -0,0 +1,4 @@ +image: + pullPolicy: IfNotPresent + repository: pihole/pihole + tag: 2023.02.2 diff --git a/charts/pihole/1.0.13/questions.yaml b/charts/pihole/1.0.13/questions.yaml new file mode 100644 index 0000000000..1a13f03b2d --- /dev/null +++ b/charts/pihole/1.0.13/questions.yaml @@ -0,0 +1,313 @@ +groups: + - name: "Configuration" + description: "Pihole application configuration" + - name: "Storage" + description: "Configure storage for pihole" + - name: "Networking" + description: "Networking Configuration for pihole" + - name: "Advanced DNS Settings" + description: "Configure DNS settings" + - name: "Resource Limits" + description: "Set CPU/memory limits for Kubernetes Pod" + + +portals: + web_portal: + protocols: + - "http" + host: + - "$node_ip" + ports: + - "$variable-web_port" + path: "/admin/" + +questions: + - variable: web_port + label: "Web Port for pihole" + group: Networking + schema: + type: int + min: 8000 + max: 65535 + default: 20720 + required: true + - variable: dns_tcp_port + label: "DNS TCP Port for pihole" + group: Networking + schema: + type: int + min: 8000 + max: 65535 + default: 20721 + show_if: [["hostNetwork", "=", false]] + required: true + - variable: dns_udp_port + label: "DNS UDP Port for pihole" + group: Networking + schema: + type: int + min: 8000 + max: 65535 + default: 20721 + show_if: [["hostNetwork", "=", false]] + required: true + - variable: dhcp + label: "Enable DHCP" + group: "Networking" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: dhcp_port + label: "DHCP Port for pihole" + group: Networking + schema: + type: int + min: 8000 + max: 65535 + default: 20722 + show_if: [["hostNetwork", "=", false]] + required: true + - variable: dhcp_start + label: "DHCP Start Address" + group: Networking + schema: + type: ipaddr + cidr: false + required: true + - variable: dhcp_end + label: "DHCP End Address" + group: Networking + schema: + type: ipaddr + cidr: false + required: true + - variable: dhcp_gateway + label: "Gateway" + group: Networking + schema: + type: ipaddr + cidr: false + required: true + + - variable: dnsConfig + label: "DNS Configuration" + group: "Advanced DNS Settings" + schema: + type: dict + attrs: + - variable: options + label: "DNS Options" + schema: + type: list + items: + - variable: optionsEntry + label: "Option Entry Configuration" + schema: + type: dict + attrs: + - variable: name + label: "Option Name" + schema: + type: string + required: true + - variable: value + label: "Option Value" + schema: + type: string + required: true + + - variable: ownerUID + label: "Storage User ID" + description: "User ID of the dnsmasq volume being used (application will chown the volume path with specified UID)" + group: Configuration + schema: + type: int + default: 568 + min: 1 + max: 65535 + + - variable: ownerGID + label: "Storage Group ID" + description: "Group ID of the dnsmasq volume being used (application will chown the volume path with specified GID)" + group: Configuration + schema: + type: int + default: 568 + min: 1 + max: 65535 + + - variable: password + label: "Admin password" + group: "Configuration" + schema: + type: string + private: true + required: true + empty: false + immutable: true + + - variable: timezone + label: "Configure timezone" + group: "Configuration" + description: "Configure timezone for pihole" + schema: + type: string + $ref: + - "definitions/timezone" + + - variable: hostNetwork + label: "Enable Host Network" + group: "Networking" + schema: + type: boolean + default: false + + - variable: environmentVariables + label: "Pihole environment" + group: "Configuration" + schema: + type: list + default: [] + items: + - variable: environmentVariable + label: "Environment Variable" + schema: + type: dict + attrs: + - variable: name + label: "Name" + schema: + type: string + - variable: value + label: "Value" + schema: + type: string + + - variable: appVolumeMounts + label: "Pihole Storage" + group: "Storage" + schema: + type: dict + attrs: + - variable: config + label: "Configuration Volume" + schema: + type: dict + attrs: + - variable: datasetName + label: "Configuration Volume Dataset Name" + schema: + type: string + hidden: true + $ref: + - "normalize/ixVolume" + show_if: [["hostPathEnabled", "=", false]] + default: "ix-pihole_config" + editable: false + - variable: mountPath + label: "Configuration Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + hidden: true + editable: true + default: "/etc/pihole" + - variable: hostPathEnabled + label: "Enable Custom Host Path for Pihole Configuration Volume" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path for Pihole Configuration Volume" + schema: + type: hostpath + required: true + - variable: dnsmasq + label: "DNSMASQ Volume for pihole" + schema: + type: dict + attrs: + - variable: datasetName + label: "DNSMASQ Volume Dataset Name" + schema: + type: string + hidden: true + $ref: + - "normalize/ixVolume" + show_if: [["hostPathEnabled", "=", false]] + default: "ix-pihole_dnsmasq" + editable: false + - variable: mountPath + label: "DNSMASQ Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + hidden: true + editable: true + default: "/etc/dnsmasq.d" + - variable: hostPathEnabled + label: "Enable Custom Host Path for Pihole DNSMASQ Volume" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path for Pihole DNSMASQ Volume" + schema: + type: hostpath + required: true + + - variable: extraAppVolumeMounts + label: "Extra Host Path Volumes" + group: "Storage" + schema: + type: list + items: + - variable: extraAppVolume + label: "Host Path Volume" + description: "Add an extra host path volume for Pihole application" + schema: + type: dict + attrs: + - variable: mountPath + label: "Mount Path in Pod" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + required: true + - variable: hostPath + label: "Host Path" + description: "Host path" + schema: + type: hostpath + required: true + + - variable: enableResourceLimits + label: "Enable Pod resource limits" + group: "Resource Limits" + schema: + type: boolean + default: false + - variable: cpuLimit + label: "CPU Limresource limitsit" + description: "CPU resource limit allow plain integer values with suffix m(milli) e.g 1000m, 100." + group: "Resource Limits" + schema: + type: string + show_if: [["enableResourceLimits", "=", true]] + valid_chars: "^\\d+(?:\\.\\d+(?!.*m$)|m?$)" + default: "4000m" + - variable: memLimit + label: "Memory Limit" + group: "Resource Limits" + description: "Memory limits is specified by number of bytes. Followed by quantity suffix like E,P,T,G,M,k and Ei,Pi,Ti,Mi,Gi,Ki can also be used. e.g 129e6, 129M, 128974848000m, 123Mi" + schema: + type: string + show_if: [["enableResourceLimits", "=", true]] + valid_chars: "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$" + default: "8Gi" diff --git a/charts/pihole/1.0.13/templates/deployment.yaml b/charts/pihole/1.0.13/templates/deployment.yaml new file mode 100644 index 0000000000..bb8eece8e0 --- /dev/null +++ b/charts/pihole/1.0.13/templates/deployment.yaml @@ -0,0 +1,108 @@ +{{ include "common.storage.hostPathValidate" .Values }} +apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }} +kind: Deployment +metadata: + name: {{ template "common.names.fullname" . }} + labels: + app: {{ template "common.names.name" . }} + chart: {{ template "common.names.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + annotations: + rollme: {{ randAlphaNum 5 | quote }} +spec: + replicas: {{ (default 1 .Values.replicas) }} + strategy: + type: "Recreate" + selector: + matchLabels: + app: {{ template "common.names.name" . }} + release: {{ .Release.Name }} + template: + metadata: + name: {{ template "common.names.fullname" . }} + labels: + app: {{ template "common.names.name" . }} + release: {{ .Release.Name }} + {{- include "common.labels.selectorLabels" . | nindent 8 }} + annotations: {{ include "common.annotations" . | nindent 8 }} + spec: + hostNetwork: {{ .Values.hostNetwork }} + containers: + - name: {{ .Chart.Name }} + {{ include "common.resources.limitation" . | nindent 10 }} + {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} + volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 12 }} + {{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }} + - name: extrappvolume-{{ $index }} + mountPath: {{ $hostPathConfiguration.mountPath }} + {{ end }} + securityContext: + capabilities: + {{ if .Values.hostNetwork }} + {{/* This is needed to be able to bind 53(DNS) and 67(DHCP) ports */}} + add: ["NET_ADMIN"] + {{ else }} + add: [] + {{ end }} + ports: + - name: web + containerPort: {{ .Values.web_port }} + - name: dns-tcp + containerPort: 53 + protocol: TCP + - name: dns-udp + containerPort: 53 + protocol: UDP + {{ if .Values.dhcp }} + - name: dhcp + containerPort: 67 + protocol: UDP + {{ end }} + readinessProbe: + httpGet: + path: /admin/login.php + port: {{ .Values.web_port }} + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 5 + successThreshold: 2 + livenessProbe: + httpGet: + path: /admin/login.php + port: {{ .Values.web_port }} + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 5 + successThreshold: 1 + startupProbe: + httpGet: + path: /admin/login.php + port: {{ .Values.web_port }} + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 2 + failureThreshold: 60 + successThreshold: 1 + env: + {{ $secretName := (include "common.names.fullname" .) }} + {{ $envList := (default list .Values.environmentVariables) }} + {{ $envList = mustAppend $envList (dict "name" "WEBPASSWORD" "valueFromSecret" true "secretName" $secretName "secretKey" "password") }} + {{ $envList = mustAppend $envList (dict "name" "TZ" "value" (printf "%s" .Values.timezone)) }} + {{ $envList = mustAppend $envList (dict "name" "WEB_PORT" "value" .Values.web_port) }} + {{ if .Values.dhcp }} + {{ $envList = mustAppend $envList (dict "name" "DHCP_ACTIVE" "value" "true") }} + {{ $envList = mustAppend $envList (dict "name" "DHCP_START" "value" .Values.dhcp_start) }} + {{ $envList = mustAppend $envList (dict "name" "DHCP_END" "value" .Values.dhcp_end) }} + {{ $envList = mustAppend $envList (dict "name" "DHCP_ROUTER" "value" .Values.dhcp_gateway) }} + {{ end }} + {{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 12 }} +{{ include "common.networking.dnsConfiguration" .Values | nindent 6 }} + volumes: {{ include "common.storage.configureAppVolumes" .Values | nindent 8 }} + {{ range $index, $hostPathConfiguration := .Values.extraAppVolumeMounts }} + - name: extrappvolume-{{ $index }} + hostPath: + path: {{ $hostPathConfiguration.hostPath }} + {{ end }} diff --git a/charts/pihole/1.0.13/templates/pre-install-job.yaml b/charts/pihole/1.0.13/templates/pre-install-job.yaml new file mode 100644 index 0000000000..8ef9ea0f26 --- /dev/null +++ b/charts/pihole/1.0.13/templates/pre-install-job.yaml @@ -0,0 +1,32 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: "{{ template "common.names.fullname" . }}-preinstall-job" + labels: + app.kubernetes.io/managed-by: {{ .Release.Service | quote }} + app.kubernetes.io/instance: {{ .Release.Name | quote }} + app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} + helm.sh/chart: {{ template "common.names.chart" . }} + annotations: + "helm.sh/hook": pre-install + "helm.sh/hook-delete-policy": hook-succeeded +spec: + template: + metadata: + name: "{{ template "common.names.fullname" . }}-preinstall-hook" + labels: + app.kubernetes.io/managed-by: {{ .Release.Service | quote }} + app.kubernetes.io/instance: {{ .Release.Name | quote }} + helm.sh/chart: {{ template "common.names.chart" . }} + spec: + restartPolicy: Never + containers: + - name: pre-install-job + image: "alpine:latest" + command: + - "chown" + - "-R" + - "{{ .Values.ownerUID }}:{{ .Values.ownerGID }}" + - "{{ .Values.appVolumeMounts.dnsmasq.mountPath }}" + volumeMounts: {{ include "common.storage.configureAppVolumeMountsInContainer" .Values | nindent 12 }} + volumes: {{ include "common.storage.configureAppVolumes" .Values | nindent 8 }} diff --git a/charts/pihole/1.0.13/templates/secret.yaml b/charts/pihole/1.0.13/templates/secret.yaml new file mode 100644 index 0000000000..e531b6015e --- /dev/null +++ b/charts/pihole/1.0.13/templates/secret.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ template "common.names.fullname" . }} + labels: {{ include "common.labels" . | nindent 4 }} +type: Opaque +data: + password: {{ .Values.password | b64enc | quote }} diff --git a/charts/pihole/1.0.13/templates/service.yaml b/charts/pihole/1.0.13/templates/service.yaml new file mode 100644 index 0000000000..dfe6923507 --- /dev/null +++ b/charts/pihole/1.0.13/templates/service.yaml @@ -0,0 +1,19 @@ +{{/* Create services only if we are not using hostNetwork */}} +{{ if not .Values.hostNetwork }} + +{{ $selectors := list }} +{{ $selectors = mustAppend $selectors (dict "key" "app" "value" (include "common.names.name" .) ) }} +{{ $selectors = mustAppend $selectors (dict "key" "release" "value" .Release.Name ) }} +{{ $ports := list }} +{{ $ports = mustAppend $ports (dict "name" "web" "port" .Values.web_port "nodePort" .Values.web_port "targetPort" .Values.web_port) }} +{{ $ports = mustAppend $ports (dict "name" "dns-tcp" "port" .Values.dns_tcp_port "nodePort" .Values.dns_tcp_port "targetPort" 53) }} +{{ $ports = mustAppend $ports (dict "name" "dns-udp" "port" .Values.dns_udp_port "nodePort" .Values.dns_udp_port "targetPort" 53 "protocol" "UDP") }} +{{ if .Values.dhcp }} +{{ $ports = mustAppend $ports (dict "name" "dhcp" "port" .Values.dhcp_port "nodePort" .Values.dhcp_port "targetPort" 67 "protocol" "UDP") }} +{{ end }} +{{ $params := . }} +{{ $_ := set $params "commonService" (dict "type" "NodePort" "ports" $ports ) }} +{{ $_1 := set .Values "extraSelectorLabels" $selectors }} +{{ include "common.classes.service" $params }} + +{{ end }} diff --git a/charts/pihole/item.yaml b/charts/pihole/item.yaml new file mode 100644 index 0000000000..9cf8a7620d --- /dev/null +++ b/charts/pihole/item.yaml @@ -0,0 +1,4 @@ +icon_url: https://github.com/pi-hole/graphics/raw/master/Vortex/Vortex_Vertical_wordmark_lightmode.png?raw=true) +categories: +- networking +- dns