Add nodeselector and tolerations to pod building

Signed-off-by: Michael Tsang <michael.tsang@jetstack.io>
This commit is contained in:
Michael Tsang 2019-06-19 13:28:11 +01:00 committed by James Munnelly
parent 38045e6c16
commit d34effece0
3 changed files with 44 additions and 1 deletions

View File

@ -835,6 +835,10 @@ Appears In:
<td><code>metadata</code><br /> *<a href="#objectmeta-v1">ObjectMeta</a>*</td>
<td></td>
</tr>
<tr>
<td><code>spec</code><br /> <em>PodSpec</em></td>
<td></td>
</tr>
</tbody></table>
<h2 id="acmeissuer-v1alpha1">ACMEIssuer v1alpha1</h2>
<table>

View File

@ -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
}

View File

@ -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()