Refactor node taints to use labels

Use kubelet flag to set taints instead of explicitly
with kubectl.

Change-Id: Iae1390c6ac0c21e0b139682c2a750d0cd54a7031
diff --git a/kubernetes/files/kubelet/default.master b/kubernetes/files/kubelet/default.master
index 398fb20..d1f35d0 100644
--- a/kubernetes/files/kubelet/default.master
+++ b/kubernetes/files/kubelet/default.master
@@ -11,6 +11,9 @@
 --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 496854a..37cc3a4 100644
--- a/kubernetes/files/kubelet/default.pool
+++ b/kubernetes/files/kubelet/default.pool
@@ -12,7 +12,14 @@
 --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 f060f3f..9855591 100644
--- a/kubernetes/master/controller.sls
+++ b/kubernetes/master/controller.sls
@@ -246,36 +246,6 @@
 
 {%- 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() %}