Multiple Kubernetes clusters for Auto DevOps
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
These environments are tied to jobs using Auto Deploy, so they must have different deployment domains. You must define separate
KUBE_INGRESS_BASE_DOMAIN variables for each of the three environments.
Deploy to different clusters
To deploy your environments to different Kubernetes clusters:
- Create Kubernetes clusters.
- Associate the clusters to your project:
- Install NGINX Ingress Controller in each cluster. Save the IP address and Kubernetes namespace for the next step.
Configure the Auto DevOps CI/CD Pipeline variables
- Set up a
KUBE_CONTEXTvariable for each environment. The value must point to the agent of the relevant cluster.
- Set up a
KUBE_INGRESS_BASE_DOMAIN. You must configure the base domain for each environment to point to the Ingress of the relevant cluster.
- Add a
KUBE_NAMESPACEvariable with a value of the Kubernetes namespace you want your deployments to target. You can scope the variable to multiple environments.
- Set up a
For deprecated, certificate-based clusters:
- Go to the project and select Infrastructure > Kubernetes clusters from the left sidebar.
- Set the environment scope of each cluster.
- For each cluster, add a domain based on its Ingress IP address.
*. You can set any of the clusters you’ve already added as a fallback cluster.
|Cluster name||Cluster environment scope||
||Variable environment scope||Notes|
|review||A review cluster that runs all Review Apps.|
|staging||Optional. A staging cluster that runs the deployments of the staging environments. You must enable it first.|
|production||A production cluster that runs the production environment deployments. You can use incremental rollouts.|
Test your configuration
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