Configure the GitLab Operator with GitLab Geo
- Tier: Free, Premium, Ultimate
- Offering: GitLab Self-Managed
The requirements, limitations and Geo configuration of the Operator are the same as for the GitLab chart.
To deploy Geo sites with the Operator, apply the Helm chart values to
the GitLab custom resource by setting the spec.chart.values.
Gateway API
When using Gateway API with Envoy Gateway, no additional work is needed beyond following the chart documentation. The operator will apply the global.geo.gatewayApi.additionalHostname configuration to enable internal site-to-site communication.
Ingress class
NGINX Ingress is deprecated as of GitLab chart 19.0 and will be removed in GitLab 20.0. Use Gateway API with Envoy Gateway for new Geo deployments. Existing Geo deployments should migrate as soon as possible.
The GitLab Operator does not come with an IngressClass of the secondary NGINX Ingress.
This controller and IngressClass are only needed if:
- You want to use a unified URL for GitLab Geo.
- Your primary Ingress controller overrides incoming
X-Forwarded-Forheaders (the bundled default NGINX chart does).
The process of creating the IngressClass depends on your installation method:
The IngressClass is not included in the default manifest and OLM release.
Create it manually:
kubectl apply -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: <gitlab-name>-nginx-geo
spec:
controller: k8s.io/ingress-nginx-geo
EOFEnable the IngressClass by updating your values:
nginx-ingress:
geo:
ingressClass:
enabled: true