Revert "update sources of k8s and calico installation"

This reverts commit 76ecb2d41fc078054259ba68a7ba9720dbf02968.

Change-Id: Idffc40a6deae187c70671a968dd059463c72e3f0
diff --git a/README.rst b/README.rst
index 4f7a3e3..deff35b 100644
--- a/README.rst
+++ b/README.rst
@@ -16,23 +16,6 @@
 Sample pillars
 ==============
 
-**REQUIRED:** Define image to use for hyperkube, CNIs and calicoctl image
-
-.. code-block:: yaml
-
-    parameters:
-      kubernetes:
-        common:
-          hyperkube:
-            image: gcr.io/google_containers/hyperkube:v1.4.6
-        pool:
-          network:
-            calicoctl:
-              image: calico/ctl
-            cni:
-              image: calico/cni
-
-
 Containers on pool definitions in pool.service.local
 
 .. code-block:: yaml
diff --git a/kubernetes/_common.sls b/kubernetes/_common.sls
index d6521bf..41adc6f 100644
--- a/kubernetes/_common.sls
+++ b/kubernetes/_common.sls
@@ -16,85 +16,4 @@
     - source_hash: md5=972c717254775bef528f040af804f2cc
     - archive_format: tar
     - if_missing: /usr/local/src/flannel/flannel-0.5.5/
-{%- endif %}
-
-{%- if common.hyperkube %}
-/root/.bashrc:
-  file.append:
-    - text: alias kubectl="hyperkube kubectl"
-    - makedirs: True
-
-/tmp/hyperkube:
-  file.directory:
-    - user: root
-    - group: root
-
-hyperkube-copy:
-  dockerng.running:
-    - image: {{ common.hyperkube.image }}
-    - command: cp -v /hyperkube /tmp/hyperkube
-    - binds:
-      - /tmp/hyperkube/:/tmp/hyperkube/
-    - force: True
-    - require:
-      - file: /tmp/hyperkube
-
-/usr/bin/hyperkube:
-  file.managed:
-     - source: /tmp/hyperkube/hyperkube
-     - mode: 751
-     - makedirs: true
-     - user: root
-     - group: root
-     - require:
-       - dockerng: hyperkube-copy
-
-/etc/systemd/system/kubelet.service:
-  file.managed:
-  - source: salt://kubernetes/files/systemd/kubelet.service
-  - template: jinja
-  - user: root
-  - group: root
-  - mode: 644
-
-/etc/kubernetes/config:
-  file.absent
-
-/etc/kubernetes/manifests:
-  file.directory:
-    - user: root
-    - group: root
-    - mode: 0751
-
-{%- if not pillar.kubernetes.pool is defined %}
-
-/etc/default/kubelet:
-  file.managed:
-  - source: salt://kubernetes/files/kubelet/default.master
-  - template: jinja
-  - user: root
-  - group: root
-  - mode: 644
-
-{%- else %}
-
-/etc/default/kubelet:
-  file.managed:
-  - source: salt://kubernetes/files/kubelet/default.pool
-  - template: jinja
-  - user: root
-  - group: root
-  - mode: 644
-
-{%- endif %}
-
-
-kubelet_service:
-  service.running:
-  - name: kubelet
-  - enable: True
-  - watch:
-    - file: /etc/default/kubelet
-    - file: /usr/bin/hyperkube
-
-{% endif %}
+{%- endif %}
\ No newline at end of file
diff --git a/kubernetes/files/calico/calico-node.service.pool b/kubernetes/files/calico/calico-node.service.pool
index 08424a0..07801ec 100644
--- a/kubernetes/files/calico/calico-node.service.pool
+++ b/kubernetes/files/calico/calico-node.service.pool
@@ -35,7 +35,7 @@
  -v {{ volume }} \
  {%- endfor %}
  {%- endif %}
- {{ pool.network.get('image', 'calico/node') }}
+ {{ pool.network.get('image', 'calico/node') }}:{{ pool.network.get('image', 'latest') }}
 
 Restart=always
 RestartSec=10s
