Support Python 3

Bug-Debian: https://bugs.debian.org/889932
diff --git a/kubernetes/control/configmap.sls b/kubernetes/control/configmap.sls
index 07b8189..8dcd161 100644
--- a/kubernetes/control/configmap.sls
+++ b/kubernetes/control/configmap.sls
@@ -2,7 +2,7 @@
 include:
   - kubernetes.control
 
-{%- for configmap_name, configmap in control.get('configmap', {}).iteritems() %}
+{%- for configmap_name, configmap in control.get('configmap', {}).items() %}
 {%- if configmap.enabled|default(True) %}
 
 {%- if configmap.pillar is defined %}
@@ -14,7 +14,7 @@
       {% macro load_support_file(pillar, grains) %}{% include support_fragment_file %}{% endmacro %}
 
       {%- set service_config_files = load_support_file(configmap.pillar, configmap.get('grains', {}))|load_yaml %}
-      {%- for service_config_name, service_config in service_config_files.config.iteritems() %}
+      {%- for service_config_name, service_config in service_config_files.config.items() %}
 
 /srv/kubernetes/configmap/{{ configmap_name }}/{{ service_config_name }}:
   file.managed:
diff --git a/kubernetes/control/job.sls b/kubernetes/control/job.sls
index b3a0696..4669759 100644
--- a/kubernetes/control/job.sls
+++ b/kubernetes/control/job.sls
@@ -2,7 +2,7 @@
 include:
   - kubernetes.control
 
-{%- for job_name, job in control.job.iteritems() %}
+{%- for job_name, job in control.job.items() %}
 
 /srv/kubernetes/jobs/{{ job_name }}-job.yml:
   file.managed:
diff --git a/kubernetes/control/role.sls b/kubernetes/control/role.sls
index ce7248d..8899eb8 100644
--- a/kubernetes/control/role.sls
+++ b/kubernetes/control/role.sls
@@ -2,7 +2,7 @@
 include:
   - kubernetes.control
 
-{%- for role_name, role in control.role.iteritems() %}
+{%- for role_name, role in control.role.items() %}
   {%- set role_name = role.name|default(role_name) %}
 
   {%- if role.get('namespace') or role.get('kind') == 'Role' %}
@@ -27,7 +27,7 @@
       role: {{ role|yaml }}
     {%- endif %}
 
-    {%- for binding_name, binding in role.get('binding', {}).iteritems() %}
+    {%- for binding_name, binding in role.get('binding', {}).items() %}
       {%- set binding_name = binding.name|default(binding_name) %}
       {%- if binding.get('namespace') or binding.get('kind') == 'RoleBinding' %}
         {%- set binding_kind = 'RoleBinding' %}
diff --git a/kubernetes/control/service.sls b/kubernetes/control/service.sls
index b88dd85..e7e9330 100644
--- a/kubernetes/control/service.sls
+++ b/kubernetes/control/service.sls
@@ -2,7 +2,7 @@
 include:
   - kubernetes.control
 
-{%- for service_name, service in control.service.iteritems() %}
+{%- for service_name, service in control.service.items() %}
   {%- if service.enabled %}
 
 /srv/kubernetes/services/{{ service.cluster }}/{{ service_name }}-svc.yml:
@@ -33,7 +33,7 @@
 
 {%- endfor %}
 
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').items() %}
 
   {%- if node_grains.get('kubernetes', {}).service is defined %}
     {%- set service = node_grains.get('kubernetes', {}).get('service', {}) %}
diff --git a/kubernetes/files/basic_auth.csv b/kubernetes/files/basic_auth.csv
index 8faa760..508765a 100644
--- a/kubernetes/files/basic_auth.csv
+++ b/kubernetes/files/basic_auth.csv
@@ -1,5 +1,5 @@
 {%- from "kubernetes/map.jinja" import master with context -%}
 {{ master.admin.password }},{{ master.admin.username }},admin
-{%- for name, user in master.auth.basic.get('user', {}).iteritems() %}
+{%- for name, user in master.auth.basic.get('user', {}).items() %}
 {{ user.password }},{{ user.name|default(name) }},{{ user.get('uid', user.get('name', name)) }}{% if user.groups is defined %},"{{ user.groups|join(',') }}"{% endif %}
 {%- endfor %}
