Provide a common Validation Framework inside python-tripleoclient
Track work and changes in order to provide a common, unified validation framework inside tripleoclient. It will help validating environments prior a deploy (both undercloud and overcloud), and prior any update/upgrade of said environments.
Blueprint information
- Status:
- Complete
- Approver:
- Emilien Macchi
- Priority:
- High
- Drafter:
- Cédric Jeanneret
- Direction:
- Needs approval
- Assignee:
- Cédric Jeanneret
- Definition:
- Approved
- Series goal:
- Accepted for train
- Implementation:
- Implemented
- Milestone target:
- train-3
- Started by
- Alex Schultz
- Completed by
- Alex Schultz
Related branches
Related bugs
Sprints
Whiteboard
[2019-04-15] (aschultz) As this is not completely implemented, moving to Train.
Trello Board: https:/
Gerrit topic: https:/
General work items description:
* Allow executing TripleO validations using pure Ansible from the Undercloud, this is because we should not rely on Mistral to run the validations in the Undercloud.
!! TODO
Main commands:
* Allow running any of the installed validations
openstack validator run <OPTIONS>
* Show all the installed validations, displaying the description parameter for each one.
openstack validator list-validations <OPTIONS>
* Run a wide system self-check in order to ensure it has the proper services to run the other validations (ansible is working, playbooks are valid, Mistral is running and in good shape, and so on):
openstack validator self-check <OPTIONS>
Options
* The framework should allow selecting between Mistral and Ansible for running the validations with an additional set of options:
openstack validator [--use-ansible] Default: --use-ansible (we're in CLI)
* Provide options for running the validations:
openstack validator run [--group_validation | --validations | --validation]
* Allow running custom self-maintained validations:
openstack validator run [--extra-playbooks]
* Provide a method to run all Overcloud or Undercloud validations ***This might not be needed as the validations itself are targeted.
openstack validator run --overcloud
* Select the output style for any of the CLI commands: --format [json | nagios | table] Default: json
Storage/Logging
* Just like mistral keeps a record of workflow executions, the framework should log results of validation runs in a log file or some other (permanent? ephemeral?) storage system.
Documentation
* Generate a docs section with examples and how the validations are and should be executed from this new framework
!! Later enhancements
* Run a minimal report giving information about the system, this can provide information like the OpenStack version running and i.e. if the deployment is containerized or not, also, the current services status.
openstack validator get-report <OPTIONS>
* Mistral support: --use-mistral (maybe implemented earlier than thought)
Addressed by: https:/
Validation Framework specifications
Gerrit topic: https:/
Addressed by: https:/
Amend Validation Framework Spec
Gerrit topic: https:/
Addressed by: https:/
Add new CLI option openstack tripleo validate list
Gerrit topic: https:/
Addressed by: https:/
Add missing queue_name input parameter for listing validations
Addressed by: https:/
Add new CLI option openstack tripleo validate run
Addressed by: https:/
Migrating Undercloud playbooks to their own Ansible Role
Addressed by: https:/
Add missing queue_name input parameter for listing validations
Addressed by: https:/
Add unit tests for running and listing validations from the CLI
Addressed by: https:/
Add dhcp-validations role
Addressed by: https:/
Add haproxy role
Addressed by: https:/
Add ovs-dpdk-pmd
Addressed by: https:/
Add pacemaker-status role
Addressed by: https:/
Add dns role
Addressed by: https:/
Add repos validations role.
Addressed by: https:/
Add ceilometerdb-size role
Addressed by: https:/
Add ntpstat role
Addressed by: https:/
Add openshift-
Addressed by: https:/
Add rabbitmq-limits role
Addressed by: https:/
Add nova-event-callback role
Addressed by: https:/
Add mysql-open-
Addressed by: https:/
Add ceph role
Addressed by: https:/
Add xfs-check-ftype role
Addressed by: https:/
Add advanced-
Addressed by: https:/
Add no-op-firewall-
Addressed by: https:/
Add controller-token role
Addressed by: https:/
Add controller-ulimits role
Addressed by: https:/
Add ctlplane-ip-range role
Addressed by: https:/
Add lookup_plugins into validation-
Addressed by: https:/
Add node-disks role
Addressed by: https:/
Add node-health role
Addressed by: https:/
Add network-environment role
Addressed by: https:/
Rename undercloud-
Addressed by: https:/
Add default-node-count role
Addressed by: https:/
Add switch-vlans role
Addressed by: https:/
Add check-latest-
Addressed by: https:/
Add check-network-
Addressed by: https:/
Add collect-
Addressed by: https:/
Add deployment-images role
Addressed by: https:/
Add stack-health role
Addressed by: https:/
Add openstack-endpoints role
Addressed by: https:/
Add ironic-
Addressed by: https:/
Add stonith-exists role
Addressed by: https:/
Add containerized-
Addressed by: https:/
Allow run_update_
Gerrit topic: https:/
Addressed by: https:/
Make validation inputs configurable via Mistral
Addressed by: https:/
Add container_cli used for the Overcloud to the Inventory
Addressed by: https:/
Adding support for the new validation framework
Addressed by: https:/
[DNM] Get validations playbooks from playbook dir
Addressed by: https:/
Add nova-status Ansible role
Addressed by: https:/
[WIP] Update tripleo-validations documentation
Addressed by: https:/
Use 'DEFAULT_
Addressed by: https:/
Deletes validations directory
Addressed by: https:/
Clean up some old roles dependencies.
Addressed by: https:/
Fix Jinja2's default filter usage
Gerrit topic: https:/
Addressed by: https:/
Fix Jinja2's default filter usage
Addressed by: https:/
Adds roles support in the script generating the validations doc.
Addressed by: https:/
Use 'DEFAULT_
Addressed by: https:/
Get validations playbooks from playbooks directory
Addressed by: https:/
Get validations playbooks from playbooks directory
Addressed by: https:/
Deletes validations directory
Addressed by: https:/
TripleO documentation update for Validations
Addressed by: https:/
Add nova-status Ansible role
Addressed by: https:/
Add collect-
Addressed by: https:/
Clean up some old roles dependencies.
Addressed by: https:/
Remove Neutron LBaaS
Addressed by: https:/
Allow run_update_
Addressed by: https:/
Allow run_update_
Addressed by: https:/
Add nova-status Ansible role
Addressed by: https:/
Allow run_update_
Addressed by: https:/
Add log_path_dir parameter
Addressed by: https:/
Allow running validations by name using Ansible by default.
Addressed by: https:/
Allow running validations by group using Ansible directly
Addressed by: https:/
Add log_path_dir parameter
Addressed by: https:/
Get all the available Ansible variables for each validations
Addressed by: https:/
Add support for running validations through ansible-playbook
Addressed by: https:/
Processing available Ansible variables as 'parameter' not as 'metadata'
Addressed by: https:/
Renaming 'Metadata' column by 'Parameters'
Addressed by: https:/
Add extra_vars parameter to run_ansible_
Addressed by: https:/
Allow running validations by name using Ansible by default.
Addressed by: https:/
Allow running validations by group using Ansible by default
Addressed by: https:/
[WIP] Allow running validations with custom extra_args
Addressed by: https:/
[WIP] Add --parameters argument to get only the variables
Addressed by: https:/
TripleO documentation update for Validations
Addressed by: https:/
Get all the available Ansible variables for each validations
Addressed by: https:/
Processing available Ansible variables as 'parameters' not as 'metadata'
Addressed by: https:/
Improve running prep validations using Ansible documentation
Addressed by: https:/
Add plan parameter to run_ansible_
Addressed by: https:/
Allow to pass "plan" name to tripleo-
Addressed by: https:/
Don't use local connection by default for the validations
Addressed by: https:/
Use static inventory YAML file for saving execution time
Addressed by: https:/
Renaming 'Metadata' column by 'Parameters' when listing validations
Addressed by: https:/
Adding new role automation with Ansible
Addressed by: https:/
[WIP] Add autodocumentation for roles and library
Addressed by: https:/
Add gathering_policy parameter to run_ansible_
Addressed by: https:/
Add extra_vars parameter to run_ansible_
Addressed by: https:/
Allow running validations with custom extra variables
Addressed by: https:/
Add --parameters and --create-vars-file arguments to the list subcommand
Addressed by: https:/
Add plan parameter to run_ansible_
Addressed by: https:/
Don't use local connection by default for the validations
Addressed by: https:/
Use static inventory YAML file for saving execution time
Addressed by: https:/
Add gathering_policy parameter to run_ansible_
Addressed by: https:/
Adding new role automation with Ansible
Addressed by: https:/
Exit listing validations with a proper return code
Addressed by: https:/
Exit listing validations with a proper return code
Addressed by: https:/
Exit running validations with a proper return code
Addressed by: https:/
Fix tripleo-validations documentation page URL