@@ -43,4 +43,4 @@
 ExecStop=-/usr/bin/docker stop calico-node
 
 [Install]
-WantedBy=multi-user.target
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/kubernetes/master/controller.sls b/kubernetes/master/controller.sls
index fd8435b..2d54236 100644
--- a/kubernetes/master/controller.sls
+++ b/kubernetes/master/controller.sls
@@ -124,10 +124,47 @@
     - file: /etc/default/kube-apiserver
     - file: /etc/default/kube-scheduler
     - file: /etc/default/kube-controller-manager
-    - file: /usr/bin/hyperkube
 
 {%- endif %}
 
+{%- if not pillar.kubernetes.pool is defined %}
+
+/usr/bin/hyperkube:
+  file.managed:
+     - source: {{ master.hyperkube.get('source', 'http://apt.tcpcloud.eu/kubernetes/bin/') }}{{ master.version }}/hyperkube
+     - source_hash: md5={{ master.hyperkube.hash }}
+     - mode: 751
+     - makedirs: true
+     - user: root
+     - group: root
+
+/etc/systemd/system/kubelet.service:
+  file.managed:
+  - source: salt://kubernetes/files/systemd/kubelet.service
+  - template: jinja
+  - user: root
+  - group: root
+  - mode: 644
+
+/etc/kubernetes/config:
+  file.absent
+
+/etc/default/kubelet:
+  file.managed:
+  - source: salt://kubernetes/files/kubelet/default.master
+  - template: jinja
+  - user: root
+  - group: root
+  - mode: 644
+
+kubelet_service:
+  service.running:
+  - name: kubelet
+  - enable: True
+  - watch:
+    - file: /etc/default/kubelet
+
+{%- endif %}
 
 {%- for name,namespace in master.namespace.iteritems() %}
 
@@ -167,4 +204,4 @@
 
 {%- endif %}
 
-{%- endif %}
+{%- endif %}
\ No newline at end of file
diff --git a/kubernetes/master/setup.sls b/kubernetes/master/setup.sls
index cf3d7a8..72b378b 100644
--- a/kubernetes/master/setup.sls
+++ b/kubernetes/master/setup.sls
@@ -7,9 +7,9 @@
 kubernetes_addons_{{ addon_name }}:
   cmd.run:
     - name: |
-        hyperkube kubectl apply -f /etc/kubernetes/addons/{{ addon_name }}
+        hyperkube kubectl create -f /etc/kubernetes/addons/{{ addon_name }}
     - unless: "hyperkube kubectl get rc {{ addon.get('name', addon_name) }} --namespace=kube-system"
 
 {%- endif %}
 {%- endfor %}
-{%- endif %}
+{%- endif %}
\ No newline at end of file
diff --git a/kubernetes/pool/calico.sls b/kubernetes/pool/calico.sls
index fbe7bdb..c0193ac 100644
--- a/kubernetes/pool/calico.sls
+++ b/kubernetes/pool/calico.sls
@@ -1,52 +1,31 @@
 {%- from "kubernetes/map.jinja" import pool with context %}
 {%- if pool.enabled %}
 
-/tmp/calico/:
-  file.directory:
-      - user: root
-      - group: root
-
-copy-calico-ctl:
-  dockerng.running:
-    - image: {{ pool.network.calicoctl.image }}
-
-copy-calico-ctl-cmd:
-  cmd.run:
-    - name: docker cp copy-calico-ctl:calicoctl /tmp/calico/
-    - require:
-      - dockerng: copy-calico-ctl
-
 /usr/bin/calicoctl:
   file.managed:
-     - source: /tmp/calico/calicoctl
+     - source: {{ pool.network.get('source', 'https://github.com/projectcalico/calico-containers/releases/download/') }}{{ pool.network.version }}/calicoctl
+     - source_hash: md5={{ pool.network.hash }}
      - mode: 751
      - user: root
      - group: root
-     - require:
-       - cmd: copy-calico-ctl-cmd
 
