noheat: deploy helm with plugins & chartmuseum 11/123011/3
authorMaciej Wereski <m.wereski@partner.samsung.com>
Wed, 28 Jul 2021 13:36:47 +0000 (13:36 +0000)
committerMorgan Richomme <morgan.richomme@orange.com>
Tue, 24 Aug 2021 13:41:02 +0000 (13:41 +0000)
Issue-ID: INT-1601
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
Change-Id: If42f82101ad22631d636b9cadd8a0cef03e53a11

deployment/noheat/cluster-rke/ansible/create.yml
deployment/noheat/cluster-rke/ansible/roles/setup_helm/defaults/main.yml [new file with mode: 0644]
deployment/noheat/cluster-rke/ansible/roles/setup_helm/handlers/main.yml [new file with mode: 0644]
deployment/noheat/cluster-rke/ansible/roles/setup_helm/tasks/main.yml [new file with mode: 0644]
deployment/noheat/cluster-rke/ansible/roles/setup_helm/templates/chartmuseum.service.j2 [new file with mode: 0644]

index 329d6b8..c2eca98 100644 (file)
@@ -37,3 +37,7 @@
         repo: "https://git.onap.org/oom"
         dest: "{{ oom_dir }}"
         version: "master"
+- name: Install Helm
+  hosts: operator0
+  roles:
+    - role: setup_helm
diff --git a/deployment/noheat/cluster-rke/ansible/roles/setup_helm/defaults/main.yml b/deployment/noheat/cluster-rke/ansible/roles/setup_helm/defaults/main.yml
new file mode 100644 (file)
index 0000000..cbbb3c9
--- /dev/null
@@ -0,0 +1,6 @@
+---
+helm_version: "3.6.3"
+chartmuseum_version: "0.13.1"
+chartmuseum_port: "8879"
+chartmuseum_dir: "{{ ansible_user_dir }}/helm3-storage"
+local_user: "{{ ansible_user_id }}"
diff --git a/deployment/noheat/cluster-rke/ansible/roles/setup_helm/handlers/main.yml b/deployment/noheat/cluster-rke/ansible/roles/setup_helm/handlers/main.yml
new file mode 100644 (file)
index 0000000..0847b81
--- /dev/null
@@ -0,0 +1,5 @@
+---
+- name: Reload systemd
+  become: yes
+  systemd:
+    daemon-reload: yes
diff --git a/deployment/noheat/cluster-rke/ansible/roles/setup_helm/tasks/main.yml b/deployment/noheat/cluster-rke/ansible/roles/setup_helm/tasks/main.yml
new file mode 100644 (file)
index 0000000..c742fff
--- /dev/null
@@ -0,0 +1,72 @@
+- name: Download helm
+  get_url:
+    url: "https://get.helm.sh/helm-v{{ helm_version }}-linux-amd64.tar.gz"
+    dest: "/tmp"
+    mode: '0400'
+
+- name: Unarchive helm
+  unarchive:
+    src: "/tmp/helm-v{{ helm_version }}-linux-amd64.tar.gz"
+    dest: "/tmp/"
+    mode: '0500'
+
+- name: Copy helm binary to $PATH
+  become: yes
+  copy:
+    src: "/tmp/linux-amd64/helm"
+    dest: "/usr/local/bin/"
+    mode: '0555'
+
+- name: Install Helm Push plugin
+  kubernetes.core.helm_plugin:
+    plugin_path: "https://github.com/chartmuseum/helm-push.git"
+    state: present
+
+- name: Install Helm OOM Deploy plugin
+  kubernetes.core.helm_plugin:
+    plugin_path: "{{ oom_dir }}/kubernetes/helm/plugins/deploy"
+    state: present
+
+- name: Install Helm OOM Undeploy plugin
+  kubernetes.core.helm_plugin:
+    plugin_path: "{{ oom_dir }}/kubernetes/helm/plugins/undeploy"
+    state: present
+
+- name: Download chartmuseum install script
+  get_url:
+    url: "https://raw.githubusercontent.com/helm/chartmuseum/v{{ chartmuseum_version }}/scripts/get-chartmuseum"
+    dest: "/tmp/"
+    mode: '0500'
+
+- name: Install chartmuseum
+  become: yes
+  command:
+    cmd: "./get-chartmuseum -v v{{ chartmuseum_version }}"
+    chdir: "/tmp/"
+
+- name: Create chartmuseum local storage
+  file:
+    name: "{{ chartmuseum_dir }}"
+    state: directory
+    mode: '0755'
+
+- name: Install chartmuseum service file
+  become: yes
+  template:
+    src: "chartmuseum.service.j2"
+    dest: "/etc/systemd/system/chartmuseum.service"
+    mode: '0444'
+  notify: Reload systemd
+
+- name: Start and enable chartmuseum
+  become: yes
+  service:
+    name: "chartmuseum"
+    state: started
+    enabled: yes
+
+- name: Add local Helm repository
+  kubernetes.core.helm_repository:
+    name: "local"
+    repo_url: "http://127.0.0.1:{{ chartmuseum_port }}"
+    state: present
diff --git a/deployment/noheat/cluster-rke/ansible/roles/setup_helm/templates/chartmuseum.service.j2 b/deployment/noheat/cluster-rke/ansible/roles/setup_helm/templates/chartmuseum.service.j2
new file mode 100644 (file)
index 0000000..78d7967
--- /dev/null
@@ -0,0 +1,13 @@
+[Unit]
+Description=chartmuseum
+Requires=network-online.target
+After=network-online.target
+
+[Service]
+ExecStart=/usr/local/bin/chartmuseum --port "{{ chartmuseum_port }}" --storage local --storage-local-rootdir "{{ chartmuseum_dir }}"
+ExecStop=/usr/local/bin/chartmuseum step-down
+User={{ local_user }}
+Restart=always
+
+[Install]
+WantedBy=multi-user.target