Crossplane Vocabulary: English for Control Plane as Code Discussions
Master the English vocabulary and natural phrases engineers use when discussing Crossplane, XRs, compositions, and control plane infrastructure.
When you join a platform engineering team that uses Crossplane, you quickly realize that the vocabulary is dense — and that even experienced engineers sometimes struggle to explain these concepts clearly in English. This post focuses on the English you need: the precise terms, the natural collocations, and the phrases your teammates actually use in architecture discussions and code reviews.
Core Vocabulary: The Building Blocks
Composite Resource (XR)
A composite resource (shortened to XR) is an abstraction layer that combines multiple managed resources into a single, higher-level resource that application teams can consume.
“We exposed a composite resource called
XPostgresInstanceso that dev teams don’t have to touch the underlying RDS and security group configs directly.”
In conversation, engineers often say “the XR” or “a composite.” You’ll hear phrases like “define an XR,” “claim an XR,” and “the XR is reconciling.”
Claim
A claim is what an application developer submits to request a composite resource. Claims are namespace-scoped, while XRs are cluster-scoped — this distinction matters for how you explain the architecture.
“The backend team just filed a claim for a new database. Once the composition reconciles, they’ll get their connection secret automatically.”
Notice the verb file a claim — borrowed from insurance/legal English, it’s commonly used in platform engineering contexts.
Composition
A composition is the template that defines how Crossplane should build a composite resource — which managed resources to create, how to configure them, and how to patch values between them.
“We updated the composition to patch the region from the claim into all three managed resources. It took a while to get the patching logic right.”
Key verbs: write a composition, update the composition, the composition defines, patch values.
Managed Resource
A managed resource is a Kubernetes custom resource that represents a single external infrastructure object — an S3 bucket, a VPC subnet, an IAM role. Crossplane’s provider controls its lifecycle.
“Each managed resource maps one-to-one to an object in AWS. If you delete the managed resource, Crossplane deletes the actual bucket.”
The phrase maps one-to-one is very useful here for explaining the relationship in architecture reviews.
Provider
A provider is a Crossplane package that knows how to talk to a specific external API — AWS, GCP, Azure, Helm, etc. It installs the CRDs and the controller logic.
“We’re running the AWS provider at version 0.47. Before we upgrade, we need to check if any managed resource APIs changed.”
Engineers say install a provider, configure a provider, the provider is healthy/degraded.
Control Plane
The control plane in Crossplane’s context means the Kubernetes cluster (or managed control plane) that runs Crossplane itself and acts as the source of truth for your infrastructure.
“We treat our control plane cluster as a read-only source of truth. Nobody applies resources manually — everything goes through Git and Crossplane.”
Reconciliation Loop
The reconciliation loop is the core mechanism: Crossplane continuously compares the desired state (what your YAML says) with the observed state (what actually exists in the cloud), and acts to close any gap.
“The reconciliation loop caught the drift immediately — someone had modified the security group in the console, and Crossplane reverted it within 30 seconds.”
Common collocations: the loop detects drift, reconciliation fails, the resource is reconciling, stuck in reconciliation.
Real IT Context: Phrases Engineers Actually Use
Here are natural phrases you’ll encounter — and need to produce — in real platform engineering conversations:
In architecture discussions:
- “The claim abstracts away all the implementation details from the developer.”
- “We compose three managed resources under that XR — a subnet, a security group, and an RDS instance.”
- “The composition uses patches to propagate values from the claim spec into each managed resource.”
In code reviews:
- “This composition is missing a readiness check — the XR will show as ready before the database is actually available.”
- “You should use a
FromCompositeFieldPathpatch here, not a hardcoded value. That way the region stays configurable.”
In incident postmortems:
- “The provider lost its credentials and the reconciliation loop started failing silently. We didn’t catch the drift for two hours.”
- “We found that the composition had a bug in the patch logic — it was overwriting the storage size with the default every time the loop ran.”
Key Collocations
Learning words in pairs and phrases makes them stick faster:
| Collocation | Meaning |
|---|---|
| expose a composite resource | make an XR available for teams to claim |
| file / submit a claim | request infrastructure via a claim object |
| the composition reconciles | Crossplane applies the template and syncs state |
| managed resource drifts | real infra diverges from desired YAML state |
| install / configure a provider | set up the Crossplane package for a cloud API |
| detect / correct drift | find and fix differences between desired and actual state |
| the loop is stuck | reconciliation is not making progress |
| patch a field | copy a value from one resource spec to another |
H3: Explaining Crossplane to Non-Platform Engineers
One common challenge is explaining Crossplane’s model to developers who only know Terraform or plain Kubernetes. Here are two useful English patterns:
The analogy pattern:
“Think of Crossplane like Terraform, but instead of running
terraform applyfrom your laptop, the control plane cluster is always running it for you — continuously.”
The layers pattern:
“There are two layers. Platform engineers write compositions that define how infrastructure is built. Application developers file claims that say what they need. The two layers are deliberately decoupled.”
Practice
Pick one concept from this post — for example, reconciliation loop or composition — and write a short Slack message (3-4 sentences) explaining it to a new backend developer joining your team. Focus on using natural collocations rather than translating word-for-word from Ukrainian. Then try writing a one-sentence code review comment that uses the term correctly in context. This kind of deliberate practice in real IT formats is far more effective than reading definitions alone.