diff --git a/kubernetes/files/collectd_calico_bird.conf b/kubernetes/files/collectd_calico_bird.conf
index e15eeaf..7f5b9aa 100644
--- a/kubernetes/files/collectd_calico_bird.conf
+++ b/kubernetes/files/collectd_calico_bird.conf
@@ -3,7 +3,7 @@
 
 <Module "collectd_calico_bird">
   {%- if plugin.endpoints is defined %}
-  {%- for key, val in plugin.endpoints.iteritems() %}
+  {%- for key, val in plugin.endpoints.items() %}
   {{ key }} "{{ val }}"
   {%- endfor %}
   {%- endif %}
diff --git a/kubernetes/files/configmap.yml b/kubernetes/files/configmap.yml
index d2469c0..12d885d 100644
--- a/kubernetes/files/configmap.yml
+++ b/kubernetes/files/configmap.yml
@@ -10,7 +10,7 @@
   {%- if pillar.get(service_name, {}).get('_support', {}).get('config', {}).get('enabled', False) %}
   {%- set support_fragment_file = service_name+'/meta/config.yml' %}
   {%- set service_config_files = load_support_file(support_fragment_file, configmap.pillar, configmap.get('grains', {}))|load_yaml %}
-  {%- for service_config_name, service_config in service_config_files.config.iteritems() %}
+  {%- for service_config_name, service_config in service_config_files.config.items() %}
   {{ service_config_name }}: |
     {{ load_support_file(service_config.source|replace('salt://', ''), configmap.pillar, configmap.get('grains', {}))|indent(4) }}
   {%- endfor %}
diff --git a/kubernetes/files/dockershim/default.master b/kubernetes/files/dockershim/default.master
index e0af9f5..c5f3174 100644
--- a/kubernetes/files/dockershim/default.master
+++ b/kubernetes/files/dockershim/default.master
@@ -23,7 +23,7 @@
 --cloud-config=/etc/kubernetes/cloud-config.conf \
 {%- endif %}
 {%- endif %}
-{%- for key, value in master.get('kubelet', {}).get('daemon_opts', {}).iteritems() %}
+{%- for key, value in master.get('kubelet', {}).get('daemon_opts', {}).items() %}
 --{{ key }}={{ value }} \
 {%- endfor %}
 "
diff --git a/kubernetes/files/dockershim/default.pool b/kubernetes/files/dockershim/default.pool
index 34ed343..85f8230 100644
--- a/kubernetes/files/dockershim/default.pool
+++ b/kubernetes/files/dockershim/default.pool
@@ -35,7 +35,7 @@
 {%- endif %}
 {%- endif %}
 --enable-controller-attach-detach={{ pool.get('enable-controller-attach-detach', 'false') }} \
-{%- for key, value in pool.get('kubelet', {}).get('daemon_opts', {}).iteritems() %}
+{%- for key, value in pool.get('kubelet', {}).get('daemon_opts', {}).items() %}
 --{{ key }}={{ value }} \
 {%- endfor %}
 "
diff --git a/kubernetes/files/job.yml b/kubernetes/files/job.yml
index 95103b9..6d85cfd 100644
--- a/kubernetes/files/job.yml
+++ b/kubernetes/files/job.yml
@@ -15,7 +15,7 @@
       hostPID: True
       {%- endif %}
       containers:
-      {%- for container_name, container in job.container.iteritems() %}
+      {%- for container_name, container in job.container.items() %}
         - name: {{ container_name }}
           image: {% if container.registry is defined %}{{ container.registry }}/{%- endif %}{{ container.image }}{%- if container.tag is defined %}:{{ container.tag }}{%- endif %}
           imagePullPolicy: {{ container.get('image_pull_policy', 'IfNotPresent') }}
@@ -53,7 +53,7 @@
       {%- endfor %}
       {%- if job.volume is defined %}
       volumes:
-      {%- for volume_name, volume in job.volume.iteritems() %}
+      {%- for volume_name, volume in job.volume.items() %}
         - name: {{ volume_name }}
           {%- if volume.type == 'empty_dir' %}
           emptyDir: {}
@@ -69,7 +69,7 @@
           configMap:
             name: {{ volume_name }}
             items:
-              {%- for name, item in volume.item.iteritems() %}
+              {%- for name, item in volume.item.items() %}
               - key: {{ item.key }}
                 path: {{ item.path }}
               {%- endfor %}
diff --git a/kubernetes/files/known_tokens.csv b/kubernetes/files/known_tokens.csv
index 328bedd..5b9d4ec 100644
--- a/kubernetes/files/known_tokens.csv
+++ b/kubernetes/files/known_tokens.csv
@@ -12,6 +12,6 @@
 {{ master.token.monitoring }},system:monitoring,system:monitoring
 {%- endif %}
 {{ master.token.dns }},system:dns,system:dns
