Hire me
Crossplane Contrib Logo
← Back to Projects Crossplane users

Crossplane Contrib - Provider GitLab

Expanded the Crossplane GitLab provider so platform teams can run critical GitLab administration workflows as Kubernetes-managed infrastructure.

Why This Provider Work Matters

This contribution track focused on one practical goal: make GitLab platform operations manageable through Kubernetes-native workflows, not manual admin clicks. The value is operational control at scale, with changes that are reviewable, auditable, and recoverable through reconciliation.

What I Shipped Upstream

I contributed across both feature surface and internal provider quality:

  • Added or expanded support for high-value domains: instance settings, runners, badges, service accounts, appearance, CI/CD variables, and licensing.
  • Unblocked instance-level configuration workflows that were previously manual and difficult to audit.
  • Improved import and secret-reference handling for safer real-world adoption.
  • Fixed reconciliation and update correctness gaps to reduce production surprises.

Engineering Decisions Behind the Changes

The implementation strategy prioritized long-term velocity as much as immediate capability:

  • Designed resource behavior around operational intent, not only API parity.
  • Refactored repeated logic paths to cut duplication by roughly 30%.
  • Kept compatibility in mind while restructuring internals, so new features could land without destabilizing existing users.
  • Worked with maintainer feedback loops to align API shape and controller behavior with upstream expectations.

Practical Outcome for Platform Teams

These contributions moved the provider from a narrower automation layer to a broader platform operations surface. Teams can now manage more GitLab state declaratively, reduce manual drift, and extend provider coverage on top of cleaner internals.

Managed Resources in the Provider

The provider supports a broad GitLab resource surface, including:

Instance-level resources:

  • ApplicationSettings
  • Appearance
  • License
  • Runner
  • ServiceAccount
  • Variable

Group-level resources:

  • Group
  • Member
  • AccessToken
  • DeployToken
  • Badge
  • Variable
  • Runner
  • LDAPGroupLink
  • SAMLGroupLink
  • ServiceAccount

Project-level resources:

  • Project
  • Member
  • AccessToken
  • DeployToken
  • DeployKey
  • Badge
  • Variable
  • Hook
  • ApprovalRule
  • PipelineSchedule
  • ProtectedBranch
  • ProtectedEnvironment
  • Runner
  • IntegrationMattermost

Provider connection resources:

  • ProviderConfig and ClusterProviderConfig (plus usage resources)

Technologies Used

IconTechnologyHow it was used
Go LogoGoControllers, clients, generators, and automated tests
Kubernetes LogoKubernetesCRDs as platform API and reconciliation runtime
Crossplane LogoCrossplaneManaged resource patterns, provider architecture, and platform abstraction

Project History

Unlocked Instance-Level GitLab Configuration

Delivered Application Settings support so platform teams could manage instance-wide GitLab behavior declaratively. This shifted sensitive operational settings from manual UI changes to auditable GitOps workflows.

Expanded Team-Facing Feature Surface

Added multiple high-value resources including runners, badges, service accounts, appearance, and licensing. Result: significantly broader day-2 platform operations through a single control-plane model.

Refactored Core Paths for Scale

Introduced instance-level CI/CD variable management and performed a deeper refactor of shared logic. This cut duplication by around 30% and made future resource additions faster and safer.

Hardened Production Behavior

Closed correctness gaps in reconciliation/update behavior and added import URL secret reference support. This improved trust in drift handling and reduced operator surprises in real environments.

Project Details

Role
Contributor
Client
Crossplane users
Duration
4 months
Published

Key Outcomes

New Resource Domains Delivered
7
Managed Resources Added
10+
Code Duplication Reduced
~30%

Other Projects

Kubernetes GitOps Architecture

Homelab Configuration

Podman Compose + Terraform homelab platform for self-hosted GitLab, SonarQube, storage, and observability with backups and operational tooling

Podman Linux Terraform Nginx GitLab SonarQube Prometheus Grafana PostgreSQL Synology NAS
gitlab-sync logo

GitLab Sync

CLI tool to synchronize GitLab projects and groups between two GitLab instances for migrations, DR, and multi-instance operations

Go GitLab Docker CI/CD
Vscode Achievements Extension Illustration

VSCode Achievements

Visual Studio Code extension that rewards developers with achievements for actions in the editor

TypeScript React VSCode Node