From 759305914e9ae6ed7b480345585c9e0fde1dd1dd Mon Sep 17 00:00:00 2001 From: Andreas Beuge Date: Thu, 16 Apr 2026 19:23:12 +0200 Subject: [PATCH 1/2] chore: add dnsPolicy and dnsConfig support to pod template --- parcellab/common/templates/_pod.tpl | 9 +++++++++ parcellab/common/values.yaml | 13 +++++++++++++ parcellab/cronjob/values.yaml | 11 +++++++++++ parcellab/microservice/values.yaml | 14 ++++++++++++++ parcellab/monolith/values.yaml | 15 +++++++++++++++ parcellab/worker-group/values.yaml | 15 +++++++++++++++ 6 files changed, 77 insertions(+) diff --git a/parcellab/common/templates/_pod.tpl b/parcellab/common/templates/_pod.tpl index a567ae6..440d1ae 100644 --- a/parcellab/common/templates/_pod.tpl +++ b/parcellab/common/templates/_pod.tpl @@ -24,6 +24,8 @@ {{- $datadog := .Values.datadog -}} {{- $type := default "service" .type -}} {{- $securityContext := .Values.securityContext -}} +{{- $dnsConfig := default .Values.dnsConfig .pod.dnsConfig -}} +{{- $dnsPolicy := default .Values.dnsPolicy .pod.dnsPolicy -}} metadata: annotations: {{- if and $datadog $datadog.enabled }} @@ -55,6 +57,13 @@ spec: hostAliases: {{- toYaml . | nindent 4 }} {{- end }} + {{- if $dnsPolicy }} + dnsPolicy: {{ $dnsPolicy }} + {{- end }} + {{- if $dnsConfig }} + dnsConfig: + {{- toYaml $dnsConfig | nindent 4 }} + {{- end }} terminationGracePeriodSeconds: {{ default 30 .Values.terminationGracePeriodSeconds }} volumes: {{- if $podVolumes }} diff --git a/parcellab/common/values.yaml b/parcellab/common/values.yaml index 63b2d13..d5e7f67 100644 --- a/parcellab/common/values.yaml +++ b/parcellab/common/values.yaml @@ -66,3 +66,16 @@ vpa: mode: "Auto" initContainers: [] extraContainers: [] +# dnsPolicy defines how DNS resolution is handled for pods. +# Common values: "ClusterFirst" (default), "None" (requires dnsConfig), "Default", "ClusterFirstWithHostNet". +# Set to "None" when you want full control over DNS settings via dnsConfig. +# dnsPolicy: ClusterFirst + +# dnsConfig allows fine-grained control over DNS settings for pods. +# The most common use case is adjusting ndots to reduce unnecessary DNS lookups. +# dnsConfig: +# options: +# - name: ndots +# value: "2" +# nameservers: [] +# searches: [] diff --git a/parcellab/cronjob/values.yaml b/parcellab/cronjob/values.yaml index 9d00492..5938b40 100644 --- a/parcellab/cronjob/values.yaml +++ b/parcellab/cronjob/values.yaml @@ -58,6 +58,17 @@ externalSecret: affinity: {} +# dnsPolicy: "None" + +# dnsConfig: +# nameservers: +# - 1.1.1.1 +# searches: +# - my-namespace.svc.cluster.local +# options: +# - name: ndots +# value: "2" + datadog: enabled: true diff --git a/parcellab/microservice/values.yaml b/parcellab/microservice/values.yaml index a4626a4..ac99467 100644 --- a/parcellab/microservice/values.yaml +++ b/parcellab/microservice/values.yaml @@ -337,6 +337,20 @@ strategy: tolerations: [] +# dnsPolicy defines how DNS resolution is handled for pods. +# When using dnsConfig with custom options (e.g. ndots), you typically want +# to set dnsPolicy to "None" or keep the default "ClusterFirst". +# dnsPolicy: ClusterFirst + +# dnsConfig allows fine-grained control over DNS settings for pods. +# The most common use case is adjusting ndots to reduce unnecessary DNS lookups. +# dnsConfig: +# options: +# - name: ndots +# value: "2" +# nameservers: [] +# searches: [] + volumes: [] ## diff --git a/parcellab/monolith/values.yaml b/parcellab/monolith/values.yaml index 46bf413..9b1247a 100644 --- a/parcellab/monolith/values.yaml +++ b/parcellab/monolith/values.yaml @@ -433,6 +433,21 @@ vpa: affinity: {} +# dnsPolicy defines how DNS resolution is handled for the pod. +# Common values: "ClusterFirst" (default), "None" (requires dnsConfig), "Default", "ClusterFirstWithHostNet". +# Set to "None" when you want full control over DNS settings via dnsConfig. +# dnsPolicy: ClusterFirst + +# dnsConfig allows you to customize the DNS settings for the pod. +# When dnsPolicy is set to "None", all DNS settings must be provided here. +# ndots controls the number of dots in a name before an absolute lookup is made. +# dnsConfig: +# nameservers: [] +# options: +# - name: ndots +# value: "2" +# searches: [] + datadog: enabled: true diff --git a/parcellab/worker-group/values.yaml b/parcellab/worker-group/values.yaml index 1991669..04b1f6b 100644 --- a/parcellab/worker-group/values.yaml +++ b/parcellab/worker-group/values.yaml @@ -176,6 +176,21 @@ strategy: tolerations: [] +# dnsPolicy defines how DNS resolution is handled for the pod. +# Common values: "ClusterFirst" (default), "None" (requires dnsConfig), "Default", "ClusterFirstWithHostNet". +# Set to "None" when you want full control over DNS settings via dnsConfig. +# dnsPolicy: ClusterFirst + +# dnsConfig allows you to customize the DNS settings for the pod. +# When dnsPolicy is set to "None", all DNS settings must be provided here. +# ndots controls the number of dots in a name before an absolute lookup is made. +# dnsConfig: +# nameservers: [] +# options: +# - name: ndots +# value: "2" +# searches: [] + volumes: [] ## From f06d03b4e06e709df5173df8079460d0905d12b9 Mon Sep 17 00:00:00 2001 From: Andreas Beuge Date: Thu, 16 Apr 2026 20:29:44 +0200 Subject: [PATCH 2/2] chore: bump chart versions across all charts --- parcellab/common/Chart.yaml | 2 +- parcellab/cronjob/Chart.yaml | 2 +- parcellab/microservice/Chart.yaml | 2 +- parcellab/monolith/Chart.yaml | 2 +- parcellab/worker-group/Chart.yaml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/parcellab/common/Chart.yaml b/parcellab/common/Chart.yaml index 1e9c894..5b65cf2 100644 --- a/parcellab/common/Chart.yaml +++ b/parcellab/common/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: common description: A Helm chart library for parcelLab charts type: library -version: 1.3.5 +version: 1.3.6 maintainers: - name: parcelLab email: engineering@parcellab.com diff --git a/parcellab/cronjob/Chart.yaml b/parcellab/cronjob/Chart.yaml index 5b55c1d..19fa84a 100644 --- a/parcellab/cronjob/Chart.yaml +++ b/parcellab/cronjob/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: cronjob description: Single cron job -version: 0.5.0 +version: 0.5.1 dependencies: - name: common version: "*" diff --git a/parcellab/microservice/Chart.yaml b/parcellab/microservice/Chart.yaml index bc63799..5c62579 100644 --- a/parcellab/microservice/Chart.yaml +++ b/parcellab/microservice/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: microservice description: Simple microservice -version: 0.5.5 +version: 0.5.6 dependencies: - name: common version: "*" diff --git a/parcellab/monolith/Chart.yaml b/parcellab/monolith/Chart.yaml index 5849414..92821a6 100644 --- a/parcellab/monolith/Chart.yaml +++ b/parcellab/monolith/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: monolith description: Application that may define multiple services and cronjobs -version: 0.5.6 +version: 0.5.7 dependencies: - name: common version: "*" diff --git a/parcellab/worker-group/Chart.yaml b/parcellab/worker-group/Chart.yaml index 1e3e70d..82b88bf 100644 --- a/parcellab/worker-group/Chart.yaml +++ b/parcellab/worker-group/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: worker-group description: Set of workers that do not expose a service -version: 0.3.3 +version: 0.3.4 dependencies: - name: common version: "*"