-copy-calico-cni:
-  dockerng.running:
-    - image: {{ pool.network.cni.image }}
-    - command: cp -vr /opt/cni/bin/ /tmp/calico/
-    - binds:
-      - /tmp/calico/:/tmp/calico/
-    - force: True
-
-{%- for filename in ['calico', 'calico-ipam'] %}
-
-/opt/cni/bin/{{ filename }}:
+/opt/cni/bin/calico:
   file.managed:
-     - source: /tmp/calico/bin/{{ filename }}
+     - source: {{ pool.network.cni.get('source', 'https://github.com/projectcalico/calico-cni/releases/download/') }}{{ pool.network.cni.version }}/calico
+     - source_hash: md5={{ pool.network.cni.hash }}
      - mode: 751
      - makedirs: true
      - user: root
      - group: root
-     - require:
-       - dockerng: copy-calico-cni
-     - require_in:
-       - service: calico_node
-{%- endfor %}
+
+/opt/cni/bin/calico-ipam:
+  file.managed:
+     - source: {{ pool.network.ipam.get('source', 'https://github.com/projectcalico/calico-cni/releases/download/') }}{{ pool.network.ipam.version }}/calico-ipam
+     - source_hash: md5={{ pool.network.ipam.hash }}
+     - mode: 751
+     - makedirs: true
+     - user: root
+     - group: root
 
 /etc/cni/net.d/10-calico.conf:
   file.managed:
@@ -85,4 +64,4 @@
       - file: /etc/systemd/system/calico-node.service
 {%- endif %}
 
-{%- endif %}
+{%- endif %}
\ No newline at end of file
diff --git a/kubernetes/pool/cni.sls b/kubernetes/pool/cni.sls
index 650635e..8c696bc 100644
--- a/kubernetes/pool/cni.sls
+++ b/kubernetes/pool/cni.sls
@@ -1,38 +1,14 @@
 {%- from "kubernetes/map.jinja" import pool with context %}
-{%- from "kubernetes/map.jinja" import common with context %}
 {%- if pool.enabled %}
 
-{%- if common.hyperkube %}
-
-/tmp/cni/:
-  file.directory:
-    - user: root
-    - group: root
-
-copy-network-cni:
-  dockerng.running:
-    - image: {{ common.hyperkube.image }}
-    - command: cp -vr /opt/cni/bin/ /tmp/cni/
-    - binds:
-      - /tmp/cni/:/tmp/cni/
-    - force: True
-    - require:
-        - file: /tmp/cni/
-
-{%- for filename in ['cnitool', 'flannel', 'tuning', 'bridge', 'ipvlan', 'loopback', 'macvlan', 'ptp', 'dhcp', 'host-local', 'noop'] %}
-/opt/cni/bin/{{ filename }}:
-  file.managed:
-    - source: /tmp/cni/bin/{{ filename }}
-    - user: root
-    - group: root
-    - mode: 755
-    - watch_in:
-      - service: kubelet_service
-    - require:
-      - dockerng: copy-network-cni
-
-{%- endfor %}
-
-{%- endif %}
+cni-tar:
+  archive:
+    - extracted
+    - name: /opt/cni/bin
+    - source: https://github.com/containernetworking/cni/releases/download/{{ pool.cni.version }}/cni-{{ pool.cni.version }}.tgz
+    - tar_options: v
+    - source_hash: md5={{ pool.cni.hash }}
+    - archive_format: tar
+    - if_missing: /opt/cni/bin/loopback
 
 {%- endif %}
diff --git a/kubernetes/pool/init.sls b/kubernetes/pool/init.sls
index e43e53d..6f56c27 100644
--- a/kubernetes/pool/init.sls
+++ b/kubernetes/pool/init.sls
@@ -1,12 +1,12 @@
 {%- from "kubernetes/map.jinja" import pool with context %}
 include:
-- kubernetes.pool.cni
 - kubernetes.pool.service
 {%- if pool.network.engine == "calico" %}
 - kubernetes.pool.calico
 {%- endif %}
