Quick Start¶
This guide will help you get a local Crossplane development environment running in minutes.
Prerequisites¶
Before starting, ensure you have:
No Helm or Kind Required
Helm and Kind are embedded as Go libraries in kindplane—no separate installation required.
Step 1: Install kindplane¶
Step 2: Check Prerequisites¶
Verify your system is ready:
Step 3: Initialise Configuration¶
Create a configuration file:
This creates a kindplane.yaml file with sensible defaults. The file includes:
- A Kind cluster with 1 control plane and 1 worker node
- Crossplane installation
- AWS and Kubernetes providers
Step 4: Bootstrap the Cluster¶
Create and configure your cluster:
This command will:
- Create a Kind cluster
- Install Crossplane
- Install configured providers
- Wait for providers to become healthy
- Install any configured Helm charts
- Apply compositions (if configured)
Watch Progress
kindplane shows real-time progress with a beautiful TUI dashboard in interactive mode.
Step 5: Verify Status¶
Check that everything is running:
Step 6: Use Your Cluster¶
Your cluster is now ready! You can:
# List Crossplane providers
kubectl get providers
# Check provider status
kubectl get providers -o wide
# Apply a Crossplane resource
kubectl apply -f my-resource.yaml
Step 7: Clean Up¶
When you're done, delete the cluster:
Next Steps¶
- Configure your cluster with custom settings
- Add more providers for different clouds
- Install Helm charts for additional tools
- Export resources for GitOps workflows
Example: Minimal Configuration¶
Here's a minimal configuration to get started:
cluster:
name: my-dev-cluster
crossplane:
version: "1.15.0"
providers:
- name: provider-kubernetes
package: xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.12.0
Example: Full Development Setup¶
Here's a more complete development configuration:
cluster:
name: dev-cluster
kubernetesVersion: "1.29.0"
nodes:
controlPlane: 1
workers: 2
portMappings:
- containerPort: 80
hostPort: 8080
protocol: TCP
ingress:
enabled: true
crossplane:
version: "1.15.0"
providers:
- name: provider-aws
package: xpkg.upbound.io/upbound/provider-aws-s3:v1.1.0
- name: provider-kubernetes
package: xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.12.0
charts:
# Install External Secrets Operator via charts
- name: external-secrets
repo: https://charts.external-secrets.io
chart: external-secrets
namespace: external-secrets
phase: post-providers
values:
installCRDs: true
# Install ingress controller
- name: ingress-nginx
repo: https://kubernetes.github.io/ingress-nginx
chart: ingress-nginx
namespace: ingress-nginx
phase: final
wait: true