Your dev cluster spins up, your cloud resources wait, and yet your automation still feels half-built. You can declare everything as code except the cluster resources themselves. That’s the exact itch Crossplane Microk8s scratches.
Crossplane extends Kubernetes into your cloud control plane. It lets you define S3 buckets, VPCs, databases, and IAM roles like any other Kubernetes object. Microk8s, the lightweight distro from Canonical, gives you a streamlined local or edge Kubernetes environment without the heavy tooling that slows CI or secure testing. When paired, Crossplane Microk8s forms a minimal yet powerful lab for infrastructure teams to model and verify production-like setups before pushing to managed clusters.
Here’s the logic in action. Microk8s provides a consistent kube API on your laptop, VM, or appliance. You install Crossplane as a standard addon. Once running, you define Providers that map to your cloud credentials, then Deployments that model resources through YAML. No extra controllers, no sprawling Terraform pipelines. Everything runs under Kubernetes reconciliation, meaning your infrastructure state is as observable as any other workload. Identity and permissions flow through Kubernetes service accounts, often federated via OIDC to cloud IAM systems like AWS IAM or Okta. It’s clean, portable, and fully declarative.
A common workflow starts like this:
- Launch Microk8s locally with RBAC enabled.
- Add the Crossplane addon.
- Configure your provider credentials as Kubernetes secrets.
- Apply resource manifests that describe whatever your team needs — network, storage, or application services.
- Observe Crossplane reconciling the state continuously, even when external drift occurs.
Keep an eye on RBAC mapping. Crossplane’s controllers need scoped permissions so they don’t overwrite shared resources. Rotate cloud provider keys using native Kubernetes secret rotation or external vault integrations. And watch reconciliation times when testing edge deployments, since Microk8s nodes have less I/O throughput.