Make Auto DevOps configuration driven by variables
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.
Implement some "alternatives" in the Auto DevOps config file that relies on secret variables.
- manual/automatic deployment to production
deployment to staging
Enable/disable canaries: #38550
skip/enable optional stages