Skip to content

Crossplane as a GitLab integrated service

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Problem Statement

As infrastructure management shifts to the left and developers need/want to decide about the infrastructure resources their applications require, they have to learn foreign concepts, like Terraform or various cloud tools. While Terraform seems to be a good choice, it surfaces a whole set of new complexities that someone has to deal with, like configuration drift, upgrades, and learning a new language.

Crossplane tries to solve this problem by leveraging the Kubernetes control plane to maintain the state of the infrastructure, and by introducing higher-level, platform independent, programmable concepts (called XRD) that targets the platform engineer with the lower level configuration requirements, and offers a small, higher-level abstraction for the developers on the resources configured by the platform engineer.

Proposal

Integrate Crossplane into the GitLab Helm Chart and offer it as a service on gitlab.com as an alternative Infrastructure as Code solution, beside Terraform.

Provide a mechanism for the platform engineers to create XRDs and Compositions, and surface the provision resources instances or the available XRCs in the Infrastructure registry.

Reach: 6.0

Terraform is used by ~34-38% of our users. This would lower the barriers to entry to IaC and could serve more users.

Impact: 2.0

This is more than infrastructure as code, as it provides a fully declarative layered by yaml, with config drift detection.

Confidence: 80%

Effort

My guess would be that the initial release would require only minor effort (1.5 - 2 months).

Definition of Done

  • [x] The problem is well understood by the PM to have an understanding summarized in a RICE score
  • [x] The problem is well understood by the PM to decide if they want to move forward with this idea or drop it
  • [ ] The problem is well described and detailed with necessary requirements for product design to understand the problem
  • [ ] The problem is well described and detailed with necessary requirements for engineering to understand the problem

Research Issue

Edited by 🤖 GitLab Bot 🤖