Make Auto DevOps configuration driven by variables
Description
Auto DevOps is such a great feature because the provided configuration is good enough to fit with almost any project. That is true, and it is awesome for onboarding as you don't need to do any action to have pipelines working, but it may not be enough for all the requirements and for big processes.
Is it also true that, having it available as a .gitlab-ci.yml
template, you can make the Auto DevOps configuration "explicit" and improve it in order to respect your constraints. But it is also true that doing that way you will not automatically benefit from future improvements released in new releases, as your explicit file will not upgrade.
If the Auto DevOps configuration relies on environment variables for altering some steps and provide alternatives, it will be simpler for people to adapt it by setting secret variables in their projects instead of making it explicit. With new versions, applications will use the new template.
Obviously variables have defaults in the configuration that are the suggested flow/value, so specifying at group/project level is totally optional.
It is even more interesting if we will allow this to happen also with group-level variables, so an organization (group) can define a customized template that will automatically work for any project without other intervention.
Proposal
Implement some "alternatives" in the Auto DevOps config file that relies on secret variables.
- Drive Auto DevOps deployment strategies with variables: &106 (closed)
- Drive Auto DevOps database support with variables: &127
- Enable/Disable Auto DevOps jobs: https://gitlab.com/gitlab-org/gitlab-ee/issues/3586
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.