Remember that time you flipped the Monopoly board because your sibling bought Park Place right before you could? Or when you mortgaged everything just to stay in the game? Well, managing cloud infrastructure can feel exactly like that—except instead of fake money, you’re burning through real Azure credits, and instead of going to jail, you’re debugging YAML at 3 AM.
But what if I told you there’s a way to manage your infrastructure empire with the clarity of a Monopoly board laid out in front of you? Enter Crossplane and Crossview—the dynamic duo that turns infrastructure chaos into a beautiful, visual game board you can actually understand.
Let me explain using the only framework that matters: Monopoly.
🎩 The Game Board: Understanding Crossplane
Before we talk about Crossview (the fancy GUI dashboard), let’s understand Crossplane using our favorite capitalist board game.
The Deed Cards: Composite Resource Definitions (XRDs)
In Monopoly, deed cards represent the option to buy properties. They list what you could own and what the rules are for that property.
In Crossplane, Composite Resource Definitions (XRDs) work the same way. They define what infrastructure you could provision and what parameters are available.
apiVersion: apiextensions.crossplane.io/v2
kind: CompositeResourceDefinition
metadata:
name: xdatabases.example.com
spec:
group: example.com
names:
kind: XDatabase # Like "Baltic Avenue"
plural: xdatabases
versions:
- name: v1alpha1
served: true
referenceable: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
size: # Small, medium, or large?
type: string
enum: ["small", "medium", "large"]
storageGB: # How much storage?
type: integer
Think of this as the deed card for “Baltic Avenue”—it tells you what you’re getting and what options you have. You can’t actually use it until you buy it, but it’s there, waiting.
The Properties You Own: Composite Resources (XRs)
When you land on Baltic Avenue and hand over your $60, you now own that property. It’s yours! The deed card becomes a real asset.
In Crossplane, when you create a Composite Resource (XR) based on an XRD, you’re buying that property. You’ve gone from “this exists as an option” to “this is mine and it’s running.”
apiVersion: example.com/v1alpha1
kind: XDatabase
metadata:
name: my-production-db
namespace: production # XRs can be namespaced in Crossplane 2.1!
spec:
size: large
storageGB: 100
Boom! You just bought Baltic Avenue. Well, the database equivalent. Your production database is now running in the cloud, and you’re collecting rent (or in this case, serving traffic).
In Crossplane 2.1, you can configure XRs to be namespace-scoped (perfect for multi-tenant scenarios) or cluster-scoped. Think of namespaces as different neighborhoods on your Monopoly board!
The Buildings: Compositions
Here’s where it gets fun. In Monopoly, once you own a property, you can build houses and hotels on it. These buildings make your property more valuable and generate more rent.
In Crossplane, Compositions are exactly like that. They define what gets “built” when you create an XR. A Composition might say: “When someone creates a Database XR, we’re going to build them an Azure Database for PostgreSQL, a Storage Account for backups, monitoring dashboards, and a Key Vault secret for credentials.”
apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
name: database-azure-production
spec:
compositeTypeRef:
apiVersion: example.com/v1alpha1
kind: XDatabase
mode: Pipeline
pipeline:
- step: create-postgres-instance
functionRef:
name: function-patch-and-transform
input:
apiVersion: pt.fn.crossplane.io/v1beta1
kind: Resources
resources:
- name: postgres-server
base:
apiVersion: dbforpostgresql.azure.upbound.io/v1beta1
kind: Server
spec:
forProvider:
location: eastus
sku:
name: B_Gen5_2 # Big hotel on Baltic Avenue!
storageMb: 102400
version: "15"
- name: backup-storage
base:
apiVersion: storage.azure.upbound.io/v1beta1
kind: Account
spec:
forProvider:
location: eastus
accountTier: Standard
accountReplicationType: LRS
- name: monitoring-workspace
base:
apiVersion: operationalinsights.azure.upbound.io/v1beta1
kind: Workspace
See what happened? You bought one “property” (the Database XR), but the Composition automatically built you a hotel (PostgreSQL Server), a parking lot (Storage Account for backups), and a security system (Log Analytics workspace).
You’re basically the Donald Trump of cloud infrastructure. Without the bankruptcies. Hopefully.
🎲 The Problem: You Can’t See the Board!
Imagine playing Monopoly with your eyes closed. Someone tells you “you landed on a property” but won’t tell you which one, how much it costs, or what’s already on it. That’s what managing Crossplane resources with just kubectl feels like:
# What fresh hell is this?
kubectl get compositeresourcedefinitions
kubectl get compositions
kubectl get xdatabases
kubectl describe xdatabase my-production-db
# ...500 lines of YAML later...
You’re squinting at YAML, grep-ing through status conditions, and trying to figure out if your database is actually running or if it’s stuck in some weird pending state. It’s like playing Monopoly by reading the rulebook aloud instead of just looking at the board.
This is madness.
🎨 Enter Crossview: The Actual Game Board
This is where
Crossplane Docs:
Install Guide: Check the Crossview README for detailed installation instructions
My Therapy Bills: From all the times I managed infrastructure without a GUI
Have you tried Crossview? Got any funny infrastructure horror stories? Drop them in the comments! Let’s compare war stories about that time we accidentally deployed production databases to the wrong region. We’ve all been there.
And remember: In Monopoly and in infrastructure, always know where your properties are. Your Azure bill will thank you.
P.S. - If you actually flip over your Kubernetes cluster like a Monopoly board when things go wrong, please seek professional help. And maybe use Crossview.
About The Software’s Journey: We’re on a mission to make infrastructure management less painful and more fun. Follow us for more analogies that probably shouldn’t work but somehow do. 🎲🚀
SOCIAL SHARE CARD GENERATOR