Merge "Add kubernets.client state"
diff --git a/kubernetes/files/kube-addons/ingress-nginx/ingress-nginx.yaml b/kubernetes/files/kube-addons/ingress-nginx/ingress-nginx.yaml
index cfd5251..7e28da8 100644
--- a/kubernetes/files/kube-addons/ingress-nginx/ingress-nginx.yaml
+++ b/kubernetes/files/kube-addons/ingress-nginx/ingress-nginx.yaml
@@ -376,7 +376,7 @@
     app.kubernetes.io/part-of: ingress-nginx
     addonmanager.kubernetes.io/mode: Reconcile
 spec:
-  externalTrafficPolicy: Local
+  externalTrafficPolicy: {{ common.addons.get('ingress-nginx', {}).get('externalTrafficPolicy', 'Local') }}
   type: LoadBalancer
   selector:
     app.kubernetes.io/name: ingress-nginx
diff --git a/kubernetes/master/controller.sls b/kubernetes/master/controller.sls
index ce31e34..231f648 100644
--- a/kubernetes/master/controller.sls
+++ b/kubernetes/master/controller.sls
@@ -344,7 +344,11 @@
 kubernetes_namespace_create_{{ name }}:
   cmd.run:
     - name: kubectl create ns "{{ name }}"
-    - name: kubectl get ns -o=custom-columns=NAME:.metadata.name | grep -v NAME | grep "{{ name }}" > /dev/null || kubectl create ns "{{ name }}"
+    - unless: kubectl get ns -o=custom-columns=NAME:.metadata.name | grep -v NAME | grep "{{ name }}"
+    - retry:
+        attempts: 3
+        until: True
+        interval: 10
     {%- if grains.get('noservices') %}
     - onlyif: /bin/false
     {%- endif %}
@@ -353,7 +357,12 @@
 
 kubernetes_namespace_delete_{{ name }}:
   cmd.run:
-    - name: kubectl get ns -o=custom-columns=NAME:.metadata.name | grep -v NAME | grep "{{ name }}" > /dev/null && kubectl delete ns "{{ name }} || true"
+    - name: kubectl delete ns "{{ name }}"
+    - onlyif:
+      - kubectl get ns -o=custom-columns=NAME:.metadata.name | grep -v NAME | grep "{{ name }}" > /dev/null
+      {%- if grains.get('noservices') %}
+      - /bin/false
+      {%- endif %}
 
 {%- endif %}
 
diff --git a/metadata/service/master/cluster.yml b/metadata/service/master/cluster.yml
index afeb317..c611cda 100644
--- a/metadata/service/master/cluster.yml
+++ b/metadata/service/master/cluster.yml
@@ -47,9 +47,6 @@
       ca: kubernetes
       storage:
         engine: none
-      namespace:
-        kube-system:
-          enabled: True
       network:
         calico:
           etcd:
diff --git a/metadata/service/master/single.yml b/metadata/service/master/single.yml
index be5d701..a9314b1 100644
--- a/metadata/service/master/single.yml
+++ b/metadata/service/master/single.yml
@@ -65,9 +65,6 @@
       ca: kubernetes
       storage:
         engine: none
-      namespace:
-        kube-system:
-          enabled: True
       network:
         calico:
           etcd: