Revert "Refactor node taints to use labels"

This reverts commit a0c4c686b16ee76365de97239958f71b685cdcbc.

Change-Id: I2c4cb0bbba8cc15ca28c6b7ccf57961aeaa97d4d
diff --git a/kubernetes/files/kubelet/default.master b/kubernetes/files/kubelet/default.master
index d1f35d0..398fb20 100644
--- a/kubernetes/files/kubelet/default.master
+++ b/kubernetes/files/kubelet/default.master
@@ -11,9 +11,6 @@
 --hostname-override={{ master.host.name }} \
 --v={{ master.get('verbosity', 2) }} \
 --node-labels=node-role.kubernetes.io/master=true \
-{%- if master.get('unschedulable', 'false') %}
---register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
-{%- endif %}
 {%- if common.get('cloudprovider', {}).get('enabled') %}
 --cloud-provider={{ common.cloudprovider.provider }} \
 {%- if common.get('cloudprovider', {}).get('provider') == 'openstack' %}
diff --git a/kubernetes/files/kubelet/default.pool b/kubernetes/files/kubelet/default.pool
index 37cc3a4..496854a 100644
--- a/kubernetes/files/kubelet/default.pool
+++ b/kubernetes/files/kubelet/default.pool
@@ -12,14 +12,7 @@
 --cni-bin-dir={{ pool.apiserver.get('cni_bin_dir', '/opt/cni/bin') }} \
 --hostname-override={{ pool.host.name }} \
 --v={{ pool.get('verbosity', 2) }} \
-{%- if pillar.kubernetes.master is defined %}
---node-labels=node-role.kubernetes.io/master=true \
-{%-   if master.get('unschedulable', 'false') %}
---register-with-taints=node-role.kubernetes.io/master=:NoSchedule \
-{%    endif %}
-{%- else %}
 --node-labels=node-role.kubernetes.io/node=true \
-{%- endif %}
 {%- if pool.network.engine in ['calico', 'opencontrail'] %}
 --network-plugin=cni \
 --network-plugin-dir=/etc/cni/net.d \
diff --git a/kubernetes/master/controller.sls b/kubernetes/master/controller.sls
index 9855591..f060f3f 100644
--- a/kubernetes/master/controller.sls
+++ b/kubernetes/master/controller.sls
@@ -246,6 +246,36 @@
 
 {%- endfor %}
 
+{%- if master.get('unschedulable', 'false') %}
+kubernetes_node_ready_{{ master.host.name}}:
+  cmd.run:
+    - name: bash -c 'while ! kubectl get nodes {{ master.host.name }}; do sleep 5; done'
+    - timeout: 180
+    {%- if grains.get('noservices') %}
+    - onlyif: /bin/false
+    {%- endif %}
+
+kubernetes_taint_master_{{ master.host.name }}:
+  cmd.run:
+    - name: kubectl taint --overwrite nodes {{ master.host.name }} node-role.kubernetes.io/master=:NoSchedule
+    - require:
+      - cmd: kubernetes_node_ready_{{ master.host.name}}
+    {%- if grains.get('noservices') %}
+    - onlyif: /bin/false
+    {%- endif %}
+
+kubernetes_label_master_{{ master.host.name }}:
+  cmd.run:
+    - name: kubectl label --overwrite nodes {{ master.host.name }} node-role.kubernetes.io=master
+    - require:
+      - cmd: kubernetes_node_ready_{{ master.host.name}}
+    {%- if grains.get('noservices') %}
+    - onlyif: /bin/false
+    {%- endif %}
+
+
+{%- endif %}
+
 {%- if master.registry.secret is defined %}
 
 {%- for name,registry in master.registry.secret.iteritems() %}