From a3892924789264482df2492a5d5535aed3c11043 Mon Sep 17 00:00:00 2001 From: Nicholas Farley Date: Tue, 4 Oct 2022 19:16:11 -0400 Subject: [PATCH] Allow `RunnerDeployment`s to configure `dnsPolicy` for runners (#1892) * Add DnsPolicy field to RunnerPodSpec struct * Ensure the runnerSpec's DNSPolicy is mirrored to the pod.Spec * Run `make manifests` --- api/v1alpha1/runner_types.go | 3 +++ .../crds/actions.summerwind.dev_runnerdeployments.yaml | 3 +++ .../crds/actions.summerwind.dev_runnerreplicasets.yaml | 3 +++ .../crds/actions.summerwind.dev_runners.yaml | 3 +++ .../crd/bases/actions.summerwind.dev_runnerdeployments.yaml | 3 +++ .../crd/bases/actions.summerwind.dev_runnerreplicasets.yaml | 3 +++ config/crd/bases/actions.summerwind.dev_runners.yaml | 3 +++ controllers/runner_controller.go | 4 ++++ 8 files changed, 25 insertions(+) diff --git a/api/v1alpha1/runner_types.go b/api/v1alpha1/runner_types.go index bda324b8..9dda5ad9 100644 --- a/api/v1alpha1/runner_types.go +++ b/api/v1alpha1/runner_types.go @@ -170,6 +170,9 @@ type RunnerPodSpec struct { // +optional RuntimeClassName *string `json:"runtimeClassName,omitempty"` + // +optional + DnsPolicy corev1.DNSPolicy `json:"dnsPolicy,omitempty"` + // +optional DnsConfig *corev1.PodDNSConfig `json:"dnsConfig,omitempty"` diff --git a/charts/actions-runner-controller/crds/actions.summerwind.dev_runnerdeployments.yaml b/charts/actions-runner-controller/crds/actions.summerwind.dev_runnerdeployments.yaml index 29d44772..0d73224d 100644 --- a/charts/actions-runner-controller/crds/actions.summerwind.dev_runnerdeployments.yaml +++ b/charts/actions-runner-controller/crds/actions.summerwind.dev_runnerdeployments.yaml @@ -1381,6 +1381,9 @@ spec: type: string type: array type: object + dnsPolicy: + description: DNSPolicy defines how a pod's DNS will be configured. + type: string dockerEnabled: type: boolean dockerEnv: diff --git a/charts/actions-runner-controller/crds/actions.summerwind.dev_runnerreplicasets.yaml b/charts/actions-runner-controller/crds/actions.summerwind.dev_runnerreplicasets.yaml index f941cb28..b568548a 100644 --- a/charts/actions-runner-controller/crds/actions.summerwind.dev_runnerreplicasets.yaml +++ b/charts/actions-runner-controller/crds/actions.summerwind.dev_runnerreplicasets.yaml @@ -1378,6 +1378,9 @@ spec: type: string type: array type: object + dnsPolicy: + description: DNSPolicy defines how a pod's DNS will be configured. + type: string dockerEnabled: type: boolean dockerEnv: diff --git a/charts/actions-runner-controller/crds/actions.summerwind.dev_runners.yaml b/charts/actions-runner-controller/crds/actions.summerwind.dev_runners.yaml index eca8b54b..fdbb0059 100644 --- a/charts/actions-runner-controller/crds/actions.summerwind.dev_runners.yaml +++ b/charts/actions-runner-controller/crds/actions.summerwind.dev_runners.yaml @@ -1325,6 +1325,9 @@ spec: type: string type: array type: object + dnsPolicy: + description: DNSPolicy defines how a pod's DNS will be configured. + type: string dockerEnabled: type: boolean dockerEnv: diff --git a/config/crd/bases/actions.summerwind.dev_runnerdeployments.yaml b/config/crd/bases/actions.summerwind.dev_runnerdeployments.yaml index 29d44772..0d73224d 100644 --- a/config/crd/bases/actions.summerwind.dev_runnerdeployments.yaml +++ b/config/crd/bases/actions.summerwind.dev_runnerdeployments.yaml @@ -1381,6 +1381,9 @@ spec: type: string type: array type: object + dnsPolicy: + description: DNSPolicy defines how a pod's DNS will be configured. + type: string dockerEnabled: type: boolean dockerEnv: diff --git a/config/crd/bases/actions.summerwind.dev_runnerreplicasets.yaml b/config/crd/bases/actions.summerwind.dev_runnerreplicasets.yaml index f941cb28..b568548a 100644 --- a/config/crd/bases/actions.summerwind.dev_runnerreplicasets.yaml +++ b/config/crd/bases/actions.summerwind.dev_runnerreplicasets.yaml @@ -1378,6 +1378,9 @@ spec: type: string type: array type: object + dnsPolicy: + description: DNSPolicy defines how a pod's DNS will be configured. + type: string dockerEnabled: type: boolean dockerEnv: diff --git a/config/crd/bases/actions.summerwind.dev_runners.yaml b/config/crd/bases/actions.summerwind.dev_runners.yaml index eca8b54b..fdbb0059 100644 --- a/config/crd/bases/actions.summerwind.dev_runners.yaml +++ b/config/crd/bases/actions.summerwind.dev_runners.yaml @@ -1325,6 +1325,9 @@ spec: type: string type: array type: object + dnsPolicy: + description: DNSPolicy defines how a pod's DNS will be configured. + type: string dockerEnabled: type: boolean dockerEnv: diff --git a/controllers/runner_controller.go b/controllers/runner_controller.go index c2612601..980b0aee 100644 --- a/controllers/runner_controller.go +++ b/controllers/runner_controller.go @@ -650,6 +650,10 @@ func (r *RunnerReconciler) newPod(runner v1alpha1.Runner) (corev1.Pod, error) { pod.Spec.HostAliases = runnerSpec.HostAliases } + if runnerSpec.DnsPolicy != "" { + pod.Spec.DNSPolicy = runnerSpec.DnsPolicy + } + if runnerSpec.DnsConfig != nil { pod.Spec.DNSConfig = runnerSpec.DnsConfig }