Story #7005
Updated by mdepaulo@redhat.com over 4 years ago
We should restructure Pulp Installer's Ansible roles:
* pulp (common components and pulp-api. pulp-api is actually a boolean)
* pulp_redis (depends: pulp)
* pulp_database (depends: pulp) (Has option to install db via external role. Always runs migrations.)
* pulp_content (undeclared dep: pulp)
* pulp_resource_manager (depends: pulp_redis, undeclared dep: pulp)
* pulp_workers (depends: pulp_redis, undeclared dep: pulp)
* pulp_webserver (depends: pulp)
* pulp_devel (depends: pulp) (optional)
Where users are supposed to run this role list:
```
- pulp_database
- pulp_workers
- pulp_resource_manager
- pulp_webserver
- pulp_content
- pulp_devel # (optional)
```
Into the following:
* **pulp_common** (common components) (calls prereqs roles)
* pulp_redis
* pulp_database (Has option to install db via external role. Always runs migrations.)
* **pulp_api** (depends: pulp_common)
* pulp_content (depends: pulp_common)
* pulp_resource_manager (depends: pulp_common)
* pulp_workers (undeclared dep: pulp)
* pulp_webserver (depends: pulp)
* pulp_devel (depends: pulp) (optional)
* **pulp_complete**: (depends: everything except pulp_devel)
So then users will just run:
```
* pulp_complete
* pulp_devel # (optional)
```
Over time, we can consider adding other meta roles with fewer components. Like one for just the pulp's own services themselves.
Users can still emulate the old behavior, but with longer runtime on dynamic include, by running a slightly different list:
```
- pulp_redis** # (New)
- pulp_database
- pulp_workers
- pulp_resource_manager
- pulp_webserver
- pulp_content
- pulp_api # (New)
- pulp_devel # (optional)
```
Also, if we ever modify the roles again, users can still just run pulp_complete.
The molecule CI will be updated so that the "static" scenarios will install "pulp_complete"m, while the "dynamic" scenarios will specify the several roles.