1--- 2stage: Configure 3group: Configure 4info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments 5--- 6 7# Prepare Auto DevOps for deployment **(FREE)** 8 9If you enable Auto DevOps without setting the base domain and deployment 10strategy, GitLab can't deploy your application directly. Therefore, we 11recommend that you prepare them before enabling Auto DevOps. 12 13## Deployment strategy 14 15> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/38542) in GitLab 11.0. 16 17When using Auto DevOps to deploy your applications, choose the 18[continuous deployment strategy](../../ci/introduction/index.md) 19that works best for your needs: 20 21| Deployment strategy | Setup | Methodology | 22|--|--|--| 23| **Continuous deployment to production** | Enables [Auto Deploy](stages.md#auto-deploy) with the default branch continuously deployed to production. | Continuous deployment to production.| 24| **Continuous deployment to production using timed incremental rollout** | Sets the [`INCREMENTAL_ROLLOUT_MODE`](customize.md#timed-incremental-rollout-to-production) variable to `timed`. | Continuously deploy to production with a 5 minutes delay between rollouts. | 25| **Automatic deployment to staging, manual deployment to production** | Sets [`STAGING_ENABLED`](customize.md#deploy-policy-for-staging-and-production-environments) to `1` and [`INCREMENTAL_ROLLOUT_MODE`](customize.md#incremental-rollout-to-production) to `manual`. | The default branch is continuously deployed to staging and continuously delivered to production. | 26 27You can choose the deployment method when enabling Auto DevOps or later: 28 291. In GitLab, go to your project's **Settings > CI/CD > Auto DevOps**. 301. Choose the deployment strategy. 311. Select **Save changes**. 32 33NOTE: 34Use the [blue-green deployment](../../ci/environments/incremental_rollouts.md#blue-green-deployment) technique 35to minimize downtime and risk. 36 37## Auto DevOps base domain 38 39The Auto DevOps base domain is required to use 40[Auto Review Apps](stages.md#auto-review-apps), [Auto Deploy](stages.md#auto-deploy), and 41[Auto Monitoring](stages.md#auto-monitoring). 42 43To define the base domain, either: 44 45- In the project, group, or instance level: go to your cluster settings and add it there. 46- In the project or group level: add it as an environment variable: `KUBE_INGRESS_BASE_DOMAIN`. 47- In the instance level: go to **Menu > Admin > Settings > CI/CD > Continuous Integration and Delivery** and add it there. 48 49The base domain variable `KUBE_INGRESS_BASE_DOMAIN` follows the same order of precedence 50as other environment [variables](../../ci/variables/index.md#cicd-variable-precedence). 51 52If you don't specify the base domain in your projects and groups, Auto DevOps uses the instance-wide **Auto DevOps domain**. 53 54Auto DevOps requires a wildcard DNS A record matching the base domain(s). For 55a base domain of `example.com`, you'd need a DNS entry like: 56 57```plaintext 58*.example.com 3600 A 1.2.3.4 59``` 60 61In this case, the deployed applications are served from `example.com`, and `1.2.3.4` 62is the IP address of your load balancer, generally NGINX ([see requirements](requirements.md)). 63Setting up the DNS record is beyond the scope of this document; check with your 64DNS provider for information. 65 66Alternatively, you can use free public services like [nip.io](https://nip.io) 67which provide automatic wildcard DNS without any configuration. For [nip.io](https://nip.io), 68set the Auto DevOps base domain to `1.2.3.4.nip.io`. 69 70After completing setup, all requests hit the load balancer, which routes requests 71to the Kubernetes pods running your application. 72