From d34effece012bd668c7b73c545f4cf1f847283f2 Mon Sep 17 00:00:00 2001 From: Michael Tsang Date: Wed, 19 Jun 2019 13:28:11 +0100 Subject: [PATCH] Add nodeselector and tolerations to pod building Signed-off-by: Michael Tsang --- .../output/reference/api-docs/index.html | 4 +++ pkg/issuer/acme/http/pod.go | 16 ++++++++++++ pkg/issuer/acme/http/pod_test.go | 25 ++++++++++++++++++- 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/docs/generated/reference/output/reference/api-docs/index.html b/docs/generated/reference/output/reference/api-docs/index.html index f19a28781..00f7ae50b 100755 --- a/docs/generated/reference/output/reference/api-docs/index.html +++ b/docs/generated/reference/output/reference/api-docs/index.html @@ -835,6 +835,10 @@ Appears In: metadata
*ObjectMeta* + +spec
PodSpec + +

ACMEIssuer v1alpha1

diff --git a/pkg/issuer/acme/http/pod.go b/pkg/issuer/acme/http/pod.go index 11bb0f6ab..293507044 100644 --- a/pkg/issuer/acme/http/pod.go +++ b/pkg/issuer/acme/http/pod.go @@ -224,5 +224,21 @@ func (s *Solver) mergePodObjectMetaWithPodTemplate(pod *corev1.Pod, podTempl *v1 pod.Annotations[k] = v } + if pod.Spec.NodeSelector == nil { + pod.Spec.NodeSelector = make(map[string]string) + } + + for k, v := range podTempl.NodeSelector { + pod.Spec.NodeSelector[k] = v + } + + if pod.Spec.Tolerations == nil { + pod.Spec.Tolerations = []corev1.Toleration{} + } + + for _, t := range podTempl.Tolerations { + pod.Spec.Tolerations = append(pod.Spec.Tolerations, t) + } + return pod } diff --git a/pkg/issuer/acme/http/pod_test.go b/pkg/issuer/acme/http/pod_test.go index 8aecc060c..01d04f9e6 100644 --- a/pkg/issuer/acme/http/pod_test.go +++ b/pkg/issuer/acme/http/pod_test.go @@ -21,7 +21,8 @@ import ( "reflect" "testing" - "k8s.io/api/core/v1" + corev1 "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" @@ -278,6 +279,18 @@ func TestMergePodObjectMetaWithPodTemplate(t *testing.T) { "foo": "bar", }, }, + PodSpec: corev1.PodSpec{ + NodeSelector: map[string]string{ + "node": "selector", + }, + Tolerations: []corev1.Toleration{ + { + Key: "key", + Operator: "Exists", + Effect: "NoSchedule", + }, + }, + }, }, }, }, @@ -296,6 +309,16 @@ func TestMergePodObjectMetaWithPodTemplate(t *testing.T) { "sidecar.istio.io/inject": "true", "foo": "bar", } + resultingPod.Spec.NodeSelector = map[string]string{ + "node": "selector", + } + resultingPod.Spec.Tolerations = []corev1.Toleration{ + { + Key: "key", + Operator: "Exists", + Effect: "NoSchedule", + }, + } s.testResources[createdPodKey] = resultingPod s.Builder.Sync()