Releases: crossplane-contrib/provider-gitlab
v0.17.5
What's Changed
- feat: protected environments by @Vadims-U in #290
- feat: support project importURLSecretRef by @BoxBoxJason in #276
- fix: up trivy action by @dariozachow in #300
- Share projects with groups by @infkf in #277
- fix: corrected group deletion routine by @valdemon in #297
- fix: Wire MaxConcurrentReconciles to all controllers via WithOptions by @rforgac in #299
- fix: bump Go to 1.25.9 to address stdlib CVEs by @derbauer97 in #303
New Contributors
- @infkf made their first contribution in #277
- @valdemon made their first contribution in #297
- @rforgac made their first contribution in #299
Full Changelog: v0.17.4...v0.17.5
v0.17.4
What's Changed
- feat: support project-level Mattermost integration (client-go v1) by @Vadims-U in #268
- chore: update go version and actions by @derbauer97 in #291
New Contributors
Full Changelog: v0.17.3...v0.17.4
v0.17.3
What's Changed
- fix: remove omitempty in settings observation by @BoxBoxJason in #274
- fix: buildGitStrategy update by @BoxBoxJason in #275
Full Changelog: v0.17.2...v0.17.3
v0.17.2
What's Changed
- fix: check also on res.ID = 0 by @derbauer97 in #284
Full Changelog: v0.17.1...v0.17.2
v0.17.1
What's Changed
- fix: intial creation for pushRules by @derbauer97 in #281
- fix: update CI deps to fix Docker Buildx failures by @henrysachs in #283
Full Changelog: v0.17.0...v0.17.1
v0.17.0
Caution
This release introduces breaking changes and significant internal upgrades. Please review these notes thoroughly, update your manifests, and test carefully before upgrading.
We upgraded the GitLab Client to its stable version and if you're developing Configurations via Golang you will have to migrate from int to int64
What's Changed
- feat: support group & project badges by @BoxBoxJason in #252
- feat: support application appearance by @BoxBoxJason in #257
- feat: support instance & group service accounts by @BoxBoxJason in #255
- feat: support instance license by @BoxBoxJason in #263
- feat: LdapGroupLinks v2 by @stempher in #271
- feat: upgrade gitlab client-go to v1 with int64 migration by @henrysachs in #264
- feat: support instance variable by @BoxBoxJason in #259
- fix(ldapgrouplink): fix typos, observe matching, and printcolumn by @henrysachs in #272
New Contributors
Full Changelog: v0.16.0...v0.17.0
v0.16.0
What's Changed
- fix(crd): make expiresAt nullable for tokens on crd level by @raweber42 in #258
- feat: support instance runners by @BoxBoxJason in #254
Full Changelog: v0.15.0...v0.16.0
v0.15.0
Caution
This release introduces breaking changes and significant internal upgrades. Please review these notes thoroughly, update your manifests, and test carefully before upgrading.
Before using any Crossplane v2 capabilities in this provider, please familiarize yourself with the changes in Crossplane v2.
What's Changed
- chore: restructure by @markussiebert in #235
- feat: add Crossplane v2 additions with namespaced resources by @markussiebert in #236
- feat(variables): skip secret lookup during deletion by @markussiebert in #238
- fix: use correct property for group accesstoken name by @raweber42 in #240
- fix: make groupaccesstokens expirydate nullable by @raweber42 in #241
- feat: add publicJobs field and deprecate publicBuilds by @henrysachs in #253
- feat: support application settings by @BoxBoxJason in #244
New Contributors
- @raweber42 made their first contribution in #240
- @BoxBoxJason made their first contribution in #244
Full Changelog: v0.14.0...v0.15.0
v0.15.0-rc2
What's Changed
- feat(variables): skip secret lookup during deletion by @markussiebert in #238
- fix: use correct property for group accesstoken name by @raweber42 in #240
- fix: make groupaccesstokens expirydate nullable by @raweber42 in #241
- feat: add publicJobs field and deprecate publicBuilds by @henrysachs in #253
- feat: support application settings by @BoxBoxJason in #244
New Contributors
- @raweber42 made their first contribution in #240
- @BoxBoxJason made their first contribution in #244
Full Changelog: v0.15.0-rc.1...v0.15.0-rc2
v0.15.0-rc.1
Release v0.15.0-rc.1
Caution
This release introduces breaking changes and significant internal upgrades. Please review these notes thoroughly, update your manifests, and test carefully before upgrading.
Before using any Crossplane v2 capabilities in this provider, please familiarize yourself with the changes in Crossplane v2.
Highlights
This release introduces:
- Compatibility with Crossplane v2
- Support for Crossplane v2 namespace-scoped Managed Resources (MRs) alongside existing cluster-scoped MRs
- Upgrade to crossplane-runtime
v2.0.0 - Removal of External Secret Store support (
spec.publishConnectionDetailsTono longer available) - Repository restructuring to distinguish cluster vs namespaced scope
Please review the breaking changes carefully before upgrading.
Namespace-Scoped MR Support (Crossplane v2-only)
New namespace-scoped MR APIs are available under the *.gitlab.m.crossplane.io API groups for groups and projects (and associated resource kinds such as runners). Namespaced variants live under apis/namespaced/... with parallel controller logic in pkg/namespaced/....
ProviderConfig and ClusterProviderConfig
- A new cluster-scoped
ClusterProviderConfig(gitlab.m.crossplane.io) kind was introduced; managed resources can reference eitherProviderConfigorClusterProviderConfigviaspec.providerConfigRef.kind. - When
spec.providerConfigRefis omitted, it defaults toClusterProviderConfignameddefault. - In namespace-scoped MRs:
spec.writeConnectionSecretToRefand any sensitive parameter secret refs default to the MR's own namespace ifnamespaceis not specified.- Cross-resource references default to the same namespace (cross-namespace references remain allowed explicitly).
- Both cluster-scoped and namespace-scoped APIs are served concurrently.
Note
Cluster-scoped MRs do NOT implement the namespace-local secret defaulting behavior and continue operating as before.
Note
All namespace references in specs for namespaced managed resources have been simplified; absence of a namespace now resolves to the resource's own namespace.
Removed Features
External Secret Store support has been removed from all Managed Resources (the spec.publishConnectionDetailsTo field has been dropped) in alignment with Crossplane v2 removal of this feature.
Note
Only the external store publishing mechanism was removed. Standard connection secrets via writeConnectionSecretToRef remain supported and are the recommended way to surface connection details inside the cluster.
Other Notable Changes
- SafeStart capability (Crossplane v2-only): Controllers start reconciliation only after their CRDs are installed.
- Repository structure changes:
- Separate
cluster/andnamespaced/subdirectories underapis/,pkg/(controllers/clients). - Resource generation / configuration now duplicated per scope; ensure future updates are applied to both where relevant.
- Separate
- Large internal refactor duplicating types and controllers for namespaced resources. Clusterscoped code is generated from namespaced code.
Backward Compatibility Notes
- Installation on Crossplane v1.x remains supported:
- Both cluster and namespace-scoped CRDs install; namespace-scoped CRDs cannot be composed on v1.x.
- SafeStart logic does not change controller behavior materially on v1.x.
- When upgrading from earlier provider versions, review all API changes for resources that now have namespaced counterparts or altered secret/reference semantics (v2-only behavior).
- The package is still consumable on Crossplane v1.x, but new namespace-scoped features operate fully only on v2.x.
Upgrade Guide
- Identify which resources you want to adopt in namespace scope (if any) and adjust manifests accordingly.
- Remove all usages of
spec.publishConnectionDetailsTo(usewriteConnectionSecretToRef). - For Crossplane v2 environments:
- Leverage namespace-local defaulting for secret refs where appropriate.
- Choose between
ProviderConfigandClusterProviderConfig; setspec.providerConfigRef.kindif diverging from the default.
- If you maintain custom patches or configuration overlays, replicate applicable changes into both
cluster/andnamespaced/paths. - Test reconciliation of representative cluster-scoped and namespace-scoped resources before full rollout.
Breaking API Changes (Summary)
- Removal of
spec.publishConnectionDetailsToacross all Managed Resources. - Introduction of
ClusterProviderConfigand namespacedProviderConfigvariants changes reference semantics (defaulting to cluster-scopedClusterProviderConfignameddefault). - Namespace-local defaulting for secrets and parameter refs in namespaced MRs (Crossplane v2-only), which differs from prior cluster-scoped behavior.
What's Changed
- chore: restructure by @markussiebert in #235
- feat: add Crossplane v2 additions with namespaced resources by @markussiebert in #236
Full Changelog: v0.14.0...v0.15.0-rc.1