Discussion: Orchestrator CLI Tool Language Choice
Overview Post Minimum Viable Product
Now that the minimum viable product has been delivered in #30 (closed), we can discuss how to proceed.
Challenges Logged Using Shell
- maintaining configurations and reading JSON is problematic
- feeding an ERB template from shell complicates matters when arrays are involved
- functional tests are somewhat difficult because so much functionality lives outside of shell (
jq
,erb
)
Discussion Points
The Orchestrator has three specific modules:
- Provision - which invokes terraform and creates nodes that will be configured
- Assemble - collects information about the site's nodes and user configuration and can make that information available to the Orchestrate module
- Orchestrate - the module that applies initial or upgrade configuration to GitLab site(s)
There is some overlap with discussions that should happen in #31 (closed) surrounding the user experience.
Notable interactions to consider:
- invoking Terraform
- invoking Ansible
Original Description
During our review of gitlab-org/distribution/gitlab-provisioner!50 (merged) , @ibaum , @dustinmm80 and I agree that shell may not be the best way to proceed forward with the orchestrator.
We need to discuss this further after initial impressions are gathered from the minimum viable product release.
Edited by Robert Marshall