Helm-Toolkit: Add snippet for kubernetes tolerations

This adds a helm-toolkit template for injecting pod tolerations
via values, similar to how container resources are handled. This
allows for custom definition of tolerations instead of defining
tolerations for pods directly into the pod templates

Change-Id: Ice520fcece425b14ae890ca5980fec9d7428a34d
This commit is contained in:
Steve Wilkerson 2018-08-22 09:40:24 -05:00
parent 1c6a33d979
commit 70afe83c16
5 changed files with 67 additions and 12 deletions

View File

@ -93,12 +93,8 @@ spec:
configmap-etc-hash: {{ tuple "configmap-etc.yaml" . | include "helm-toolkit.utils.hash" }}
spec:
serviceAccountName: {{ $serviceAccountName }}
{{ if .Values.labels.fluentbit.tolerations }}
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
- key: node-role.kubernetes.io/node
operator: Exists
{{ if $envAll.Values.pod.tolerations.fluentbit.enabled }}
{{ tuple $envAll "fluentbit" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
{{ else }}
nodeSelector:
{{ .Values.labels.fluentbit.node_selector_key }}: {{ .Values.labels.fluentbit.node_selector_value | quote }}

View File

@ -384,6 +384,14 @@ pod:
limits:
memory: '1024Mi'
cpu: '2000m'
tolerations:
fluentbit:
enabled: false
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
- key: node-role.kubernetes.io/node
operator: Exists
mounts:
fluentd:
fluentd:

View File

@ -0,0 +1,47 @@
{{/*
Copyright 2017 The Openstack-Helm Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/}}
{{/*
abstract: |
Renders kubernetes tolerations for pods
values: |
pod:
tolerations:
api:
enabled: true
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
- key: node-role.kubernetes.io/node
operator: Exists
usage: |
{{ include "helm-toolkit.snippets.kubernetes_tolerations" ( tuple . .Values.pod.tolerations.api ) }}
return: |
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
- key: node-role.kubernetes.io/node
operator: Exists
*/}}
{{- define "helm-toolkit.snippets.kubernetes_tolerations" -}}
{{- $envAll := index . 0 -}}
{{- $component := index . 1 -}}
{{- $pod := index $envAll.Values.pod.tolerations $component }}
tolerations:
{{ toYaml $pod.tolerations }}
{{- end -}}

View File

@ -54,12 +54,8 @@ spec:
namespace: {{ .Values.endpoints.node_metrics.namespace }}
spec:
serviceAccountName: {{ $serviceAccountName }}
{{ if .Values.labels.node_exporter.tolerations }}
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
- key: node-role.kubernetes.io/node
operator: Exists
{{ if .Values.pod.tolerations.node_exporter.enabled }}
{{ tuple $envAll "node_exporter" | include "helm-toolkit.snippets.kubernetes_tolerations" | indent 6 }}
{{ else }}
nodeSelector:
{{ .Values.labels.node_exporter.node_selector_key }}: {{ .Values.labels.node_exporter.node_selector_value | quote }}

View File

@ -81,6 +81,14 @@ pod:
limits:
memory: "1024Mi"
cpu: "2000m"
tolerations:
node_exporter:
enabled: false
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
- key: node-role.kubernetes.io/node
operator: Exists
dependencies:
dynamic: