Add deploy strategies to Auto DevOps settings
We already provide some ways for people to control the configuration of their application. With Auto DevOps, you can use our default Helm chart, or you can provide your own. Auto DevOps listens to variables like
PRODUCTION_REPLICAS to set the number of pods to spin up when deploying to production. We should explore more configuration options, and make these first-class parts of GitLab.
Add an Application Control Panel to project settings to tune the behavior of the application. Choices will work for Auto DevOps out of the box, but could be leveraged by any
.gitlab-ci.yml file that uses the same variables. This should be mentioned in the panel, linking to documentation that explains what the settings are for.
The settings should be in the new foldable section introduced in https://gitlab.com/gitlab-org/gitlab-ce/issues/43466.
In this iteration, we need radio buttons showing two possible options as deploy strategies:
- Continuous deployment to production
- Automatic deployment to staging, manual deployment to production
- If you choose "Continuous deployment to production" (default),
INCREMENTAL_ROLLOUT_ENABLEDvariables will be unset.
- If you choose "Automatic deployment to staging, manual deployment to production",
INCREMENTAL_ROLLOUT_ENABLEDwill be set.
- "Domain" and "Deployment strategy" always shows up if "Enable Auto DevOps" or "Instance default" is on. Otherwise, they are collapsed. The
- In "Deployment strategy" section, it always has "Deployment strategy needs a domain name to work correctly." message to let users know it cannot work if there is no domain name.
|Enable Auto DevOps / Instance default||Disable Auto DevOps|
Note: We won't place any "description" text below the deployment options as they are pretty self explanatory. The help ? icon should link as follows:
Continuous deployment to production -> https://docs.gitlab.com/ee/topics/autodevops/#auto-deploy
Automatic deployment to staging, manual deployment to production -> https://docs.gitlab.com/ce/ci/environments.html#manually-deploying-to-environments