+- kubernetes.pool.cni
 - kubernetes.pool.kubelet
 {%- if pool.network.engine == "flannel" %}
 - kubernetes.pool.flannel
 {%- endif %}
-- kubernetes.pool.kube-proxy
+- kubernetes.pool.kube-proxy
\ No newline at end of file
diff --git a/kubernetes/pool/kube-proxy.sls b/kubernetes/pool/kube-proxy.sls
index 8aa64be..3e39c37 100644
--- a/kubernetes/pool/kube-proxy.sls
+++ b/kubernetes/pool/kube-proxy.sls
@@ -45,7 +45,6 @@
   - enable: True
   - watch:
     - file: /etc/default/kube-proxy
-    - file: /usr/bin/hyperkube
 
 {%- endif %}
 
diff --git a/kubernetes/pool/kubelet.sls b/kubernetes/pool/kubelet.sls
index 292ef96..3fc3c2c 100644
--- a/kubernetes/pool/kubelet.sls
+++ b/kubernetes/pool/kubelet.sls
@@ -1,6 +1,14 @@
 {%- from "kubernetes/map.jinja" import pool with context %}
 {%- if pool.enabled %}
 
+/etc/default/kubelet:
+  file.managed:
+  - source: salt://kubernetes/files/kubelet/default.pool
+  - template: jinja
+  - user: root
+  - group: root
+  - mode: 644
+
 /etc/kubernetes/kubelet.kubeconfig:
   file.managed:
     - source: salt://kubernetes/files/kubelet/kubelet.kubeconfig
@@ -10,6 +18,9 @@
     - mode: 644
     - makedirs: true
 
+/etc/kubernetes/config:
+  file.absent
+
 manifest-dir-create:
   file.directory:
     - name: /etc/kubernetes/manifests
@@ -44,4 +55,28 @@
 
 {%- endif %}
 
+/usr/bin/hyperkube:
+  file.managed:
+     - source: {{ pool.hyperkube.get('source', {}).get('url', 'http://apt.tcpcloud.eu/kubernetes/bin/') }}{{ pool.version }}/hyperkube
+     - source_hash: md5={{ pool.hyperkube.hash }}
+     - mode: 751
+     - makedirs: true
+     - user: root
+     - group: root
+
+/etc/systemd/system/kubelet.service:
+  file.managed:
+  - source: salt://kubernetes/files/systemd/kubelet.service
+  - template: jinja
+  - user: root
+  - group: root
+  - mode: 644
+
+kubelet_service:
+  service.running:
+  - name: kubelet
+  - enable: True
+  - watch:
+    - file: /etc/default/kubelet
+
 {%- endif %}
diff --git a/metadata/service/common.yml b/metadata/service/common.yml
index b02880d..f1f8197 100644
--- a/metadata/service/common.yml
+++ b/metadata/service/common.yml
@@ -2,4 +2,4 @@
   kubernetes:
     common:
       network:
-        engine: none
+        engine: none
\ No newline at end of file
diff --git a/metadata/service/master/cluster.yml b/metadata/service/master/cluster.yml
index 46d391f..4076dd8 100644
--- a/metadata/service/master/cluster.yml
+++ b/metadata/service/master/cluster.yml
@@ -7,6 +7,7 @@
   kubernetes:
     master:
       enabled: true
+      version: ${_param:kubernetes_version}
       registry:
         host: tcpcloud
       service_addresses: 10.254.0.0/16
@@ -32,10 +33,6 @@
           replicas: 1
           domain: cluster.local
           server: 10.254.0.10
-        dashboard:
-          enabled: True
-        heapster_influxdb:
-          enabled: False
       token:
         admin: ${_param:kubernetes_admin_token}
         kubelet: ${_param:kubernetes_kubelet_token}
@@ -57,4 +54,4 @@
           - host: ${_param:cluster_node02_address}
             port: 4001
           - host: ${_param:cluster_node03_address}
