summaryrefslogtreecommitdiffstats
path: root/ansible
diff options
context:
space:
mode:
authorBartek Grzybowski <b.grzybowski@partner.samsung.com>2021-01-26 09:35:25 +0100
committerBartek Grzybowski <b.grzybowski@partner.samsung.com>2021-01-26 08:39:21 +0000
commit8b2864df4f19783062f3a460227994032d923ff4 (patch)
tree159f4d4cbe0e766f017e8a5bfb358dde00b7dcc3 /ansible
parent52bd1fdc541a9277e5a24437576902511113670d (diff)
Split Helm v2 setup to separate playbook
Logically splitting the application playbook to put Helm v2 and v3 specific setup actions into separate tasks file. Change-Id: I20446a196bb2687e27fdeb6a45a83565b676fc42 Issue-ID: OOM-2665 Signed-off-by: Bartek Grzybowski <b.grzybowski@partner.samsung.com>
Diffstat (limited to 'ansible')
-rw-r--r--ansible/roles/application/molecule/default/tests/test_default.py11
-rw-r--r--ansible/roles/application/tasks/install.yml57
-rw-r--r--ansible/roles/application/tasks/setup-helm2.yml47
3 files changed, 59 insertions, 56 deletions
diff --git a/ansible/roles/application/molecule/default/tests/test_default.py b/ansible/roles/application/molecule/default/tests/test_default.py
index df50c472..1451a8fe 100644
--- a/ansible/roles/application/molecule/default/tests/test_default.py
+++ b/ansible/roles/application/molecule/default/tests/test_default.py
@@ -10,10 +10,7 @@ def test_helm_commands(host):
fc = host.file('/tmp/helm_simu_output').content_string
helm_release = host.ansible.get_variables()['helm_version']
if helm_release == 'v2':
- content_str1 = 'home'
- elif helm_release == 'v3':
- content_str1 = 'env'
- expected_content = content_str1 + """
+ expected_content = """home
init --upgrade --skip-refresh
version --tiller-connection-timeout 10
repo list
@@ -24,6 +21,12 @@ deploy moleculetestapp local/moleculetestapp --namespace \
moleculetestapp -f /opt/moleculetestapp/helm_charts/onap/resources/\
overrides/onap-all.yaml -f /opt/moleculetestapp/override.yaml \
--timeout 1800"""
+ elif helm_release == 'v3':
+ expected_content = """env
+deploy moleculetestapp local/moleculetestapp --namespace \
+moleculetestapp -f /opt/moleculetestapp/helm_charts/onap/resources/\
+overrides/onap-all.yaml -f /opt/moleculetestapp/override.yaml \
+--timeout 1800"""
assert fc == expected_content
diff --git a/ansible/roles/application/tasks/install.yml b/ansible/roles/application/tasks/install.yml
index 9e27e2de..fdb74af6 100644
--- a/ansible/roles/application/tasks/install.yml
+++ b/ansible/roles/application/tasks/install.yml
@@ -1,51 +1,4 @@
---
-- name: Helm init and upgrade
- command: |
- {{ helm_bin_dir }}/helm init
- --upgrade
- --skip-refresh
- changed_when: true # init is always changed type of action
-
-# 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
- changed_when: false # for idempotency
-
-- name: Get all helm repos
- command: "{{ helm_bin_dir }}/helm repo list"
- register: repos
- changed_when: false # for idempotency
-
-- name: Remove stable repo
- command: "{{ helm_bin_dir }}/helm repo remove stable"
- changed_when: true # when executed its a changed type of action
- when: "'stable' in repos.stdout"
-
-- name: Helm Serve
- shell: "{{ helm_bin_dir }}/helm serve &"
- async: 45
- poll: 3 # wait 3sec to get a chance for some stderr
- register: helm_serve
- changed_when: "'address already in use' not in helm_serve.stderr"
-
-- name: List helm repos
- command: "{{ helm_bin_dir }}/helm repo list"
- register: helm_repo_list
- changed_when: false # for idempotency
- failed_when:
- - helm_repo_list.rc > 0
- - "'Error: no repositories to show' not in helm_repo_list.stderr"
-
-- name: Helm Add Repo
- command: "{{ helm_bin_dir }}/helm repo add {{ helm_repository_name | mandatory }} {{ helm_repository_url | mandatory }}"
- when: "'local' not in helm_repo_list.stdout"
- changed_when: true # when executed its a changed type of action
-
# Make utility is missing in Ubuntu by default and it's necessary for building local helm repository
- name: Install build-essential
package:
@@ -53,6 +6,11 @@
state: present
when: ansible_os_family == "Debian"
+- include_tasks: setup-helm2.yml
+ when: helm_version | regex_search("^v2" )
+- include_tasks: setup-helm3.yml
+ when: helm_version | regex_search("^v3" )
+
- name: Build local helm repository
make:
chdir: "{{ app_helm_charts_infra_directory }}"
@@ -78,11 +36,6 @@
debug:
var: helm_override_files
-- include_tasks: setup-helm2.yml
- when: helm_version | regex_search("^v2" )
-- include_tasks: setup-helm3.yml
- when: helm_version | regex_search("^v3" )
-
- name: "Helm Install application {{ app_name }}"
command: >
{{ helm_bin_dir }}/helm
diff --git a/ansible/roles/application/tasks/setup-helm2.yml b/ansible/roles/application/tasks/setup-helm2.yml
index 77f0ee91..8479e1a1 100644
--- a/ansible/roles/application/tasks/setup-helm2.yml
+++ b/ansible/roles/application/tasks/setup-helm2.yml
@@ -1,4 +1,51 @@
---
+- name: Helm init and upgrade
+ command: |
+ {{ helm_bin_dir }}/helm init
+ --upgrade
+ --skip-refresh
+ changed_when: true # init is always changed type of action
+
+# 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
+ changed_when: false # for idempotency
+
+- name: Get all helm repos
+ command: "{{ helm_bin_dir }}/helm repo list"
+ register: repos
+ changed_when: false # for idempotency
+
+- name: Remove stable repo
+ command: "{{ helm_bin_dir }}/helm repo remove stable"
+ changed_when: true # when executed its a changed type of action
+ when: "'stable' in repos.stdout"
+
+- name: Helm Serve
+ shell: "{{ helm_bin_dir }}/helm serve &"
+ async: 45
+ poll: 3 # wait 3sec to get a chance for some stderr
+ register: helm_serve
+ changed_when: "'address already in use' not in helm_serve.stderr"
+
+- name: List helm repos
+ command: "{{ helm_bin_dir }}/helm repo list"
+ register: helm_repo_list
+ changed_when: false # for idempotency
+ failed_when:
+ - helm_repo_list.rc > 0
+ - "'Error: no repositories to show' not in helm_repo_list.stderr"
+
+- name: Helm Add Repo
+ command: "{{ helm_bin_dir }}/helm repo add {{ helm_repository_name | mandatory }} {{ helm_repository_url | mandatory }}"
+ when: "'local' not in helm_repo_list.stdout"
+ changed_when: true # when executed its a changed type of action
+
- name: Check for deploy plugin presence
stat:
path: '{{ helm_home_dir.stdout }}/plugins/deploy/deploy.sh'