doc/topics/autodevops/multiple_clusters_auto_devops.md
{{< details >}}
{{< /details >}}
When using Auto DevOps, you can deploy different environments to different Kubernetes clusters.
The Deploy Job template used by Auto DevOps defines three environment names:
review/ (every environment starting with review/)stagingproductionThese environments are tied to jobs using Auto Deploy, so they must have different deployment domains. You must define separate KUBE_CONTEXT and KUBE_INGRESS_BASE_DOMAIN variables for each of the three environments.
To deploy your environments to different Kubernetes clusters:
KUBE_CONTEXT variable for each environment. The value must point to the agent of the relevant cluster.KUBE_INGRESS_BASE_DOMAIN. You must configure the base domain for each environment to point to the Ingress of the relevant cluster.KUBE_NAMESPACE variable with a value of the Kubernetes namespace you want your deployments to target. You can scope the variable to multiple environments.For deprecated, certificate-based clusters:
[!note] Cluster environment scope is not respected when checking for active Kubernetes clusters. For a multi-cluster setup to work with Auto DevOps, you must create a fallback cluster with Cluster environment scope set to
*. You can set any of the clusters you've already added as a fallback cluster.
| Cluster name | Cluster environment scope | KUBE_INGRESS_BASE_DOMAIN value | KUBE CONTEXT value | Variable environment scope | Notes |
|---|---|---|---|---|---|
| review | review/* | review.example.com | path/to/project:review-agent | review/* | A review cluster that runs all review apps. |
| staging | staging | staging.example.com | path/to/project:staging-agent | staging | Optional. A staging cluster that runs the deployments of the staging environments. You must enable it first. |
| production | production | example.com | path/to/project:production-agent | production | A production cluster that runs the production environment deployments. You can use incremental rollouts. |
After completing configuration, test your setup by creating a merge request.
Verify whether your application deployed as a Review App in the Kubernetes
cluster with the review/* environment scope. Similarly, check the
other environments.