Beginner guide to Crossplane covering concepts, Helm installation, CRDs, resource provisioning, verification, and next steps.
Hi, I’m Nourhan Mohamed — welcome to this beginner course on Crossplane.Over the next lessons we’ll install Crossplane, connect it to the platforms you want to manage, and compose infrastructure into simple, reusable building blocks that your team can request on demand.
Let’s dive in.Conceptually, Crossplane makes your Kubernetes cluster into an infrastructure control plane. Instead of hopping between cloud consoles or asking other teams to provision resources, you declare the infrastructure you need in Kubernetes manifests and Crossplane provisions and continuously reconciles those resources.To picture this, imagine a busy restaurant. As a diner you don’t go into the kitchen — you place your order with a waiter, the kitchen checks for required details if anything is missing, then prepares your meal and corrects any mistakes. Crossplane plays the role of the waiter and kitchen: you submit a request (YAML), Crossplane validates and fulfills it, and continuously ensures the result matches your intent.
Modern applications require more than containers: databases, storage buckets, networking, and many cloud services. Managing all of that across separate consoles leads to configuration drift and fragile manual processes.
Crossplane solves this by letting you declare managed resources as Kubernetes objects. For example, a generic managed resource looks like this:
validates the request (ensures required fields and credentials are present),
provisions the real infrastructure,
and continuously reconciles the external resources to match the declared state.
This three-step flow — apply YAML, validate, and provision — is the core of how Crossplane turns Kubernetes into an infrastructure control plane.
Crossplane extends Kubernetes by installing CustomResourceDefinitions (CRDs). Kubernetes already understands built-in types like Pods and Services; Crossplane adds CRDs for resources such as databases and buckets. Once added, infrastructure appears as first-class Kubernetes resources that can be created, inspected, and stored in Git alongside application code.
CustomResourceDefinitions (CRDs) are how Kubernetes learns new resource types. After installing Crossplane, inspect CRDs with kubectl get crd and list Crossplane API resources with kubectl api-resources | grep crossplane.io. For more, see the Kubernetes CRD docs.
Installing Crossplane with HelmCrossplane is commonly installed via Helm. The main steps are:
Add the Crossplane Helm repository and update your local cache.
Install the Crossplane chart into the crossplane-system namespace (Helm can create it).
Verify the Crossplane controllers are running and that new API resources are present.
You will need sufficient cluster privileges (typically cluster-admin) to install CRDs and controllers. If you don’t have permissions, ask your cluster administrator to install Crossplane or grant the required RBAC.
Commands (copy/paste):
# Add the Crossplane Helm repo and updatehelm repo add crossplane-stable https://charts.crossplane.io/stablehelm repo update# Install Crossplane into the crossplane-system namespacehelm install crossplane --namespace crossplane-system crossplane-stable/crossplane --create-namespace
Verify the Crossplane pods are running:
user@cluster:~$ kubectl get pods -n crossplane-systemNAME READY STATUS AGEcrossplane-7d8f6c9b4-x2k9p 1/1 Running 55scrossplane-rbac-manager-6c8d7f5b9-qd4ml 1/1 Running 55s
List Crossplane API resources to confirm CRDs and controller-added resources: