This command line utility enables the use of git feature branches on top of the default ManageIQ Automate Export/Import scripts.
ManageIQ handles multiple code trees (Automate Domains) using a priority based lookup, this limits the codebase to one master
and one shared develop
branch for all developers.
At the same time it is common for ManageIQ deployments to have a shared DEV environment, as custom Automate Methods often depend on:
- External services called via REST
- Additional permissions (e.g. firewall clearing, administrative accounts, ...)
miq-flow uses the version history in git to enable "feature-domains", which avoid the lookup problem (Details).
- Multiple people can work on the same appliance at the same time (but not on the same method)
- Promoting code is no longer a all-or-nothing decision
- Pull-Requests and Commit-Squashing work the way you expect them to work
- Code is cloned from a remote repository, if it is not already on the appliance
- Manual changes on the WebUI are still possible (Details)
- Download and install the
miq_flow
gem from GitHub - Configure miq-flow:
- Use CLI parameter (see
miq-flow help
) or environment variables - Download and edit the configuration file:
curl -o ~/.miqflow.yaml https://raw.githubusercontent.com/ThomasBuchinger/miq-flow/master/config.yaml
- Use CLI parameter (see
- Run
./bin/miq-flow deploy BRANCH
with the correct--provider
option:local
: This provider assumes running on a ManageIQ Appliance and uses the evm:automate:import rake task (you want to use this one)noop
: Preview what the miq-flow would do, without modifying ManageIQ
For additional instructions see the full installation guide or run miq-flow from source
See miq-flow help
for details. Basic Commands are:
- branch list - lists a summary for each branch in git
- branch inspect BRANCH - show details of a given branch
- branch diff BRANCH - (preview) show changes in ManageIQ
- domain list - lists Automate Domains found in ManageIQ
- deploy BRANCH - deploys the code in a feature-branch
- miq-flow assumes to run on a ManageIQ appliance, since there is no way to remotely import Automate Domains
- Make sure you have Rugged, RestClient and Thor installed (it is on the ManageIQ Appliances).
- miq-flow may checkout a different branch, when used with a local repository