-{%- for name, user in master.auth.token.get('user', {}).iteritems() %}
+{%- for name, user in master.auth.token.get('user', {}).items() %}
 {{ user.token }},{{ user.name|default(name) }},{{ user.get('uid', user.get('name', name)) }}{% if user.groups is defined %},"{{ user.groups|join(',') }}"{% endif %}
 {%- endfor %}
diff --git a/kubernetes/files/kube-addons/dns/kubedns-rc.yaml b/kubernetes/files/kube-addons/dns/kubedns-rc.yaml
index 1857aeb..7a415b0 100644
--- a/kubernetes/files/kube-addons/dns/kubedns-rc.yaml
+++ b/kubernetes/files/kube-addons/dns/kubedns-rc.yaml
@@ -111,7 +111,7 @@
           failureThreshold: 5
         args:
 {%- if common.addons.dns.get('dnsmasq', {}) %}
-{%- for option_name, option_value in common.addons.dns.dnsmasq.iteritems() %}
+{%- for option_name, option_value in common.addons.dns.dnsmasq.items() %}
         - --{{ option_name }}{% if option_value %}={{ option_value }}{% endif %}
 {%- endfor %}
 {%- endif %}
diff --git a/kubernetes/files/kubelet/default.master b/kubernetes/files/kubelet/default.master
index 7374f41..b43b65b 100644
--- a/kubernetes/files/kubelet/default.master
+++ b/kubernetes/files/kubelet/default.master
@@ -25,7 +25,7 @@
 --cloud-config=/etc/kubernetes/cloud-config.conf \
 {%- endif %}
 {%- endif %}
-{%- for key, value in master.get('kubelet', {}).get('daemon_opts', {}).iteritems() %}
+{%- for key, value in master.get('kubelet', {}).get('daemon_opts', {}).items() %}
 --{{ key }}={{ value }} \
 {%- endfor %}
 "
diff --git a/kubernetes/files/kubelet/default.pool b/kubernetes/files/kubelet/default.pool
index 28d2431..e8382ac 100644
--- a/kubernetes/files/kubelet/default.pool
+++ b/kubernetes/files/kubelet/default.pool
@@ -47,7 +47,7 @@
 {%- endif %}
 --enable-controller-attach-detach={{ pool.get('enable-controller-attach-detach', 'false') }} \
 {%- endif %}
-{%- for key, value in pool.get('kubelet', {}).get('daemon_opts', {}).iteritems() %}
+{%- for key, value in pool.get('kubelet', {}).get('daemon_opts', {}).items() %}
 --{{ key }}={{ value }} \
 {%- endfor %}
 "
diff --git a/kubernetes/files/manifest/kube-apiserver.manifest b/kubernetes/files/manifest/kube-apiserver.manifest
index 58afb82..a183efc 100644
--- a/kubernetes/files/manifest/kube-apiserver.manifest
+++ b/kubernetes/files/manifest/kube-apiserver.manifest
@@ -52,7 +52,7 @@
 {%- if master.apiserver.node_port_range is defined %}
       --service-node-port-range {{ master.apiserver.node_port_range }}
 {%- endif %}
-{%- for key, value in master.get('apiserver', {}).get('daemon_opts', {}).iteritems() %}
+{%- for key, value in master.get('apiserver', {}).get('daemon_opts', {}).items() %}
       --{{ key }}={{ value }}
 {% endfor %}
       1>>/var/log/kube-apiserver.log 2>&1
diff --git a/kubernetes/files/manifest/kube-controller-manager.manifest b/kubernetes/files/manifest/kube-controller-manager.manifest
index a3ee84b..d9e85ef 100644
--- a/kubernetes/files/manifest/kube-controller-manager.manifest
+++ b/kubernetes/files/manifest/kube-controller-manager.manifest
@@ -22,7 +22,7 @@
       --v={{ master.get('verbosity', 2) }}
       --root-ca-file=/etc/kubernetes/ssl/ca-{{ master.ca }}.crt
       --leader-elect=true
-{%- for key, value in master.get('controller_manager', {}).get('daemon_opts', {}).iteritems() %}
+{%- for key, value in master.get('controller_manager', {}).get('daemon_opts', {}).items() %}
       --{{ key }}={{ value }}
 {%- endfor %}
       1>>/var/log/kube-controller-manager.log 2>&1
