|
@@ -0,0 +1,901 @@
|
|
|
+# Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved.
|
|
|
+#
|
|
|
+# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
+# you may not use this file except in compliance with the License.
|
|
|
+# You may obtain a copy of the License at
|
|
|
+#
|
|
|
+# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
+#
|
|
|
+# Unless required by applicable law or agreed to in writing, software
|
|
|
+# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
+# See the License for the specific language governing permissions and
|
|
|
+# limitations under the License.
|
|
|
+
|
|
|
+---
|
|
|
+#Testcase OMNIA_1.1_US_CRD_TC_001
|
|
|
+# Execute omnia.yml with separate servers for manager,compute,login,nfs node with default parameters
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_001
|
|
|
+ hosts: localhost
|
|
|
+
|
|
|
+ tasks:
|
|
|
+ - name: Execute omnia.yml with default input parameters
|
|
|
+ command: ansible-playbook omnia.yml -i inventory
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_001
|
|
|
+
|
|
|
+ - name: Validate omnia.yml
|
|
|
+ command: ansible-playbook test_omnia_validation.yml -i ../inventory
|
|
|
+ changed_when: false
|
|
|
+ tags: TC_001
|
|
|
+
|
|
|
+#Testcase OMNIA_1.1_US_CRD_TC_005
|
|
|
+# Execute omnia.yml with addition of new compute node
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_005
|
|
|
+ hosts: localhost
|
|
|
+
|
|
|
+ tasks:
|
|
|
+
|
|
|
+ - name: Execute omnia.yml with default input parameters
|
|
|
+ command: ansible-playbook omnia.yml -i inventory
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_005
|
|
|
+
|
|
|
+ - name: Validate omnia.yml
|
|
|
+ command: ansible-playbook test_omnia_validation.yml -i ../inventory
|
|
|
+ changed_when: false
|
|
|
+ tags: TC_005
|
|
|
+
|
|
|
+ - name: Include variable file
|
|
|
+ include_vars: test_vars/test_omnia_1.1_vars.yml
|
|
|
+ tags: TC_005
|
|
|
+
|
|
|
+ - name: Creating test inventory file
|
|
|
+ copy:
|
|
|
+ dest: "test_inventory.yml"
|
|
|
+ mode: '{{ file_permission }}'
|
|
|
+ content: |
|
|
|
+
|
|
|
+ [manager]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [compute]
|
|
|
+ {{ host2 }}
|
|
|
+ {{ host5 }}
|
|
|
+
|
|
|
+ [login_node]
|
|
|
+ {{ host3 }}
|
|
|
+
|
|
|
+ [nfs_node]
|
|
|
+
|
|
|
+ - name: Verify if new compute node is added
|
|
|
+ command: ansible --list-hosts compute -i test_inventory.yml
|
|
|
+ changed_when: false
|
|
|
+ register: compute_info
|
|
|
+ tags: TC_005
|
|
|
+
|
|
|
+ - name: Validate compute node
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - "'{{ host5 }}' in compute_info.stdout"
|
|
|
+ success_msg: "{{ compute_node_success_msg }}"
|
|
|
+ fail_msg: "{{ compute_node_fail_msg }}"
|
|
|
+ tags: TC_005
|
|
|
+
|
|
|
+#Testcase OMNIA_1.1_US_CRD_TC_006
|
|
|
+# Execute omnia.yml after removal of new compute node
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_006
|
|
|
+ hosts: localhost
|
|
|
+
|
|
|
+ tasks:
|
|
|
+
|
|
|
+ - name: Execute omnia.yml with default input parameters
|
|
|
+ command: ansible-playbook omnia.yml -i test/test_inventory.yml
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_006
|
|
|
+
|
|
|
+ - name: Validate omnia.yml
|
|
|
+ command: ansible-playbook test_omnia_validation.yml -i test_inventory.yml
|
|
|
+ changed_when: false
|
|
|
+ tags: TC_006
|
|
|
+
|
|
|
+ - name: Delete one compute node
|
|
|
+ copy:
|
|
|
+ dest: "test_inventory.yml"
|
|
|
+ mode: '{{ file_permission }}'
|
|
|
+ content: |
|
|
|
+
|
|
|
+ [manager]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [compute]
|
|
|
+ {{ host2 }}
|
|
|
+
|
|
|
+ [login_node]
|
|
|
+ {{ host3 }}
|
|
|
+
|
|
|
+ [nfs_node]
|
|
|
+ tags: TC_006
|
|
|
+
|
|
|
+ - name: Execute omnia.yml with default input parameters
|
|
|
+ command: ansible-playbook omnia.yml -i test/test_inventory.yml
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_006
|
|
|
+
|
|
|
+ - name: Verify if one compute node is deleted
|
|
|
+ command: ansible --list-hosts compute -i test_inventory.yml
|
|
|
+ register: compute_info
|
|
|
+ changed_when: false
|
|
|
+ tags: TC_006
|
|
|
+
|
|
|
+ - name: Validate compute node
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - "'{{ host5 }}' not in compute_info.stdout"
|
|
|
+ success_msg: "{{ compute_node_del_success_msg }}"
|
|
|
+ fail_msg: "{{ compute_node_del_fail_msg }}"
|
|
|
+ tags: TC_006
|
|
|
+
|
|
|
+ - name: Delete the inventory file
|
|
|
+ file:
|
|
|
+ state: absent
|
|
|
+ path: test_inventory.yml
|
|
|
+ tags: TC_006
|
|
|
+
|
|
|
+#Testcase OMNIA_1.1_US_CRD_TC_008
|
|
|
+# Execute Jupyterhub.yml and then Kubeflow.yml
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_008
|
|
|
+ hosts: localhost
|
|
|
+ tasks:
|
|
|
+ - name: Include variable file
|
|
|
+ include_vars: test_vars/test_omnia_1.1_vars.yml
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+ - name: Install Jupyterhub
|
|
|
+ command: ansible-playbook platforms/jupyterhub.yml -i inventory
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+ - name: Install Kubeflow
|
|
|
+ command: ansible-playbook platforms/kubeflow.yml -i inventory
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_008
|
|
|
+ hosts: manager
|
|
|
+ vars_files:
|
|
|
+ - test_vars/test_jupyterhub_vars.yml
|
|
|
+ - test_vars/test_kubeflow_vars.yml
|
|
|
+
|
|
|
+ tasks:
|
|
|
+ - name: Waiting for the pods deployment
|
|
|
+ pause:
|
|
|
+ minutes: 5
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+ - name: Checking K8s services
|
|
|
+ command: kubectl get services
|
|
|
+ register: k8s_services
|
|
|
+ changed_when: false
|
|
|
+ failed_when: True
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+ - name: Validating JupyterHub services
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - "'hub' in k8s_services.stdout"
|
|
|
+ - "'proxy-public' in k8s_services.stdout"
|
|
|
+ - "'proxy-api' in k8s_services.stdout"
|
|
|
+ fail_msg: "{{ jupyterhub_services_fail_msg }}"
|
|
|
+ success_msg: "{{ jupyterhub_services_success_msg }}"
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+ - name: Checking all running pods under jupyterhub namespace
|
|
|
+ command: kubectl get pods --namespace jupyterhub --field-selector=status.phase=Running
|
|
|
+ register: jupyterhub_running_pods
|
|
|
+ changed_when: false
|
|
|
+ failed_when: True
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+ - name: Validating JupyterHub pods
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - "'hub' in default_jupyterhub_pods.stdout"
|
|
|
+ - "'proxy' in default_jupyterhub_pods.stdout"
|
|
|
+ fail_msg: "{{ jupyterhub_pods_fail_msg }}"
|
|
|
+ success_msg: "{{ jupyterhub_pods_success_msg }}"
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+ - name: Checking installed Kubeflow version
|
|
|
+ command: kfctl version
|
|
|
+ register: kfctl_version
|
|
|
+ changed_when: false
|
|
|
+ failed_when: True
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+ - name: Checking pods under kubeflow namespace
|
|
|
+ command: kubectl get pods --namespace kubeflow
|
|
|
+ register: kubeflow_pods
|
|
|
+ changed_when: false
|
|
|
+ ignore_errors: True
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+ - name: Checking pods under istio-system namespace
|
|
|
+ command: kubectl get pods --namespace istio-system
|
|
|
+ register: istio_system_pods
|
|
|
+ changed_when: false
|
|
|
+ ignore_errors: True
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+ - name: Validating Kubeflow Installation
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - "'command not found' not in kfctl_version.stdout"
|
|
|
+ fail_msg: "{{ kubeflow_install_fail_msg }}"
|
|
|
+ success_msg: "{{ kubeflow_install_success_msg }}"
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+ - name: Validating Kubeflow pods deployment
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - "'Running' in kubeflow_pods.stdout or 'ContainerCreating' in kubeflow_pods.stdout"
|
|
|
+ - "'Running' in istio_system_pods.stdout or 'ContainerCreating' in istio_system_pods.stdout"
|
|
|
+ fail_msg: "{{ kubeflow_pods_deployment_fail_msg }}"
|
|
|
+ success_msg: "{{ kubeflow_pods_deployment_success_msg }}"
|
|
|
+ tags: TC_008
|
|
|
+
|
|
|
+#Testcase OMNIA_1.1_US_CRD_TC_009
|
|
|
+# Execute omnia.yml and reboot all the nodes
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_009
|
|
|
+ hosts: localhost
|
|
|
+ vars_files:
|
|
|
+ - test_vars/test_k8s_common_vars.yml
|
|
|
+ - test_vars/test_slurm_common_vars.yml
|
|
|
+
|
|
|
+ tasks:
|
|
|
+ - name: Include variable file
|
|
|
+ include_vars: test_vars/test_omnia_1.1_vars.yml
|
|
|
+ tags: TC_009
|
|
|
+
|
|
|
+ - name: Execute omnia.yml with default input parameters
|
|
|
+ command: ansible-playbook omnia.yml -i inventory
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_009
|
|
|
+
|
|
|
+
|
|
|
+ - name: Reboot the nodes
|
|
|
+ command: ansible all -i ../inventory -b -B 1 -P 0 -m shell -a "sleep {{ sleep_time }} && reboot"
|
|
|
+ changed_when: false
|
|
|
+ tags: TC_009
|
|
|
+
|
|
|
+ - name: Waiting for services to restart
|
|
|
+ pause:
|
|
|
+ minutes: "{{ pod_time }}"
|
|
|
+ tags: TC_009
|
|
|
+
|
|
|
+ - name: Validate omnia.yml
|
|
|
+ command: ansible-playbook test_omnia_validation.yml -i ../inventory
|
|
|
+ changed_when: false
|
|
|
+ tags: TC_009
|
|
|
+
|
|
|
+
|
|
|
+# Testcase OMNIA_1.1_US_CRD_TC_002
|
|
|
+# Execute omnia.yml with single node scenario (manager, compute and login node on same server)
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_002
|
|
|
+ hosts: localhost
|
|
|
+ tasks:
|
|
|
+ - name: Include variable file
|
|
|
+ include_vars: test_vars/test_omnia_1.1_vars.yml
|
|
|
+ tags: TC_002
|
|
|
+
|
|
|
+ - name: Creating test inventory file for single node scenario
|
|
|
+ copy:
|
|
|
+ dest: "test_inventory.yml"
|
|
|
+ mode: '{{ file_permission }}'
|
|
|
+ content: |
|
|
|
+
|
|
|
+ [manager]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [compute]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [login_node]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [nfs_node]
|
|
|
+ tags: TC_002
|
|
|
+
|
|
|
+ - name: Check if omnia config file is encrypted
|
|
|
+ command: cat ../{{ config_filename }}
|
|
|
+ changed_when: false
|
|
|
+ register: config_content
|
|
|
+ no_log: True
|
|
|
+ tags: TC_002
|
|
|
+
|
|
|
+ - name: Decrpyt omnia_config.yml
|
|
|
+ command: >-
|
|
|
+ ansible-vault decrypt ../{{ config_filename }}
|
|
|
+ --vault-password-file ../{{ config_vaultname }}
|
|
|
+ when: "'$ANSIBLE_VAULT;' in config_content.stdout"
|
|
|
+ tags: TC_002
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_cni: ""'
|
|
|
+ replace: 'k8s_cni: "{{ k8s_cni_one }}"'
|
|
|
+ tags: TC_002
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'mariadb_password: ""'
|
|
|
+ replace: 'mariadb_password: "{{ db_passwd_invalid }}"'
|
|
|
+ tags: TC_002
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'login_node_required:'
|
|
|
+ replace: 'login_node_required: true'
|
|
|
+ tags: TC_002
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_pod_network_cidr: ""'
|
|
|
+ replace: 'k8s_pod_network_cidr: "{{ k8s_pod_network_cidr_other }}"'
|
|
|
+ tags: TC_002
|
|
|
+
|
|
|
+ - name: Run omnia.yml
|
|
|
+ command: ansible-playbook omnia.yml -i test/test_inventory.yml
|
|
|
+ failed_when: true
|
|
|
+ changed_when: false
|
|
|
+ register: db_error
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_002
|
|
|
+
|
|
|
+ - name: Validate mariadb password error
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - '" mariadb_password not given in correct format" not in db_error.stdout'
|
|
|
+ fail_msg: "{{ mariadb_password_error_fail_msg }}"
|
|
|
+ success_msg: "{{ mariadb_password_error_success_msg }}"
|
|
|
+ tags: TC_002
|
|
|
+
|
|
|
+ - name: Delete the inventory file
|
|
|
+ file:
|
|
|
+ state: absent
|
|
|
+ path: test_inventory.yml
|
|
|
+ tags: TC_002
|
|
|
+
|
|
|
+# Testcase OMNIA_1.1_US_CRD_TC_003
|
|
|
+# Execute omnia.yml with single node scenario (manager, compute,login,nfs node on same server)
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_003
|
|
|
+ hosts: localhost
|
|
|
+ tasks:
|
|
|
+ - name: Include variable file
|
|
|
+ include_vars: test_vars/test_omnia_1.1_vars.yml
|
|
|
+ tags: TC_003
|
|
|
+
|
|
|
+ - name: Creating inventory file for single node scenario
|
|
|
+ copy:
|
|
|
+ dest: "test_inventory.yml"
|
|
|
+ mode: '{{ file_permission }}'
|
|
|
+ content: |
|
|
|
+
|
|
|
+ [manager]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [compute]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [login_node]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [nfs_node]
|
|
|
+ tags: TC_003
|
|
|
+
|
|
|
+ - name: Check if omnia config file is encrypted
|
|
|
+ command: cat ../{{ config_filename }}
|
|
|
+ changed_when: false
|
|
|
+ register: config_content
|
|
|
+ no_log: True
|
|
|
+ tags: TC_003
|
|
|
+
|
|
|
+ - name: Decrpyt omnia_config.yml
|
|
|
+ command: >-
|
|
|
+ ansible-vault decrypt ../{{ config_filename }}
|
|
|
+ --vault-password-file ../{{ config_vaultname }}
|
|
|
+ when: "'$ANSIBLE_VAULT;' in config_content.stdout"
|
|
|
+ tags: TC_003
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_cni: ""'
|
|
|
+ replace: 'k8s_cni: "{{ k8s_cni_one }}"'
|
|
|
+ tags: TC_003
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'mariadb_password: ""'
|
|
|
+ replace: 'mariadb_password: "{{ db_passwd_invalid }}"'
|
|
|
+ tags: TC_003
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'login_node_required:'
|
|
|
+ replace: 'login_node_required: true'
|
|
|
+ tags: TC_003
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_pod_network_cidr: ""'
|
|
|
+ replace: 'k8s_pod_network_cidr: "{{ k8s_pod_network_cidr_other }}"'
|
|
|
+ tags: TC_003
|
|
|
+
|
|
|
+ - name: Run omnia.yml
|
|
|
+ command: ansible-playbook omnia.yml -i test/test_inventory.yml
|
|
|
+ failed_when: true
|
|
|
+ changed_when: false
|
|
|
+ register: db_error
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_003
|
|
|
+
|
|
|
+ - name: Validate mariadb password error
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - '" mariadb_password not given in correct format" not in db_error.stdout'
|
|
|
+ fail_msg: "{{ mariadb_password_error_fail_msg }}"
|
|
|
+ success_msg: "{{ mariadb_password_error_success_msg }}"
|
|
|
+ tags: TC_003
|
|
|
+
|
|
|
+ - name: Delete the inventory file
|
|
|
+ changed_when: false
|
|
|
+ file:
|
|
|
+ state: absent
|
|
|
+ path: test_inventory.yml
|
|
|
+ tags: TC_003
|
|
|
+
|
|
|
+#Testcase OMNIA_1.1_US_CRD_TC_004
|
|
|
+# Execute omnia.yml with separate servers for manager,compute,login,nfs node on new kubernetes version
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_004
|
|
|
+ hosts: localhost
|
|
|
+
|
|
|
+ tasks:
|
|
|
+ - name: Include variable file
|
|
|
+ include_vars: test_vars/test_omnia_1.1_vars.yml
|
|
|
+ tags: TC_004
|
|
|
+
|
|
|
+ - name: Creating test inventory
|
|
|
+ copy:
|
|
|
+ dest: "test_inventory.yml"
|
|
|
+ mode: '{{ file_permission }}'
|
|
|
+ content: |
|
|
|
+
|
|
|
+ [manager]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [compute]
|
|
|
+ {{ host2 }}
|
|
|
+
|
|
|
+ [login_node]
|
|
|
+ {{ host3 }}
|
|
|
+
|
|
|
+ [nfs_node]
|
|
|
+
|
|
|
+ tags: TC_004
|
|
|
+
|
|
|
+ - name: Check if omnia config file is encrypted
|
|
|
+ command: cat ../{{ config_filename }}
|
|
|
+ changed_when: false
|
|
|
+ register: config_content
|
|
|
+ no_log: True
|
|
|
+ tags: TC_004
|
|
|
+
|
|
|
+ - name: Decrpyt omnia_config.yml
|
|
|
+ command: >-
|
|
|
+ ansible-vault decrypt ../{{ config_filename }}
|
|
|
+ --vault-password-file ../{{ config_vaultname }}
|
|
|
+ when: "'$ANSIBLE_VAULT;' in config_content.stdout"
|
|
|
+ tags: TC_004
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_cni: ""'
|
|
|
+ replace: 'k8s_cni: "{{ k8s_cni_two }}"'
|
|
|
+ tags: TC_004
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'mariadb_password: ""'
|
|
|
+ replace: 'mariadb_password: "{{ db_passwd_complex }}"'
|
|
|
+ tags: TC_004
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'login_node_required:'
|
|
|
+ replace: 'login_node_required: true'
|
|
|
+ tags: TC_004
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_pod_network_cidr: ""'
|
|
|
+ replace: 'k8s_pod_network_cidr: "{{ k8s_pod_network_cidr_default }}"'
|
|
|
+ tags: TC_004
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_version: ""'
|
|
|
+ replace: 'k8s_version: "{{ k8s_new_version }}"'
|
|
|
+ tags: TC_004
|
|
|
+
|
|
|
+
|
|
|
+ - name: Execute omnia.yml
|
|
|
+ command: ansible-playbook omnia.yml -i test/test_inventory.yml
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_004
|
|
|
+
|
|
|
+ - name: Validate omnia.yml
|
|
|
+ command: ansible-playbook test_omnia_validation.yml -i test_inventory.yml
|
|
|
+ changed_when: false
|
|
|
+ tags: TC_004
|
|
|
+
|
|
|
+ - name: Delete the inventory file
|
|
|
+ file:
|
|
|
+ state: absent
|
|
|
+ path: test_inventory.yml
|
|
|
+ tags: TC_004
|
|
|
+
|
|
|
+#Testcase OMNIA_1.1_US_CRD_TC_007
|
|
|
+# Execute omnia.yml after redeploying the cluster
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_007
|
|
|
+ hosts: localhost
|
|
|
+
|
|
|
+ tasks:
|
|
|
+ - name: Execute omnia.yml with default input parameters
|
|
|
+ command: ansible-playbook omnia.yml -i inventory
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_007
|
|
|
+
|
|
|
+ - name: Re Execute omnia.yml
|
|
|
+ command: ansible-playbook omnia.yml -i inventory
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_007
|
|
|
+
|
|
|
+ - name: Validate omnia.yml
|
|
|
+ command: ansible-playbook test_omnia_validation.yml -i ../inventory
|
|
|
+ changed_when: false
|
|
|
+ tags: TC_007
|
|
|
+
|
|
|
+# Testcase OMNIA_1.1_US_CRD_TC_010
|
|
|
+# Execute omnia.yml with same server for manager and compute with slurm first and kubernetes later
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_010
|
|
|
+ hosts: localhost
|
|
|
+ tasks:
|
|
|
+ - name: Include variable file
|
|
|
+ include_vars: test_vars/test_omnia_1.1_vars.yml
|
|
|
+ tags: TC_010
|
|
|
+
|
|
|
+ - name: Creating test inventory file
|
|
|
+ copy:
|
|
|
+ dest: "test_inventory.yml"
|
|
|
+ mode: '{{ file_permission }}'
|
|
|
+ content: |
|
|
|
+
|
|
|
+ [manager]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [compute]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [login_node]
|
|
|
+ {{ host3 }}
|
|
|
+
|
|
|
+ [nfs_node]
|
|
|
+ tags: TC_010
|
|
|
+
|
|
|
+ - name: Check if omnia config file is encrypted
|
|
|
+ command: cat ../{{ config_filename }}
|
|
|
+ changed_when: false
|
|
|
+ register: config_content
|
|
|
+ no_log: True
|
|
|
+ tags: TC_010
|
|
|
+
|
|
|
+ - name: Decrpyt omnia_config.yml
|
|
|
+ command: >-
|
|
|
+ ansible-vault decrypt ../{{ config_filename }}
|
|
|
+ --vault-password-file ../{{ config_vaultname }}
|
|
|
+ when: "'$ANSIBLE_VAULT;' in config_content.stdout"
|
|
|
+ tags: TC_010
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_cni: ""'
|
|
|
+ replace: 'k8s_cni: "{{ k8s_cni_one }}"'
|
|
|
+ tags: TC_010
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'mariadb_password: ""'
|
|
|
+ replace: 'mariadb_password: "{{ db_passwd_default }}"'
|
|
|
+ tags: TC_010
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'login_node_required:'
|
|
|
+ replace: 'login_node_required: true'
|
|
|
+ tags: TC_010
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_pod_network_cidr: ""'
|
|
|
+ replace: 'k8s_pod_network_cidr: "{{ k8s_pod_network_cidr_other }}"'
|
|
|
+ tags: TC_010
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'ipa_admin_password: ""'
|
|
|
+ replace: 'ipa_admin_password: "{{ ipa_passwd_default }}"'
|
|
|
+ tags: TC_010
|
|
|
+
|
|
|
+ - name: Run omnia.yml
|
|
|
+ command: ansible-playbook omnia.yml -i test/test_inventory.yml --skip-tags kubernetes
|
|
|
+ failed_when: true
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_010
|
|
|
+
|
|
|
+ - name: Re Execute omnia.yml
|
|
|
+ command: ansible-playbook omnia.yml -i test/test_inventory.yml --skip-tags slurm,freeipa
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_010
|
|
|
+
|
|
|
+ - name: Validate omnia.yml
|
|
|
+ command: ansible-playbook test_omnia_validation.yml -i test_inventory.yml
|
|
|
+ changed_when: false
|
|
|
+ tags: TC_010
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+# Testcase OMNIA_1.1_US_CRD_TC_011
|
|
|
+# Execute omnia.yml with separate servers for manager,compute,login,nfs node with slurm first and kubernetes later
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_011
|
|
|
+ hosts: localhost
|
|
|
+ tasks:
|
|
|
+ - name: Include variable file
|
|
|
+ include_vars: test_vars/test_omnia_1.1_vars.yml
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+ - name: Creating inventory file for
|
|
|
+ copy:
|
|
|
+ dest: "test_inventory.yml"
|
|
|
+ mode: '{{ file_permission }}'
|
|
|
+ content: |
|
|
|
+
|
|
|
+ [manager]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [compute]
|
|
|
+ {{ host2 }}
|
|
|
+
|
|
|
+ [login_node]
|
|
|
+ {{ host3 }}
|
|
|
+
|
|
|
+ [nfs_node]
|
|
|
+ {{ host4 }}
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+ - name: Check if omnia config file is encrypted
|
|
|
+ command: cat ../{{ config_filename }}
|
|
|
+ changed_when: false
|
|
|
+ register: config_content
|
|
|
+ no_log: True
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+ - name: Decrpyt omnia_config.yml
|
|
|
+ command: >-
|
|
|
+ ansible-vault decrypt ../{{ config_filename }}
|
|
|
+ --vault-password-file ../{{ config_vaultname }}
|
|
|
+ when: "'$ANSIBLE_VAULT;' in config_content.stdout"
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_cni: ""'
|
|
|
+ replace: 'k8s_cni: "{{ k8s_cni_one }}"'
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'mariadb_password: ""'
|
|
|
+ replace: 'mariadb_password: "{{ db_passwd_default }}"'
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'login_node_required: '
|
|
|
+ replace: 'login_node_required: true'
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_pod_network_cidr: ""'
|
|
|
+ replace: 'k8s_pod_network_cidr: "{{ k8s_pod_network_cidr_other }}"'
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'ipa_admin_password: ""'
|
|
|
+ replace: 'ipa_admin_password: "{{ ipa_passwd_complex }}"'
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+ - name: Run omnia.yml
|
|
|
+ command: ansible-playbook omnia.yml -i test/test_inventory.yml --skip-tags kubernetes
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+ - name: Run omnia.yml
|
|
|
+ command: ansible-playbook omnia.yml -i test/test_inventory.yml --skip-tags slurm,freeipa
|
|
|
+ changed_when: false
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+ - name: Validate omnia.yml
|
|
|
+ command: ansible-playbook test_omnia_validation.yml -i test_inventory.yml
|
|
|
+ changed_when: false
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+ - name: Delete the inventory file
|
|
|
+ changed_when: false
|
|
|
+ file:
|
|
|
+ state: absent
|
|
|
+ path: test_inventory.yml
|
|
|
+ tags: TC_011
|
|
|
+
|
|
|
+# Testcase OMNIA_1.1_US_CRD_TC_012
|
|
|
+# Execute omnia.yml with separate servers for manager,compute,login,nfs node with slurm first and kubernetes later
|
|
|
+- name: OMNIA_1.1_US_CRD_TC_012
|
|
|
+ hosts: localhost
|
|
|
+ tasks:
|
|
|
+ - name: Include variable file
|
|
|
+ include_vars: test_vars/test_omnia_1.1_vars.yml
|
|
|
+ tags: TC_012
|
|
|
+
|
|
|
+ - name: Creating test inventory file
|
|
|
+ copy:
|
|
|
+ dest: "test_inventory.yml"
|
|
|
+ mode: '{{ file_permission }}'
|
|
|
+ content: |
|
|
|
+
|
|
|
+ [manager]
|
|
|
+ {{ host1 }}
|
|
|
+
|
|
|
+ [compute]
|
|
|
+ {{ host2 }}
|
|
|
+
|
|
|
+ [login_node]
|
|
|
+ {{ host3 }}
|
|
|
+
|
|
|
+ [nfs_node]
|
|
|
+ tags: TC_012
|
|
|
+
|
|
|
+ - name: Check if omnia config file is encrypted
|
|
|
+ command: cat ../{{ config_filename }}
|
|
|
+ changed_when: false
|
|
|
+ register: config_content
|
|
|
+ no_log: True
|
|
|
+ tags: TC_012
|
|
|
+
|
|
|
+ - name: Decrpyt omnia_config.yml
|
|
|
+ command: >-
|
|
|
+ ansible-vault decrypt ../{{ config_filename }}
|
|
|
+ --vault-password-file ../{{ config_vaultname }}
|
|
|
+ when: "'$ANSIBLE_VAULT;' in config_content.stdout"
|
|
|
+ tags: TC_012
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_cni: ""'
|
|
|
+ replace: 'k8s_cni: "{{ k8s_cni_two }}"'
|
|
|
+ tags: TC_012
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'mariadb_password: ""'
|
|
|
+ replace: 'mariadb_password: "{{ db_passwd_default }}"'
|
|
|
+ tags: TC_012
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'login_node_required:'
|
|
|
+ replace: 'login_node_required: false'
|
|
|
+ tags: TC_012
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'k8s_pod_network_cidr: ""'
|
|
|
+ replace: 'k8s_pod_network_cidr: "{{ k8s_pod_network_cidr_other }}"'
|
|
|
+ tags: TC_012
|
|
|
+
|
|
|
+ - name: Edit input parameters in omnia_config.yml
|
|
|
+ replace:
|
|
|
+ path: ../omnia_config.yml
|
|
|
+ regexp: 'ipa_admin_password: ""'
|
|
|
+ replace: 'ipa_admin_password: "{{ ipa_passwd_invalid }}"'
|
|
|
+ tags: TC_012
|
|
|
+
|
|
|
+ - name: Run omnia.yml
|
|
|
+ command: ansible-playbook omnia.yml -i test/test_inventory.yml --skip-tags kubernetes
|
|
|
+ failed_when: true
|
|
|
+ changed_when: false
|
|
|
+ register: ipa_error
|
|
|
+ args:
|
|
|
+ chdir: ../
|
|
|
+ tags: TC_012
|
|
|
+
|
|
|
+ - name: Validate ipa admin password error
|
|
|
+ assert:
|
|
|
+ that:
|
|
|
+ - '" Incorrect format provided for ipa_admin_password" not in ipa_error.stdout'
|
|
|
+ fail_msg: "{{ ipa_password_error_fail_msg }}"
|
|
|
+ success_msg: "{{ ipa_password_error_success_msg }}"
|
|
|
+ tags: TC_012
|
|
|
+
|
|
|
+ - name: Delete the inventory file
|
|
|
+ file:
|
|
|
+ state: absent
|
|
|
+ path: test_inventory.yml
|
|
|
+ tags: TC_012
|