Setup cni plugins from upstream github.

CNI plugins should be installed from dedicated project,
not from hyperkube image.

Change-Id: I161c4d9e72fdcc863bc0d273c4628e52090ace7d
diff --git a/kubernetes/_common.sls b/kubernetes/_common.sls
index 11f561e..be7c2a4 100644
--- a/kubernetes/_common.sls
+++ b/kubernetes/_common.sls
@@ -243,3 +243,13 @@
 
 {% endif %}
 {% endif %}
+
+{%- if common.cni is defined %}
+/opt/cni/bin:
+  archive.extracted:
+    - source: {{ common.cni.plugins.source }}
+    - source_hash: md5={{ common.cni.plugins.hash }}
+    - tar_options: xzf
+    - archive_format: tar
+    - if_missing: /opt/cni/bin/host-local
+{%- endif %}
diff --git a/kubernetes/pool/cni.sls b/kubernetes/pool/cni.sls
deleted file mode 100644
index 0cddd8a..0000000
--- a/kubernetes/pool/cni.sls
+++ /dev/null
@@ -1,41 +0,0 @@
-{%- 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:
-  cmd.run:
-    - name: docker run --rm -v /tmp/cni/:/tmp/cni/ --entrypoint cp {{ common.hyperkube.image }} -vr /opt/cni/bin/ /tmp/cni/
-    - require:
-        - file: /tmp/cni/
-    {%- if grains.get('noservices') %}
-    - onlyif: /bin/false
-    {%- endif %}
-
-{%- for filename in ['flannel', 'tuning', 'bridge', 'ipvlan', 'loopback', 'macvlan', 'ptp', 'dhcp', 'host-local'] %}
-/opt/cni/bin/{{ filename }}:
-  file.managed:
-    - source: /tmp/cni/bin/{{ filename }}
-    - user: root
-    - group: root
-    - mode: 755
-    - makedirs: True
-    - watch_in:
-      - service: kubelet_service
-    - require:
-      - cmd: copy-network-cni
-    {%- if grains.get('noservices') %}
-    - onlyif: /bin/false
-    {%- endif %}
-
-{%- endfor %}
-
-{%- endif %}
-
-{%- endif %}
diff --git a/kubernetes/pool/init.sls b/kubernetes/pool/init.sls
index 34e217a..c4b1967 100644
--- a/kubernetes/pool/init.sls
+++ b/kubernetes/pool/init.sls
@@ -1,6 +1,5 @@
 {%- from "kubernetes/map.jinja" import pool with context %}
 include:
-- kubernetes.pool.cni
 {%- if pool.network.get('calico', {}).get('enabled', False) %}
 - kubernetes.pool.calico
 {%- endif %}
diff --git a/metadata/service/common.yml b/metadata/service/common.yml
index d2fa3bb..161e025 100644
--- a/metadata/service/common.yml
+++ b/metadata/service/common.yml
@@ -61,6 +61,10 @@
           image: mirantis/virtlet:v1.0.0
           criproxy_version: v0.10.0
           criproxy_source: md5=52717b1f70f15558ef4bdb0e4d4948da
+      cni:
+        plugins:
+          source: https://github.com/containernetworking/plugins/releases/download/v0.7.1/cni-plugins-amd64-v0.7.1.tgz
+          hash: e7e5751d43456f69ea1ed043647e0377
       cloudprovider:
         enabled: False
         provider: openstack