Skip to content
GitLab Next
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 44,073
    • Issues 44,073
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1,378
    • Merge requests 1,378
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.orgGitLab.org
  • GitLabGitLab
  • Issues
  • #346186
Closed
Open
Created Nov 19, 2021 by Viktor Nagy (GitLab)@nagyv-gitlab🕊Developer

Crossplane as a GitLab integrated service

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

Assignee
Assign to
Time tracking