-            port: 4001
+            port: 4001
\ No newline at end of file
diff --git a/metadata/service/master/single.yml b/metadata/service/master/single.yml
index 4c4fcf2..21f2eb7 100644
--- a/metadata/service/master/single.yml
+++ b/metadata/service/master/single.yml
@@ -7,6 +7,7 @@
   kubernetes:
     master:
       enabled: true
+      version: ${_param:kubernetes_version}
       registry:
         host: tcpcloud
       service_addresses: 10.254.0.0/16
@@ -28,10 +29,6 @@
           replicas: 1
           domain: cluster.local
           server: 10.254.0.10
-        dashboard:
-          enabled: True
-        heapster_influxdb:
-          enabled: False
       token:
         admin: ${_param:kubernetes_admin_token}
         kubelet: ${_param:kubernetes_kubelet_token}
@@ -49,4 +46,4 @@
         etcd:
           members:
             - host: ${_param:single_address}
-              port: 4001
+              port: 4001
\ No newline at end of file
diff --git a/metadata/service/pool/cluster.yml b/metadata/service/pool/cluster.yml
index 7c42e12..ea0bc8a 100644
--- a/metadata/service/pool/cluster.yml
+++ b/metadata/service/pool/cluster.yml
@@ -7,6 +7,7 @@
   kubernetes:
     pool:
       enabled: true
+      version: ${_param:kubernetes_version}
       registry:
         host: tcpcloud
       host:
@@ -41,3 +42,6 @@
             port: 4001
           - host: ${_param:cluster_node03_address}
             port: 4001
+      cni:
+        version: v0.3.0
+        hash: 58237532e1b2b1be1fb3d12457da85f5
\ No newline at end of file
diff --git a/metadata/service/pool/single.yml b/metadata/service/pool/single.yml
index b01a719..f3cb7c0 100644
--- a/metadata/service/pool/single.yml
+++ b/metadata/service/pool/single.yml
@@ -7,6 +7,7 @@
   kubernetes:
     pool:
       enabled: true
+      version: ${_param:kubernetes_version}
       registry:
         host: tcpcloud
       host:
@@ -34,3 +35,6 @@
           members:
             - host: ${_param:master_address}
               port: 4001
+      cni:
+        version: v0.3.0
+        hash: 58237532e1b2b1be1fb3d12457da85f5
\ No newline at end of file
diff --git a/tests/pillar/master_cluster.sls b/tests/pillar/master_cluster.sls
index af37946..f951eb3 100644
--- a/tests/pillar/master_cluster.sls
+++ b/tests/pillar/master_cluster.sls
@@ -2,8 +2,6 @@
   common:
     network:
       engine: none
-    hyperkube:
-      image: hyperkube-amd64:v1.5.0-beta.3-1
   master:
     addons:
       dns:
diff --git a/tests/pillar/pool_cluster.sls b/tests/pillar/pool_cluster.sls
index 71dda18..f639738 100644
--- a/tests/pillar/pool_cluster.sls
+++ b/tests/pillar/pool_cluster.sls
@@ -2,8 +2,6 @@
   common:
     network:
       engine: none
-    hyperkube:
-      image: hyperkube-amd64:v1.5.0-beta.3-1
   pool:
     enabled: true
     version: v1.2.0
@@ -29,10 +27,9 @@
       kube_proxy: DFvQ8GelB7afH3wClC9romaMPhquyyEe
     ca: kubernetes
     network:
-      calicoctl:
-        image: calico/ctl
       cni:
-        image: calico/cni
+        hash: 06550617ec199e89a57c94c88c891422
+        version: v1.3.1
       engine: calico
       hash: c15ae251b633109e63bf128c2fbbc34a
       ipam:
@@ -49,3 +46,6 @@
           port: 4001
     hyperkube:
       hash: hnsj0XqABgrSww7Nqo7UVTSZLJUt2XRd
+    cni:
+      version: v0.3.0
+      hash: 58237532e1b2b1be1fb3d12457da85f5
\ No newline at end of file