diff --git a/kubernetes/files/manifest/kube-proxy.manifest.pool b/kubernetes/files/manifest/kube-proxy.manifest.pool
index 2fb1118..15b943c 100644
--- a/kubernetes/files/manifest/kube-proxy.manifest.pool
+++ b/kubernetes/files/manifest/kube-proxy.manifest.pool
@@ -24,7 +24,7 @@
 {%- if pool.network.engine == 'calico' %}
       --proxy-mode=iptables
 {%- endif %}
-{%- for key, value in pool.get('proxy', {}).get('daemon_opts', {}).iteritems() %}
+{%- for key, value in pool.get('proxy', {}).get('daemon_opts', {}).items() %}
       --{{ key }}={{ value }}
 {%- endfor %}
       1>>/var/log/kube-proxy.log 2>&1
diff --git a/kubernetes/files/manifest/kube-scheduler.manifest b/kubernetes/files/manifest/kube-scheduler.manifest
index 60ef676..fd881cc 100644
--- a/kubernetes/files/manifest/kube-scheduler.manifest
+++ b/kubernetes/files/manifest/kube-scheduler.manifest
@@ -21,7 +21,7 @@
       --kubeconfig /etc/kubernetes/scheduler.kubeconfig
       --v={{ master.get('verbosity', 2) }}
       --leader-elect=true
-{%- for key, value in master.get('scheduler', {}).get('daemon_opts', {}).iteritems() %}
+{%- for key, value in master.get('scheduler', {}).get('daemon_opts', {}).items() %}
       --{{ key }}={{ value }}
 {%- endfor %}
       1>>/var/log/kube-scheduler.log 2>&1
