Browse Source

add role helm

pull/9/head
fedy95 4 years ago
parent
commit
90e0fa7fab
  1. 2
      .drone.yml
  2. 2
      Makefile
  3. 1
      playbooks/k8s-dev/init.yml
  4. 84
      roles/helm/tasks/main.yml
  5. 10
      roles/helm/vars/main.yml

2
.drone.yml

@ -18,6 +18,8 @@ steps:
- yamllint -c /yamllint/relaxed.yaml roles/docker/tasks/main.yml - yamllint -c /yamllint/relaxed.yaml roles/docker/tasks/main.yml
- yamllint -c /yamllint/relaxed.yaml roles/docker-compose/tasks/main.yml - yamllint -c /yamllint/relaxed.yaml roles/docker-compose/tasks/main.yml
- yamllint -c /yamllint/relaxed.yaml roles/docker-compose/vars/main.yml - yamllint -c /yamllint/relaxed.yaml roles/docker-compose/vars/main.yml
- yamllint -c /yamllint/relaxed.yaml roles/helm/tasks/main.yml
- yamllint -c /yamllint/relaxed.yaml roles/helm/vars/main.yml
- yamllint -c /yamllint/relaxed.yaml roles/k8s-init-first-master/tasks/main.yml - yamllint -c /yamllint/relaxed.yaml roles/k8s-init-first-master/tasks/main.yml
- yamllint -c /yamllint/relaxed.yaml roles/k8s-init-machines/tasks/main.yml - yamllint -c /yamllint/relaxed.yaml roles/k8s-init-machines/tasks/main.yml
- yamllint -c /yamllint/relaxed.yaml roles/k8s-init-workers/tasks/main.yml - yamllint -c /yamllint/relaxed.yaml roles/k8s-init-workers/tasks/main.yml

2
Makefile

@ -18,6 +18,8 @@ lint-yaml:
$(LINT-YAML-CMD) roles/docker/tasks/main.yml $(LINT-YAML-CMD) roles/docker/tasks/main.yml
$(LINT-YAML-CMD) roles/docker-compose/tasks/main.yml $(LINT-YAML-CMD) roles/docker-compose/tasks/main.yml
$(LINT-YAML-CMD) roles/docker-compose/vars/main.yml $(LINT-YAML-CMD) roles/docker-compose/vars/main.yml
$(LINT-YAML-CMD) roles/helm/tasks/main.yml
$(LINT-YAML-CMD) roles/helm/vars/main.yml
$(LINT-YAML-CMD) roles/k8s-init-first-master/tasks/main.yml $(LINT-YAML-CMD) roles/k8s-init-first-master/tasks/main.yml
$(LINT-YAML-CMD) roles/k8s-init-machines/tasks/main.yml $(LINT-YAML-CMD) roles/k8s-init-machines/tasks/main.yml
$(LINT-YAML-CMD) roles/k8s-init-workers/tasks/main.yml $(LINT-YAML-CMD) roles/k8s-init-workers/tasks/main.yml

1
playbooks/k8s-dev/init.yml

@ -28,4 +28,5 @@
become: true become: true
roles: roles:
- k8s-join-workers-to-first-master - k8s-join-workers-to-first-master
- helm
... ...

84
roles/helm/tasks/main.yml

@ -0,0 +1,84 @@
---
- name: create download directory
file:
state: directory
mode: 'u=rwx,go=rx'
dest: '{{ helm_download_dir }}'
- name: download sha256sum
get_url:
url: '{{ helm_mirror }}/{{ helm_filename }}.sha256'
dest: '{{ helm_download_dir }}/{{ helm_filename }}.sha256'
force: no
use_proxy: yes
validate_certs: yes
mode: 'u=rw,go=r'
- name: read sha256sum
slurp:
src: '{{ helm_download_dir }}/{{ helm_filename }}.sha256'
register: helm_sha256sum
- name: download Helm
get_url:
url: '{{ helm_mirror }}/{{ helm_filename }}'
dest: '{{ helm_download_dir }}/{{ helm_filename }}'
sha256sum: '{{ helm_sha256sum.content | b64decode | trim }}'
force: no
use_proxy: yes
validate_certs: yes
mode: 'u=rw,go=r'
- name: check current version
command: >
{{ helm_install_dir }}/helm version --client --template {{ "'{{ if .Version }}{{ .Version }}{{ else }}{{ .Client.SemVer }}{{ end }}'" }}
register: helm_current_version
failed_when: no
changed_when: no
- name: current version
debug:
msg: '{{ helm_current_version.stdout }}'
when: helm_current_version.rc == 0
- name: remove existing installation
become: yes
file:
path: '{{ helm_install_dir }}'
state: absent
when:
- helm_current_version.rc == 0
- helm_current_version.stdout != ('v' + helm_version)
- name: create the Helm installation dir
become: yes
file:
state: directory
owner: root
group: root
mode: 'u=rwx,go=rx'
dest: '{{ helm_install_dir }}'
- name: install Helm
become: yes
unarchive:
src: '{{ helm_download_dir }}/{{ helm_filename }}'
remote_src: yes
dest: '{{ helm_install_dir }}'
extra_opts:
- '--strip-components=1'
owner: root
group: root
mode: 'o-w'
creates: '{{ helm_install_dir }}/helm'
- name: create helm link
become: yes
file:
src: '{{ helm_install_dir }}/helm'
dest: '/usr/local/bin/helm'
state: link
owner: root
group: root
mode: 'u=rwx,go=rx'
...

10
roles/helm/vars/main.yml

@ -0,0 +1,10 @@
---
helm_version: '3.5.4'
helm_os: 'linux'
helm_architecture: 'amd64'
helm_filename: 'helm-v{{ helm_version }}-{{ helm_os }}-{{ helm_architecture }}.tar.gz'
helm_mirror: 'https://get.helm.sh'
helm_install_dir: '/usr/local/share/helm'
helm_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"
...