def test_helm_commands(host):
fc = host.file('/tmp/helm_simu_output').content_string
- expected_content = """home
+ 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 + """
init --upgrade --skip-refresh
version --tiller-connection-timeout 10
repo list
--- /dev/null
+../default/Dockerfile.j2
\ No newline at end of file
--- /dev/null
+---
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint:
+ name: yamllint
+platforms:
+ - name: instance-helm3
+ image: centos:7
+provisioner:
+ name: ansible
+ env:
+ ANSIBLE_ROLES_PATH: ../../../../test/roles
+ inventory:
+ group_vars:
+ all:
+ app_name: moleculetestapp
+ app_data_path: "/opt/{{ app_name }}"
+ app_helm_release_name: "{{ app_name }}"
+ app_kubernetes_namespace: "{{ app_name }}"
+ app_helm_charts_install_directory: application/helm_charts
+ app_helm_plugins_directory: "{{ app_helm_charts_install_directory}}/helm/plugins/"
+ app_helm_charts_infra_directory: "{{ app_data_path }}/helm_charts"
+ helm_bin_dir: /usr/local/bin
+ app_helm_build_targets:
+ - all
+ - onap
+ app_helm_chart_name: "{{ app_name }}"
+ helm_version: v3
+ lint:
+ name: ansible-lint
+ playbooks:
+ prepare: ../default/prepare.yml
+ converge: ../default/playbook.yml
+ cleanup: ../default/cleanup.yml
+scenario:
+ name: helm3
+ test_sequence:
+ - lint
+ - cleanup
+ - destroy
+ - dependency
+ - syntax
+ - create
+ - prepare
+ - converge
+ - verify
+ - cleanup
+ - destroy
+verifier:
+ name: testinfra
+ lint:
+ name: flake8
--- /dev/null
+../default/tests/
\ No newline at end of file
--- /dev/null
+---
+- name: Install helm plugins if needed
+ block:
+ - name: Get helm environment information
+ command: "{{ helm_bin_dir }}/helm env"
+ register: helm_env
+ - name: Set helm data dir
+ set_fact:
+ helm_data_dir: |
+ "{% if 'HELM_DATA_HOME' in helm_env.stdout %}
+ {{ (helm_env.stdout | replace('\"', '') | regex_search('HELM_DATA_HOME.*')).split('=')[1] }}
+ {% else %}
+ {{ '~/.local/share/helm' }}
+ {% endif %}"
+ - name: Ensure that dir for helm plugins exists
+ file:
+ path: "{{ helm_data_dir }}/plugins"
+ state: directory
+ mode: 0755
+ - name: Register all plugins to be inserted by dir names
+ find:
+ paths: "{{ app_helm_plugins_directory }}"
+ file_type: "directory"
+ register: list_of_plugins
+ delegate_to: localhost
+ - name: Install all helm plugins from {{ app_helm_plugins_directory }} dir
+ copy:
+ src: "{{ item.path }}"
+ dest: "{{ helm_data_dir }}/plugins"
+ directory_mode: true
+ mode: 0755
+ loop: "{{ list_of_plugins.files }}"
+ when: app_helm_plugins_directory is defined and app_helm_plugins_directory is not none
debug:
var: helm_override_files
-- name: Check for deploy plugin presence
- stat:
- path: '{{ helm_home_dir.stdout }}/plugins/deploy/deploy.sh'
- register: deploy_plugin_presence
+- 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: >
--- /dev/null
+---
+- name: Check for deploy plugin presence
+ stat:
+ path: '{{ helm_home_dir.stdout }}/plugins/deploy/deploy.sh'
+ register: deploy_plugin_presence
--- /dev/null
+---
+- name: Check for deploy plugin presence
+ stat:
+ path: '{{ helm_data_dir }}/plugins/deploy/deploy.sh'
+ register: deploy_plugin_presence
- include_tasks: install-helm2-plugins.yml
when: helm_version | regex_search("^v2" )
+- include_tasks: install-helm3-plugins.yml
+ when: helm_version | regex_search("^v3" )