diff --git a/cluster/gce/configure-vm.sh b/cluster/gce/configure-vm.sh index a7530ce000d..ae3871e5138 100755 --- a/cluster/gce/configure-vm.sh +++ b/cluster/gce/configure-vm.sh @@ -572,6 +572,11 @@ EOF node_labels: '$(echo "${NODE_LABELS}" | sed -e "s/'/''/g")' EOF fi + if [ -n "${NODE_TAINTS:-}" ]; then + cat <>/srv/salt-overlay/pillar/cluster-params.sls +node_taints: '$(echo "${NODE_TAINTS}" | sed -e "s/'/''/g")' +EOF + fi if [ -n "${EVICTION_HARD:-}" ]; then cat <>/srv/salt-overlay/pillar/cluster-params.sls eviction_hard: '$(echo "${EVICTION_HARD}" | sed -e "s/'/''/g")' diff --git a/cluster/gce/container-linux/configure-helper.sh b/cluster/gce/container-linux/configure-helper.sh index 62b2bc7f03a..3a6748172bc 100755 --- a/cluster/gce/container-linux/configure-helper.sh +++ b/cluster/gce/container-linux/configure-helper.sh @@ -599,6 +599,9 @@ function start-kubelet { if [[ -n "${NODE_LABELS:-}" ]]; then flags+=" --node-labels=${NODE_LABELS}" fi + if [[ -n "${NODE_TAINTS:-}" ]]; then + flags+=" --register-with-taints=${NODE_TAINTS}" + fi if [[ -n "${EVICTION_HARD:-}" ]]; then flags+=" --eviction-hard=${EVICTION_HARD}" fi diff --git a/cluster/gce/gci/configure-helper.sh b/cluster/gce/gci/configure-helper.sh index 598628a4bd7..b05637957bd 100644 --- a/cluster/gce/gci/configure-helper.sh +++ b/cluster/gce/gci/configure-helper.sh @@ -933,6 +933,9 @@ function start-kubelet { if [[ -n "${NODE_LABELS:-}" ]]; then flags+=" --node-labels=${NODE_LABELS}" fi + if [[ -n "${NODE_TAINTS:-}" ]]; then + flags+=" --register-with-taints=${NODE_TAINTS}" + fi if [[ -n "${EVICTION_HARD:-}" ]]; then flags+=" --eviction-hard=${EVICTION_HARD}" fi diff --git a/cluster/saltbase/salt/kubelet/default b/cluster/saltbase/salt/kubelet/default index 459cb596d4b..7df6b33d666 100644 --- a/cluster/saltbase/salt/kubelet/default +++ b/cluster/saltbase/salt/kubelet/default @@ -175,6 +175,11 @@ {% set node_labels="--node-labels=" + pillar['node_labels'] %} {% endif -%} +{% set node_taints = "" %} +{% if pillar['node_taints'] is defined -%} + {% set node_taints="--register-with-taints=" + pillar['node_taints'] %} +{% endif -%} + {% set eviction_hard = "" %} {% if pillar['eviction_hard'] is defined -%} {% set eviction_hard="--eviction-hard=" + pillar['eviction_hard'] %} @@ -184,4 +189,4 @@ {% set pki=" --cert-dir=/var/lib/kubelet/pki" -%} # test_args has to be kept at the end, so they'll overwrite any prior configuration -DAEMON_ARGS="{{daemon_args}} {{api_servers}} {{debugging_handlers}} {{hostname_override}} {{cloud_provider}} {{cloud_config}} {{config}} {{manifest_url}} --allow-privileged={{pillar['allow_privileged']}} {{log_level}} {{cluster_dns}} {{cluster_domain}} {{docker_root}} {{kubelet_root}} {{non_masquerade_cidr}} {{cgroup_root}} {{system_container}} {{pod_cidr}} {{ master_kubelet_args }} {{cpu_cfs_quota}} {{network_plugin}} {{kubelet_port}} {{ hairpin_mode }} {{enable_custom_metrics}} {{runtime_container}} {{kubelet_container}} {{node_labels}} {{eviction_hard}} {{kubelet_auth}} {{pki}} {{feature_gates}} {{test_args}}" +DAEMON_ARGS="{{daemon_args}} {{api_servers}} {{debugging_handlers}} {{hostname_override}} {{cloud_provider}} {{cloud_config}} {{config}} {{manifest_url}} --allow-privileged={{pillar['allow_privileged']}} {{log_level}} {{cluster_dns}} {{cluster_domain}} {{docker_root}} {{kubelet_root}} {{non_masquerade_cidr}} {{cgroup_root}} {{system_container}} {{pod_cidr}} {{ master_kubelet_args }} {{cpu_cfs_quota}} {{network_plugin}} {{kubelet_port}} {{ hairpin_mode }} {{enable_custom_metrics}} {{runtime_container}} {{kubelet_container}} {{node_labels}} {{node_taints}} {{eviction_hard}} {{kubelet_auth}} {{pki}} {{feature_gates}} {{test_args}}"