--- /dev/null
+---
+# Caller fills application_custom_role variable with actual role name.
+- name: "Execute custom role {{ application_custom_role }} {{ phase }} Helm install."
+ include_role:
+ name: "{{ application_custom_role }}"
+ when:
+ - application_custom_role is defined
+ - application_custom_role is not none
+ - application_custom_role | trim != ''
--upgrade
--skip-refresh
-- name: Wait for helm
- wait_for: timeout=10
- delegate_to: localhost
+#A correct way to implement this would be using --wait option in helm init invocation.
+#However, it does not work due to https://github.com/helm/helm/issues/4031 (fixed in newer helm release)
+- name: "Wait for helm upgrade to finish"
+ command: "{{ helm_bin_dir }}/helm version --tiller-connection-timeout 10"
+ register: result
+ until: result.rc == 0
+ delay: 10
+ retries: 12
- name: Get all helm repos
command: "{{ helm_bin_dir }}/helm repo list"
- name: Helm Make All
make:
- chdir: "{{ app_helm_charts_directory }}"
+ chdir: "{{ app_helm_charts_infra_directory }}"
target: all
+ environment:
+ PATH: "{{ helm_bin_dir }}:{{ ansible_env.PATH }}"
- name: Helm Install application {{ app_name }}
- command: "helm install {{ helm_repository_name }}/{{ app_helm_chart_name }} --name {{ app_helm_release_name }} --namespace {{ app_kubernetes_namespace }}"
+ command: "{{ helm_bin_dir }}/helm install {{ helm_repository_name }}/{{ app_helm_chart_name }} --name {{ app_helm_release_name }} --namespace {{ app_kubernetes_namespace }}"
--- /dev/null
+---
+- name: "Execute custome role {{ application_post_install_role }} if defined."
+ include_tasks: custom_role.yml
+ vars:
+ application_custom_role: "{{ application_post_install_role }}"
--- /dev/null
+---
+# before custom specific code is executed we need to move helm charts to infra
+- name: Distribute helm charts to infra node
+ block:
+ - name: Archive helm charts
+ archive:
+ path: "{{ app_helm_charts_install_directory }}/*"
+ dest: "{{ app_helm_charts_install_directory }}.tgz"
+ delegate_to: localhost
+ - name: Create helm charts dir on infra
+ file:
+ path: "{{ app_helm_charts_infra_directory }}"
+ state: directory
+ mode: 0755
+ - name: Unarchive helm charts on infra node
+ unarchive:
+ src: "{{ app_helm_charts_install_directory }}.tgz"
+ dest: "{{ app_helm_charts_infra_directory }}"
+
+- name: "Execute custome role {{ application_pre_install_role }} if defined."
+ include_tasks: custom_role.yml
+ vars:
+ application_custom_role: "{{ application_pre_install_role }}"