diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 238da93be..5ba5104fd 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -1,15 +1,42 @@ --- -etcd_version: v2.2.2 +local_release_dir: /tmp + flannel_version: 0.5.5 - -kube_version: v1.1.3 -kubectl_checksum: "01b9bea18061a27b1cf30e34fd8ab45cfc096c9a9d57d0ed21072abb40dd3d1d" -kubelet_checksum: "62191c66f2d670dd52ddf1d88ef81048977abf1ffaa95ee6333299447eb6a482" -kube_download_url: "https://storage.googleapis.com/kubernetes-release/release/{{ kube_version }}/bin/linux/amd64" - calico_version: v0.13.0 calico_plugin_version: v0.7.0 +kube_version: v1.1.3 + +kubectl_checksum: "01b9bea18061a27b1cf30e34fd8ab45cfc096c9a9d57d0ed21072abb40dd3d1d" +kubelet_checksum: "62191c66f2d670dd52ddf1d88ef81048977abf1ffaa95ee6333299447eb6a482" + +kube_download_url: "https://storage.googleapis.com/kubernetes-release/release/{{ kube_version }}/bin/linux/amd64" + +flannel_download_url: "https://github.com/coreos/flannel/releases/download/v{{ flannel_version }}/flannel-{{ flannel_version }}-linux-amd64.tar.gz" + +calico_download_url: "https://github.com/Metaswitch/calico-docker/releases/download/{{calico_version}}/calicoctl" -flannel_download_url: "https://github.com/coreos/flannel/releases/download" -calico_download_url: "https://github.com/Metaswitch/calico-docker/releases/download" calico_plugin_download_url: "https://github.com/projectcalico/calico-kubernetes/releases/download/{{calico_plugin_version}}/calico_kubernetes" + +downloads: + - name: calico + dest: calico/bin/calicoctl + url: "{{calico_download_url}}" + + - name: calico-plugin + dest: calico/bin/calico + url: "{{calico_plugin_download_url}}" + + - name: flannel + dest: flannel/flannel-{{ flannel_version }}-linux-amd64.tar.gz + url: "{{flannel_download_url}}" + unarchive: yes + + - name: kubernetes-kubelet + dest: kubernetes/bin/kubelet + sha256: "{{kubelet_checksum}}" + url: "{{ kube_download_url }}/kubelet" + + - name: kubernetes-kubectl + dest: kubernetes/bin/kubectl + sha256: "{{kubectl_checksum}}" + url: "{{ kube_download_url }}/kubectl" diff --git a/roles/download/tasks/main.yml b/roles/download/tasks/main.yml index c8749a03e..0d881acfc 100644 --- a/roles/download/tasks/main.yml +++ b/roles/download/tasks/main.yml @@ -1,76 +1,19 @@ --- -- name: Create calico release directory - local_action: file - path={{ local_release_dir }}/calico/bin - recurse=yes - state=directory +- name: Create dest directories + file: path={{local_release_dir}}/{{item.dest|dirname}} state=directory recurse=yes + with_items: downloads -- name: Check if calicoctl has been downloaded - local_action: stat - path={{ local_release_dir }}/calico/bin/calicoctl - register: c_tar +- name: Download items + get_url: + url: "{{item.url}}" + dest: "{{local_release_dir}}/{{item.dest}}" + sha256sum: "{{item.sha256 | default(omit)}}" + with_items: downloads -# issues with get_url module and redirects, to be tested again in the near future -- name: Download calico - local_action: shell - curl -o {{ local_release_dir }}/calico/bin/calicoctl -Ls {{ calico_download_url }}/{{ calico_version }}/calicoctl - when: not c_tar.stat.exists - register: dl_calico - - -- name: Download calico-kubernetes-plugin - local_action: get_url - url="{{calico_plugin_download_url}}" - dest="{{ local_release_dir }}/calico/bin/calico" - -- name: Create flannel release directory - local_action: file - path={{ local_release_dir }}/flannel - recurse=yes - state=directory - -- name: Check if flannel release archive has been downloaded - local_action: stat - path={{ local_release_dir }}/flannel/flannel-{{ flannel_version }}-linux-amd64.tar.gz - register: f_tar - -# issues with get_url module and redirects, to be tested again in the near future -- name: Download flannel - local_action: shell - curl -o {{ local_release_dir }}/flannel/flannel-{{ flannel_version }}-linux-amd64.tar.gz -Ls {{ flannel_download_url }}/v{{ flannel_version }}/flannel-{{ flannel_version }}-linux-amd64.tar.gz - when: not f_tar.stat.exists - register: dl_flannel - -- name: Extract flannel archive - local_action: unarchive - src={{ local_release_dir }}/flannel/flannel-{{ flannel_version }}-linux-amd64.tar.gz - dest={{ local_release_dir }}/flannel copy=no - when: dl_flannel|changed - -- name: Pick up only flannel binaries - local_action: copy - src={{ local_release_dir }}/flannel/flannel-{{ flannel_version }}/flanneld - dest={{ local_release_dir }}/flannel/bin - when: dl_flannel|changed - -- name: Delete unused flannel files - local_action: file - path={{ local_release_dir }}/flannel/flannel-{{ flannel_version }} state=absent - when: dl_flannel|changed - -- name: Create kubernetes binary directory - local_action: file - path="{{ local_release_dir }}/kubernetes/bin" - state=directory - recurse=yes - -- name: Download kubelet and kubectl - local_action: get_url - url="{{ kube_download_url }}/{{ item.name }}" - dest="{{ local_release_dir }}/kubernetes/bin" - sha256sum="{{ item.checksum }}" - with_items: - - name: kubelet - checksum: "{{ kubelet_checksum }}" - - name: kubectl - checksum: "{{ kubectl_checksum }}" +- name: Extract archives + unarchive: + src: "{{ local_release_dir }}/{{item.dest}}" + dest: "{{ local_release_dir }}/{{item.dest|dirname}}" + copy: no + when: "{{item.unarchive is defined and item.unarchive == True}}" + with_items: downloads