platformengineering/crossplane kubernetes

Custom Resource Definitions (CRDs)
Crossplane on Localstack
Welcome · Crossplane v2.1
Combining practical Platform Engineering with Crossplane and ArgoCD

Core Idea

Crossplane turns Kubernetes into a general-purpose control plane: ops author golden APIs as CRDs, and developers get cloud resources from plain YAML instead of ticket queues or Terraform DSLs.

  • The scenario in the note: days of ticket ping-pong for one test database versus a golden Postgres API that provisions encrypted RDS, private subnets, secrets, and backups behind the scenes.
  • Four major components: Composition, Managed Resources, Operations, and Packages, built on CRDs like XRD and Provider.
  • The developer gets what; ops controls how.

Introduction

Crossplane is a control plane framework for Platform Engineering.

Crossplane Is the Cloud-Native Framework for Platform Engineering. Create platforms like cloud providers. Build your own APIs and services with control planes. Extend Kubernetes to manage any resource anywhere. Use a library of components to assemble your platform faster

Crossplane creates additional Control Plane(s) inside Kubernetes which act as the orchestration layer for resources in your cloud systems.
It offers this functionality by allowing you to create your own custom resources, templating, and workflows which are offered to consumers as Kubernetes CRDs.
This allows consumers to create and manage cloud resources via the same YAML manifests used elsewhere in Kubernetes and removes the burden for development teams to learn domain specific languages (as are needed for Terraform, CloudFormation, ARM Templates etc.)

Control Plane and Data Plane

After Kubernetes v1.7, Kubernetes was no longer just a container orchestrator. With Custom Resource Definitions (CRDs), it became a general-purpose control plane that can manage anything, not just containers.

Crossplane installs Custom Resource Definitions (CRDs) such as:

  • CompositeResourceDefinition (XRD)
  • Composition
  • Provider
  • ProviderConfig
  • Managed resource CRDs (e.g. RDSInstance, Bucket
    Now Kubernetes understands new kinds of objects.

Crossplane has four major components:

  1. Composition : Build custom APIs by composing Kubernetes resources
  2. Managed Resources : Manage Cloud resources in Kubernetes
  3. Operation : Run operational tasks with Crossplane.
  4. Packages : Extend Crossplane with packages.