diff --git a/cluster.yml b/cluster.yml index 832afbb84ae8eb74a2acf6ab299294a6e35e3448..66850a3e5888e3a794ca502659fbce1a2c23fc37 100644 --- a/cluster.yml +++ b/cluster.yml @@ -1,8 +1,6 @@ --- - hosts: k8s-cluster roles: - - { role: adduser, tags: adduser } - - { role: download, tags: download } - { role: kubernetes/preinstall, tags: preinstall } - { role: etcd, tags: etcd } - { role: docker, tags: docker, when: ansible_os_family != "CoreOS" } diff --git a/roles/adduser/defaults/main.yml b/roles/adduser/defaults/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..b3a69229c15aca990cd255d6c0f0ddf68a4f9daa --- /dev/null +++ b/roles/adduser/defaults/main.yml @@ -0,0 +1,24 @@ +--- +addusers: + etcd: + name: etcd + comment: "Etcd user" + createhome: yes + home: "/var/lib/etcd" + system: yes + shell: /bin/nologin + kube: + name: kube + comment: "Kubernetes user" + shell: /sbin/nologin + system: yes + group: "{{ kube_cert_group }}" + createhome: no + +adduser: + name: "{{ user.name }}" + group: "{{ user.name|default(None) }}" + comment: "{{ user.comment|default(None) }}" + shell: "{{ user.shell|default(None) }}" + system: "{{ user.system|default(None) }}" + createhome: "{{ user.createhome|default(None) }}" diff --git a/roles/adduser/tasks/main.yml b/roles/adduser/tasks/main.yml index 58e5ce49e506607a56044337d6bef649c910e12b..394ff92945c99882977c63b4e668131b13189fb3 100644 --- a/roles/adduser/tasks/main.yml +++ b/roles/adduser/tasks/main.yml @@ -1,28 +1,13 @@ --- -- name: gather os specific variables - include_vars: "{{ item }}" - with_first_found: - - files: - - "{{ ansible_distribution|lower }}-{{ ansible_distribution_version|lower|replace('/', '_') }}.yml" - - "{{ ansible_distribution|lower }}-{{ ansible_distribution_release }}.yml" - - "{{ ansible_distribution|lower }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.yml" - - "{{ ansible_distribution|lower }}.yml" - - "{{ ansible_os_family|lower }}.yml" - - defaults.yml - paths: - - ../vars - skip: true - - name: User | Create User Group - group: name={{item.group|default(item.name)}} system={{item.system|default(omit)}} - with_items: "{{ addusers }}" + group: name={{user.group|default(user.name)}} system={{user.system|default(omit)}} - name: User | Create User user: - comment: "{{item.comment|default(omit)}}" - createhome: "{{item.create_home|default(omit)}}" - group: "{{item.group|default(item.name)}}" - home: "{{item.home|default(omit)}}" - name: "{{item.name}}" - system: "{{item.system|default(omit)}}" - with_items: "{{ addusers }}" + comment: "{{user.comment|default(omit)}}" + createhome: "{{user.create_home|default(omit)}}" + group: "{{user.group|default(user.name)}}" + home: "{{user.home|default(omit)}}" + shell: "{{user.shell|default(omit)}}" + name: "{{user.name}}" + system: "{{user.system|default(omit)}}" diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml index 72ae6e2e345e6337f1d1a7eb739ec9906ed24dcc..55b437f531dce613ec5fd822cb033f3e16e54adf 100644 --- a/roles/download/defaults/main.yml +++ b/roles/download/defaults/main.yml @@ -33,7 +33,7 @@ kubelet_checksum: "4adaf40592248eef6fd4fa126464915ea41e624a70dc77178089760ed235e kube_apiserver_checksum: "6ac99b36b02968459e026fcfc234207c66064b5e11816b69dd8fc234b2ffec1e" downloads: - - name: calico + calico: dest: calico/bin/calicoctl version: "{{calico_version}}" sha256: "{{ calico_checksum }}" @@ -41,8 +41,7 @@ downloads: url: "{{ calico_download_url }}" owner: "root" mode: "0755" - - - name: calico-cni-plugin + calico_cni_plugin: dest: calico/bin/calico version: "{{calico_cni_version}}" sha256: "{{ calico_cni_checksum }}" @@ -50,8 +49,7 @@ downloads: url: "{{ calico_cni_download_url }}" owner: "root" mode: "0755" - - - name: calico-cni-plugin-ipam + calico_cni_plugin_ipam: dest: calico/bin/calico-ipam version: "{{calico_cni_version}}" sha256: "{{ calico_cni_ipam_checksum }}" @@ -59,8 +57,7 @@ downloads: url: "{{ calico_cni_ipam_download_url }}" owner: "root" mode: "0755" - - - name: weave + weave: dest: weave/bin/weave version: "{{weave_version}}" source_url: "{{weave_download_url}}" @@ -68,8 +65,7 @@ downloads: sha256: "{{ weave_checksum }}" owner: "root" mode: "0755" - - - name: etcd + etcd: version: "{{etcd_version}}" dest: "etcd/etcd-{{ etcd_version }}-linux-amd64.tar.gz" sha256: "{{ etcd_checksum }}" @@ -78,8 +74,7 @@ downloads: unarchive: true owner: "etcd" mode: "0755" - - - name: kubernetes-kubelet + kubernetes_kubelet: version: "{{kube_version}}" dest: kubernetes/bin/kubelet sha256: "{{kubelet_checksum}}" @@ -87,8 +82,7 @@ downloads: url: "{{ kubelet_download_url }}" owner: "kube" mode: "0755" - - - name: kubernetes-kubectl + kubernetes_kubectl: dest: kubernetes/bin/kubectl version: "{{kube_version}}" sha256: "{{kubectl_checksum}}" @@ -96,8 +90,7 @@ downloads: url: "{{ kubectl_download_url }}" owner: "kube" mode: "0755" - - - name: kubernetes-apiserver + kubernetes_apiserver: dest: kubernetes/bin/kube-apiserver version: "{{kube_version}}" sha256: "{{kube_apiserver_checksum}}" @@ -105,3 +98,14 @@ downloads: url: "{{ apiserver_download_url }}" owner: "kube" mode: "0755" + +download: + enabled: "{{ file.enabled|default('true') }}" + dest: "{{ file.dest|default(None) }}" + version: "{{ file.version|default(None) }}" + sha256: "{{ file.sha256|default(None) }}" + source_url: "{{ file.source_url|default(None) }}" + url: "{{ file.url|default(None) }}" + unarchive: "{{ file.unarchive|default('false') }}" + owner: "{{ file.owner|default('kube') }}" + mode: "{{ file.mode|default(None) }}" diff --git a/roles/download/tasks/main.yml b/roles/download/tasks/main.yml index df9b652b1498921d991a18651f05358e767ee3d9..40bd3c90209f0b29f1d280b411abb6cff2ed15d7 100644 --- a/roles/download/tasks/main.yml +++ b/roles/download/tasks/main.yml @@ -1,36 +1,39 @@ --- +- name: downloading... + debug: + msg: "{{ download.url }}" + when: "{{ download.enabled|bool }}" + - name: Create dest directories - file: path={{local_release_dir}}/{{item.dest|dirname}} state=directory recurse=yes - with_items: "{{ downloads }}" + file: path={{local_release_dir}}/{{download.dest|dirname}} state=directory recurse=yes + when: "{{ download.enabled|bool }}" run_once: "{{ download_run_once|bool }}" - name: Download items get_url: - url: "{{item.url}}" - dest: "{{local_release_dir}}/{{item.dest}}" - sha256sum: "{{item.sha256 | default(omit)}}" - owner: "{{ item.owner|default(omit) }}" - mode: "{{ item.mode|default(omit) }}" - with_items: "{{ downloads }}" + url: "{{download.url}}" + dest: "{{local_release_dir}}/{{download.dest}}" + sha256sum: "{{download.sha256 | default(omit)}}" + owner: "{{ download.owner|default(omit) }}" + mode: "{{ download.mode|default(omit) }}" + when: "{{ download.enabled|bool }}" run_once: "{{ download_run_once|bool }}" - name: Extract archives unarchive: - src: "{{ local_release_dir }}/{{item.dest}}" - dest: "{{ local_release_dir }}/{{item.dest|dirname}}" - owner: "{{ item.owner|default(omit) }}" - mode: "{{ item.mode|default(omit) }}" + src: "{{ local_release_dir }}/{{download.dest}}" + dest: "{{ local_release_dir }}/{{download.dest|dirname}}" + owner: "{{ download.owner|default(omit) }}" + mode: "{{ download.mode|default(omit) }}" copy: no - when: "{{item.unarchive is defined and item.unarchive == True}}" - with_items: "{{ downloads }}" + when: "{{ download.enabled|bool }} and ({{download.unarchive is defined and download.unarchive == True}})" run_once: "{{ download_run_once|bool }}" - name: Fix permissions file: state: file - path: "{{local_release_dir}}/{{item.dest}}" - owner: "{{ item.owner|default(omit) }}" - mode: "{{ item.mode|default(omit) }}" - when: "{{item.unarchive is not defined or item.unarchive == False}}" - with_items: "{{ downloads }}" + path: "{{local_release_dir}}/{{download.dest}}" + owner: "{{ download.owner|default(omit) }}" + mode: "{{ download.mode|default(omit) }}" + when: "{{ download.enabled|bool }} and ({{download.unarchive is not defined or download.unarchive == False}})" run_once: "{{ download_run_once|bool }}" diff --git a/roles/etcd/meta/main.yml b/roles/etcd/meta/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..5ea32c371600fcb1e66e5828c7231224e15c8e14 --- /dev/null +++ b/roles/etcd/meta/main.yml @@ -0,0 +1,7 @@ +--- +dependencies: + - role: adduser + user: "{{ addusers.etcd }}" + when: ansible_os_family != 'CoreOS' + - role: download + file: "{{ downloads.etcd }}" diff --git a/roles/kubernetes/master/meta/main.yml b/roles/kubernetes/master/meta/main.yml index 53dd0401790ba04ab2aab531ac3023b9aa3749df..11f02f99d09b743a65575d1142d87bb727ca6d56 100644 --- a/roles/kubernetes/master/meta/main.yml +++ b/roles/kubernetes/master/meta/main.yml @@ -1,4 +1,8 @@ --- dependencies: + - role: download + file: "{{ downloads.kubernetes_kubectl }}" + - role: download + file: "{{ downloads.kubernetes_apiserver }}" - { role: etcd } - { role: kubernetes/node } diff --git a/roles/kubernetes/node/meta/main.yml b/roles/kubernetes/node/meta/main.yml index 811a29787abf374c8791a2088518eaafaf16f95a..a277c7d8a8000b3ffb6e28fc71033b7e23b925ed 100644 --- a/roles/kubernetes/node/meta/main.yml +++ b/roles/kubernetes/node/meta/main.yml @@ -1,3 +1,5 @@ --- dependencies: - - role: kubernetes/secrets + - role: download + file: "{{ downloads.kubernetes_kubelet }}" + - role: kubernetes/secrets diff --git a/roles/kubernetes/preinstall/meta/main.yml b/roles/kubernetes/preinstall/meta/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..3d0d62446af48cdbac77561a76094f111560956c --- /dev/null +++ b/roles/kubernetes/preinstall/meta/main.yml @@ -0,0 +1,5 @@ +--- +dependencies: + - role: adduser + user: "{{ addusers.kube }}" + when: ansible_os_family != 'CoreOS' diff --git a/roles/network_plugin/calico/meta/main.yml b/roles/network_plugin/calico/meta/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..dd9379a4441eb960dd7fdda71b3877c8a95b96cb --- /dev/null +++ b/roles/network_plugin/calico/meta/main.yml @@ -0,0 +1,8 @@ +--- +dependencies: + - role: download + file: "{{ downloads.calico }}" + - role: download + file: "{{ downloads.calico_cni_plugin }}" + - role: download + file: "{{ downloads.calico_cni_plugin_ipam }}" diff --git a/roles/network_plugin/weave/meta/main.yml b/roles/network_plugin/weave/meta/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..88346d30494f2f7e5d4a2190d72895f4ae25eb87 --- /dev/null +++ b/roles/network_plugin/weave/meta/main.yml @@ -0,0 +1,4 @@ +--- +dependencies: + - role: download + file: "{{ downloads.weave }}"