Editions & Licensing¶
GitLab ships in two editions: Community Edition (CE) and Enterprise Edition (EE). The operator supports both.
Community Edition (CE)¶
CE is the default. No license is needed.
CE includes the full GitLab feature set except Enterprise-only features. With the operator, CE supports:
- Managed or BYO PostgreSQL and Redis
- External object storage (S3)
- All GitLab CI/CD, repository, issue, and merge-request features
- Container registry
- GitLab Agent Server (KAS)
- GitLab Pages
Elasticsearch / Advanced Search is not available in CE.
Enterprise Edition (EE)¶
EE requires a valid GitLab license. You must provide the license as a Kubernetes Secret before the operator will emit the HelmRelease.
The license Secret¶
Create the Secret from your GitLab EE license file (.gitlab-license):
kubectl create secret generic my-gitlab-ee-license \
--from-file=license=/path/to/my.gitlab-license \
-n my-gitlab-ee
The Secret must have a key named license containing the raw license file content.
# Equivalent YAML form
apiVersion: v1
kind: Secret
metadata:
name: my-gitlab-ee-license
namespace: my-gitlab-ee
stringData:
license: |
<base64-encoded GitLab EE license content>
licenseSecret is required for EE
Setting edition: ee without licenseSecret causes the operator to emit a Failed condition with reason ValidationFailed. The instance will not progress past validation until a valid license Secret is provided.
What EE unlocks¶
| Feature | CE | EE |
|---|---|---|
| All GitLab CI/CD, SCM, DevOps | Yes | Yes |
| Container Registry | Yes | Yes |
| GitLab Pages | Yes | Yes |
| GitLab Agent Server (KAS) | Yes | Yes |
| Advanced Search (Elasticsearch) | No | Yes |
Managed Elasticsearch (spec.elasticsearch.managed: true) |
No | Yes |
| GitLab Geo | No | Yes |
| Compliance features | Limited | Full |
| Security scanning features | Limited | Full |
The operator's specific EE additions are:
spec.licenseSecretis consumed; the operator emitsglobal.gitlab.license.{secret,key}to the chart.spec.elasticsearch.managed: trueis honoured; an ECKElasticsearchcluster is provisioned and wired to the chart viaglobal.appConfig.elasticsearch.{enabled,url,username}.
On CE, the licenseSecret and elasticsearch spec fields are silently ignored.
Switching editions¶
To switch from CE to EE:
- Obtain a GitLab EE license and create the license Secret.
- Update the
GitlabInstance:
The operator will re-compose the Helm values with the license wired in and emit an updated HelmRelease. Flux will run helm upgrade, which applies the license.
CE to EE data migration
Switching from CE to EE does not require a database migration — GitLab CE and EE share the same schema. The chart upgrade handles the transition.
Switching from EE to CE is not supported by GitLab (EE-only schema extensions may be present). Consult GitLab's official documentation before attempting a downgrade.