diff options
Diffstat (limited to 'deployment/playbooks/generate-tests-config.yaml')
-rw-r--r-- | deployment/playbooks/generate-tests-config.yaml | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/deployment/playbooks/generate-tests-config.yaml b/deployment/playbooks/generate-tests-config.yaml deleted file mode 100644 index a4f77f9f..00000000 --- a/deployment/playbooks/generate-tests-config.yaml +++ /dev/null @@ -1,140 +0,0 @@ -# Run this playbook this way: -# -# $ tox -e ocp3.11 -- ansible-playbook -i ocp-master-node-hostname-or-ip, \ -# playbooks/generate-tests-config.yaml \ -# -e output_filepath=tests-config.yaml \ -# -e additional_devices=/dev/sdf -# -# Supported vars: -# - output_filepath: optional. Defines path for an output tests config file. -# - additional_devices: optional. Device names like "/dev/sdf" separated by -# comma. Should be bare devices which can be attached to a Heketi cluster. -# If it is not specified or empty, then appropriate test cases will be -# skipped. -# - master_ip: optional. Will be used as master node IP address if provided. -# -# Requirements: -# - 'yedit' module should be enabled. It will be enabled running this playbook -# via 'tox' command. -# - playbook should run only on one host - OpenShift master node. -# -# Notes: -# - tox's env name can be any of the following: -# 'ocp3.6', 'ocp3.7', 'ocp3.9', 'ocp3.10' or 'ocp3.11'. The criterion is -# to have 'yedit' module enabled. Which is enabled in any of those envs. - ---- -- hosts: all[0] - gather_facts: no - tasks: - - name: Read full hostname of the master node - shell: "hostname -f" - register: master_hostname_raw - - name: Init vars - set_fact: - master_hostname: "{{ master_hostname_raw.stdout.strip() }}" - master_ip: "{{ master_ip | default(hostvars.keys()[0]) }}" - output_filepath: "{{ - output_filepath | default('../tests-config.yaml') }}" - additional_devices_list: [] - - name: Process specified additional devices - set_fact: - additional_devices_list: "{{ additional_devices_list + [item] }}" - with_items: "{{ (additional_devices | default('')).split(',') }}" - when: item.strip() != '' - - - name: Read namespace of a Heketi deployment config - shell: "oc get dc --all-namespaces | grep -e heketi | grep -v registry | awk '{ print $1}'" - register: heketi_namespace_raw - - name: Save namespace name in a separate var - set_fact: - heketi_namespace: "{{ heketi_namespace_raw.stdout.strip() }}" - - name: Read Heketi dc name - shell: "oc get dc -n {{ heketi_namespace - }} | grep heketi | awk '{ print $1}'" - register: heketi_dc_name_raw - - name: Read Heketi svc name - shell: "oc get svc -n {{ heketi_namespace - }} | grep -e heketi | grep -v heketi-db | awk '{ print $1}'" - register: heketi_svc_name_raw - - name: Save Heketi DC and SVC names in separate vars - set_fact: - heketi_dc_name: "{{ heketi_dc_name_raw.stdout.strip() }}" - heketi_svc_name: "{{ heketi_svc_name_raw.stdout.strip() }}" - - name: Read Heketi service IP address - shell: "oc get svc {{ heketi_svc_name }} -n {{ heketi_namespace - }} -o=custom-columns=:.spec.clusterIP --no-headers" - register: heketi_ip_raw - - name: Read Heketi admin's secret - shell: oc get dc -n {{ heketi_namespace }} {{ heketi_dc_name - }} -o jsonpath='{.spec.template.spec.containers[0].env[?(@.name== - "HEKETI_ADMIN_KEY")].value}' - register: heketi_admin_secret_raw - - name: Save Heketi admin secret to a var - set_fact: - heketi_admin_secret: "{{ heketi_admin_secret_raw.stdout.strip() }}" - - name: Read Gluster nodes addresses - shell: "heketi-cli --server=http://{{ - heketi_ip_raw.stdout.strip() }}:8080 --user=admin --secret={{ - heketi_admin_secret }} topology info --json | - python -c \"from __future__ import print_function; import sys, json; - topology = json.loads(sys.stdin.readlines()[0]); - ips = [(n['hostnames']['manage'][0], n['hostnames']['storage'][0]) - for n in topology['clusters'][0]['nodes']]; - [print(ip[0], ip[1]) for ip in ips]\"" - register: gluster_nodes_addresses_raw - - name: Process gluster data and save it to a var - set_fact: - gluster_servers_data: "{{ gluster_servers_data | default({}) | combine( - {item.split(' ')[1]: { - 'manage': item.split(' ')[0], 'storage': item.split(' ')[1], - 'additional_devices': additional_devices_list, - }} - )}}" - with_items: "{{ gluster_nodes_addresses_raw.stdout_lines }}" - - - name: Save all the calculated data to the tests config file - delegate_to: localhost - connection: local - yedit: - src: "{{ output_filepath }}" - state: present - backup: false - edits: - - key: common - value: - stop_on_first_failure: false - - key: gluster_servers - value: "{{ gluster_servers_data }}" - - key: ocp_servers.client - value: "{{ {master_ip: {'hostname': master_hostname}} }}" - - key: ocp_servers.master - value: "{{ {master_ip: {'hostname': master_hostname}} }}" - - key: ocp_servers.nodes - value: {} - - key: openshift.storage_project_name - value: "{{ heketi_namespace }}" - - key: openshift.dynamic_provisioning.storage_classes.block_storage_class - value: - chapauthenabled: "true" - hacount: "3" - provisioner: "gluster.org/glusterblock" - restsecretnamespace: "{{ heketi_namespace }}" - resturl: "http://{{ master_ip }}:8080" - restuser: "admin" - volumenameprefix: "autotests-block" - - key: openshift.dynamic_provisioning.storage_classes.file_storage_class - value: - provisioner: "kubernetes.io/glusterfs" - resturl: "http://{{ master_ip }}:8080" - restuser: "admin" - secretnamespace: "{{ heketi_namespace }}" - volumenameprefix: "autotests-file" - - key: openshift.heketi_config - value: - heketi_cli_key: "{{ heketi_admin_secret }}" - heketi_cli_user: "admin" - heketi_client_node: "{{ master_ip }}" - heketi_dc_name: "{{ heketi_dc_name }}" - heketi_server_url: "http://{{ master_ip }}:8080" - heketi_service_name: "{{ heketi_svc_name }}" |