GitLab announced yesterday that it’s being deployed across multiple clouds via Crossplane, an open source multi-cloud control plane sponsored by Upbound. Yesterday, the Crossplane community also demonstrated the entire process of GitLab deployment across multi-cloud. During early December, last year, GitLab announced it had been chosen as the first complex app to be deployed on Crossplane.
Crossplane follows established Kubernetes patterns such as persistent volume claims for supporting a clean separation of concerns between application and infrastructure owners. It also provides a self-service model for managed services entirely within the Kubernetes API.
With Crossplanes, real-world application deployments from kubectl are easily accessible with enhanced support for composing external fully-managed services including Redis, PostgreSQL, and object storage.
“We’ve been working with GitLab to validate our approach and are proud to unveil the deployment of GitLab to multiple clouds entirely with kubectl using Crossplane, including the use of fully-managed services offered by the respective cloud providers”, the official Crossplane blog mentions.
Deployment of GitLab with external managed services using Kubectl
Crossplane extends the Kubernetes API by adding resource claims and resource classes to support composability of managed service dependencies in Kubernetes, similar to persistent volume claims and storage classes.
Crossplane can be easily added to any existing Kubernetes cluster and neatly layers on top of clusters provisioned by Anthos, EKS, AKS, and OpenShift.
Cluster administrators install Crossplane on a Kubernetes cluster, set cloud credentials, and specify which managed services they want to make available for self-service provisioning within the cluster. Policies guide binding to specific managed service offerings configured by the cluster administrator.
With this, application owners can consume and compose these managed services on-demand with the familiar Kubernetes patterns, without having to know about the infrastructure details or having to manage credentials.
For production deployments, GitLab recommends using external managed services for Redis, PostgreSQL, and object storage.
Crossplane supports composability of both out-of-cluster public cloud managed services (GCP, AWS, Azure) and in-cluster managed services like those provided by Rook, a storage orchestrator for in-cluster cloud-native storage including Ceph, Minio, and Cassandra.
Bassam Tabbara, CEO of Upbound and maintainer on Crossplane said, “We’re showing a real-world example of the future of multi-cloud today. GitLab is a production application that relies on multiple fully-managed services, so by abstracting these services and integrating them with the declarative Kubernetes API, we are demonstrating the ability to standardize on a single declarative API to manage it all.”
To know more about Crossplane in detail and also the steps to deploy GitLab to multiple clouds using Crossplane, head over to Crossplane’s official website.