Open
Description
Currently ManageIQ has two embedded automation managers: Embedded Ansible and Embedded Workflows. These are both EmbeddedAutomationManager types but the UI was originally designed with embedded_ansible as a separate / standalone menu-item.
We are looking at adding an additional embedded provider, Embedded Terraform.
As we add more of these it becomes more and more unwieldy to manage each of them separately. It is highly likely that an organization will have repositories / credentials that are common across the three and currently these have to be added to each embedded provider separately.
There are two high-level efforts, core and UI
UI
- Refactor the current controllers and menu-items to not be "Embedded Ansible" or "Embedded Workflows" specific, but rather generic Automation Managers
- Allow management of Git Repositories separate from ConfigurationScriptSource (allow one git repo to have playbooks, ASLs, terraform scripts, etc...)
Core
- Group current embedded automation managers under a "parent"
ManageIQ::Providers::EmbeddedAutomationManager
- Allow credentials to be shared across child managers
- Allow for multiple configuration-script-sources per git repo (might already be possible)
- Allow for directory backed configuration-script-sources for built-in automation scripts