acef3bf37b
The option allows user to customize the node the role will be executed on. Change-Id: I3ff7676741cb4f2432bc6b80bd29907d1fb633e0
97 lines
8.2 KiB
Markdown
97 lines
8.2 KiB
Markdown
# ansible-role-refstack-client
|
|
|
|
## About
|
|
It's an ansible playbook for running [refstack-client](https://opendev.org/openinfra/refstack-client).
|
|
It can be useful in automation where this role can be included in other playbooks.
|
|
The role is importable to [Infrared](https://github.com/redhat-openstack/infrared.git) as an infrared
|
|
plugin, so right after Infrared deploys an environment, this role can be executed to ensure the
|
|
deployment is working by passing refstack tests.
|
|
|
|
## Required Role Variables
|
|
| Variable name | Required | Default | Type | Description |
|
|
|------------------------------|----------|---------------------------------------------------------------------|--------|---------------------------------------------------------------------------------------------------------|
|
|
| private_key_path | if upload_results is True | None | String | Results are uploaded to the corresponding account. |
|
|
| source_admin_credentials | only if accounts_path not defined | None | String | File or command to be sourced for admin credentials which will be used for accounts.yaml generation. |
|
|
| source_credentials | True | None | String | File or command to be sourced: keystonerc_demo/openrc demo demo. These creds will be used to run refstack tests.|
|
|
|
|
## Optional Role Variables
|
|
|
|
| Variable name | Required | Default | Type | Description |
|
|
|------------------------------|----------|---------------------------------------------------------------------|--------|---------------------------------------------------------------------------------------------------------|
|
|
| accounts_path | False | None | String | Path to a tempest accounts file which will be used in tempest.conf generation step. |
|
|
| additional_tempestconf_params| False | None | String | Additional arguments to pass for discover-tempest-config tool. |
|
|
| deployer_input | False | None | String | Pat to a deployer input file which will be used in tempest.conf generation step. |
|
|
| dest_dir * | False | pwd | String | Local directory where the artifact files will be stored. |
|
|
| download_artifacts | False | False | Bool | Whether artifacts should be downloaded to the host or not. They will be downloaded to dest_dir location.|
|
|
| guideline | False | 2021.11 | String | Specific refstack guideline. |
|
|
| openstack_node | False | tester | String | OpenStack node ansible-role-refstack-client will be executed on. |
|
|
| private_key_path_src | False | None | String | If defined, the key defined by the param is copied to the targeted machine to private_key_path location. Variable contains either a local path (the path on a machine, the playbook is executed from) or link to remote location from which the key will be downloaded.|
|
|
| refstack_client_source | False | ~/.refstack-client | String | Destination where refstack-client will be cloned only if the dir doesn't exist or it's empty, otherwise it will be used as is.|
|
|
| tempestconf_source | False | None | String | A path to python-tempestconf's source. If not defined, refstack-client's default is applied. |
|
|
| refstack_client_version | False | HEAD | String | Version of refstack-client cloned from git. |
|
|
| server | False | https://refstack.openstack.org/api | String | Server url where the results will be uploaded to if upload_results is True. |
|
|
| refstack_target_programs | False | ['platform', 'compute', 'object', 'dns', 'orchestration', 'shared_file_system'] | List | The tests within the specified target programs will be executed. |
|
|
| tempest_account_concurrency | False | 3 | Int | A concurrency accounts.yaml file is generated with by tempest. |
|
|
| tempest_config_path | False | None | String | Destination of tempest configuration file to be used for running refstack tests. |
|
|
| tempest_tag | False | refstack-client's default | String | Tempest will be cloned and checkouted to this specific tag. |
|
|
| test_list | False | None | String | A path or an URL to a test list text file containing specific test cases. |
|
|
| upload_results | False | False | Bool | Whether results should be uploaded to the server or not. |
|
|
| url_cirros_image | False | https://download.cirros-cloud.net/0.5.2/cirros-0.5.2-x86_64-disk.img| String | A path or a link to a cirros image. |
|
|
|
|
**\* it's a local path, the path on a machine, the playbook is executed from**
|
|
|
|
## Example
|
|
To run the role from the repository:
|
|
```
|
|
$ git clone https://opendev.org/openinfra/ansible-role-refstack-client.git
|
|
$ cd ansible-role-refstack-client
|
|
$ mkdir roles && ln -s $(pwd) roles/ansible-role-refstack-client
|
|
```
|
|
Then create a `playbook.yaml`:
|
|
```
|
|
---
|
|
- hosts: localhost
|
|
vars:
|
|
source_credentials: ~/overcloudrc
|
|
source_admin_credentials: ~/overcloudrc_admin
|
|
upload_results: True
|
|
private_key_path: ~/.ssh/id_rsa
|
|
roles:
|
|
- ansible-role-refstack-client
|
|
```
|
|
And run it:
|
|
```
|
|
$ ansible-playbook playbook.yaml
|
|
```
|
|
|
|
|
|
## Usage with Infrared
|
|
|
|
Run the following steps to run the plugin:
|
|
1. Install infrared and add ansible-role-refstack-client plugin by providing the url to this repo:
|
|
```
|
|
(infrared)$ ir plugin add https://opendev.org/openinfra/ansible-role-refstack-client.git --src-path infrared_plugin
|
|
```
|
|
2. You can verify that the plugin is imported by:
|
|
```
|
|
(infrared)$ ir plugin list
|
|
```
|
|
4. Run the plugin:
|
|
```
|
|
(infrared)$ ir ansible-role-refstack-client
|
|
```
|
|
|
|
### Example
|
|
```
|
|
(infrared)$ ir ansible-role-refstack-client \
|
|
--source_credentials /home/stack/overcloudrc \
|
|
--source_admin_credentials /home/stack/overcloudrc \
|
|
--deployer_input /home/stack/ir-tempest-deployer-input.conf \
|
|
--upload_results true \
|
|
--private_key_path /home/stack/refstack_key \
|
|
--private_key_path_src $(pwd)/refstack_key
|
|
```
|
|
|
|
In the example above `tempest_config_path` is not defined, so `source_admin_credentials` is a required parameter
|
|
because the role will try to generate an `accounts.yaml` before generating a `tempest.conf`.
|