diff --git a/kubernetes/files/rc.yml b/kubernetes/files/rc.yml
index d2cad43..0a31b6c 100644
--- a/kubernetes/files/rc.yml
+++ b/kubernetes/files/rc.yml
@@ -47,9 +47,9 @@
       {%- if service.affinity is defined %}
         scheduler.alpha.kubernetes.io/affinity: >
           {
-          {%- for affinity_name, affinity in service.affinity.iteritems() %}
+          {%- for affinity_name, affinity in service.affinity.items() %}
             "{{ affinity.name }}": {
-              {%- for expression_name, expression in affinity.expression.iteritems() %}
+              {%- for expression_name, expression in affinity.expression.items() %}
               {%- if expression.name ==  'matchExpressions' %}
               "{{ affinity.get('type','required') }}DuringSchedulingIgnoredDuringExecution": {
                 "nodeSelectorTerms": [
@@ -96,7 +96,7 @@
       hostPID: True
       {%- endif %}
       containers:
-      {%- for container_name, container in service.container.iteritems() %}
+      {%- for container_name, container in service.container.items() %}
         - name: {{ container_name }}
           image: {% if container.registry is defined %}{{ container.registry }}/{%- endif %}{{ container.image }}{%- if container.tag is defined %}:{{ container.tag }}{%- endif %}
           imagePullPolicy: {{ container.get('image_pull_policy','IfNotPresent') }}
@@ -176,7 +176,7 @@
       {%- endfor %}
       {%- if service.volume is defined %}
       volumes:
-      {%- for volume_name, volume in service.volume.iteritems() %}
+      {%- for volume_name, volume in service.volume.items() %}
         - name: {{ volume_name }}
           {%- if volume.type == 'emptyDir' %}
           emptyDir: {}
@@ -192,7 +192,7 @@
           configMap:
             name: {{ volume_name }}-{{ volume.get('version', '1') }}
             items:
-              {%- for name, item in volume.item.iteritems() %}
+              {%- for name, item in volume.item.items() %}
               - key: {{ item.key }}
                 path: {{ item.path }}
               {%- endfor %}
diff --git a/kubernetes/files/rolebinding.yml b/kubernetes/files/rolebinding.yml
index 1befc8d..9857900 100644
--- a/kubernetes/files/rolebinding.yml
+++ b/kubernetes/files/rolebinding.yml
@@ -6,7 +6,7 @@
   namespace: {{ binding.namespace }}
   {%- endif %}
 subjects:
-  {%- for subject_name, subject in binding.subject.iteritems() %}
+  {%- for subject_name, subject in binding.subject.items() %}
   - kind: {{ subject.kind }}
     name: {{ subject.name|default(subject_name) }}
     apiGroup: rbac.authorization.k8s.io
diff --git a/kubernetes/master/controller.sls b/kubernetes/master/controller.sls
index 032a198..78a085c 100644
--- a/kubernetes/master/controller.sls
+++ b/kubernetes/master/controller.sls
@@ -145,7 +145,7 @@
         --cloud-config=/etc/kubernetes/cloud-config.conf
 {%- endif %}
 {%- endif %}
-{%- for key, value in master.get('apiserver', {}).get('daemon_opts', {}).iteritems() %}
+{%- for key, value in master.get('apiserver', {}).get('daemon_opts', {}).items() %}
         --{{ key }}={{ value }}
 {%- endfor %}"
 
@@ -188,7 +188,7 @@
         --allocate-node-cidrs=true
         --cluster-cidr={{ master.network.private_ip_range }}
 {%- endif %}
-{%- for key, value in master.get('controller_manager', {}).get('daemon_opts', {}).iteritems() %}
+{%- for key, value in master.get('controller_manager', {}).get('daemon_opts', {}).items() %}
         --{{ key }}={{ value }}
 {% endfor %}"
 
@@ -202,7 +202,7 @@
         --kubeconfig /etc/kubernetes/scheduler.kubeconfig
         --leader-elect=true
         --v={{ master.get('verbosity', 2) }}
-{%- for key, value in master.get('scheduler', {}).get('daemon_opts', {}).iteritems() %}
+{%- for key, value in master.get('scheduler', {}).get('daemon_opts', {}).items() %}
         --{{ key }}={{ value }}
 {% endfor %}"
 
@@ -260,7 +260,7 @@
 {%- endif %}
 
 
-{%- for name,namespace in master.namespace.iteritems() %}
+{%- for name,namespace in master.namespace.items() %}
 
 {%- if namespace.enabled %}
 
@@ -286,7 +286,7 @@
 
 {%- if master.registry.secret is defined %}
 
-{%- for name,registry in master.registry.secret.iteritems() %}
+{%- for name,registry in master.registry.secret.items() %}
 
 {%- if registry.enabled %}
 
diff --git a/kubernetes/master/kube-addons.sls b/kubernetes/master/kube-addons.sls
index 81cb768..dd023d1 100644
--- a/kubernetes/master/kube-addons.sls
+++ b/kubernetes/master/kube-addons.sls
@@ -94,7 +94,7 @@
 
 {%- if common.addons.storageclass is defined %}
 
-{%- for storageclass_name, storageclass in common.addons.get('storageclass', {}).iteritems() %}
+{%- for storageclass_name, storageclass in common.addons.get('storageclass', {}).items() %}
 {%- set storageclass_name = storageclass.get('name', storageclass_name) %}
 
 /etc/kubernetes/addons/storageclass/{{ storageclass_name }}.yaml:
diff --git a/kubernetes/master/setup.sls b/kubernetes/master/setup.sls
index 82af347..86ca5b0 100644
--- a/kubernetes/master/setup.sls
+++ b/kubernetes/master/setup.sls
@@ -55,7 +55,7 @@
 
 {%- if master.label is defined %}
 
-{%- for name,label in master.label.iteritems() %}
+{%- for name,label in master.label.items() %}
 
 {%- if label.enabled %}
 
diff --git a/kubernetes/pool/kube-proxy.sls b/kubernetes/pool/kube-proxy.sls
index b57ae6c..a420c56 100644
--- a/kubernetes/pool/kube-proxy.sls
+++ b/kubernetes/pool/kube-proxy.sls
@@ -37,7 +37,7 @@
     - user: root
     - group: root
     - mode: 644
-    - contents: DAEMON_ARGS=" --logtostderr=true --v={{ pool.get('verbosity', 2) }} --kubeconfig=/etc/kubernetes/proxy.kubeconfig {%- if pool.network.engine == 'calico' %} --proxy-mode=iptables{% endif %}{%- for key, value in pool.get('proxy', {}).get('daemon_opts', {}).iteritems() %} --{{ key }}={{ value }}{%- endfor %}"
+    - contents: DAEMON_ARGS=" --logtostderr=true --v={{ pool.get('verbosity', 2) }} --kubeconfig=/etc/kubernetes/proxy.kubeconfig {%- if pool.network.engine == 'calico' %} --proxy-mode=iptables{% endif %}{%- for key, value in pool.get('proxy', {}).get('daemon_opts', {}).items() %} --{{ key }}={{ value }}{%- endfor %}"
 
 pool_services:
   service.running: