Skip to content

vanHeemstraSystems/learning-crossplane

Repository files navigation

Learning Crossplane

A comprehensive learning resource for Crossplane v2.1+, the cloud-native control plane framework for building platforms without writing code.

Crossplane Logo

License: MIT Crossplane Version CNCF Graduated

πŸ“š Table of Contents

About This Repository

This repository serves as a structured learning resource for mastering Crossplane, covering everything from basic concepts to advanced composition functions and production deployments. It includes practical examples, hands-on labs, and real-world patterns for building cloud-native control planes.

Current Crossplane Version Coverage: v2.1 (November 2025) Status: CNCF Graduated Project (October 28, 2025)

What is Crossplane

Crossplane is a framework for building cloud-native control planes without needing to write code. It provides:

  • Universal Control Plane: Orchestrate applications and infrastructure across any cloud
  • Declarative API: Define resources using familiar Kubernetes patterns
  • Extensible Backend: Build control planes using providers and composition functions
  • Configurable Frontend: Control the schema of your declarative API
  • Platform Engineering: Enable self-service infrastructure for development teams

Key Features in Crossplane v2.1

  • Namespaced Composite Resources: XRs are now namespaced by default
  • Simplified Architecture: No more need for Claims abstraction
  • Enhanced Composition Functions: Advanced templating with Python, Go, KCL, and more
  • Better Application Support: First-class support for managing apps alongside infrastructure
  • Improved Developer Experience: Streamlined workflows and better tooling

Prerequisites

Required Knowledge

  • Basic understanding of Kubernetes concepts (Pods, Services, Deployments)
  • Familiarity with YAML syntax
  • Command-line interface (CLI) experience
  • Basic cloud infrastructure concepts

Required Tools

  • Kubernetes Cluster: v1.25+ (can use kind, minikube, or cloud provider)
  • kubectl: v1.25+ (Installation Guide)
  • Crossplane CLI: v1.17+ (Installation Guide)
  • Docker: v24+ (for testing composition functions)
  • Helm: v3.0+ (for Crossplane installation)

Optional Tools

  • k9s: Terminal UI for Kubernetes
  • yq: YAML processor
  • jq: JSON processor
  • VS Code: With Kubernetes and YAML extensions

Directory Structure

learning-crossplane/ β”‚ β”œβ”€β”€ README.md # This file β”œβ”€β”€ LICENSE # MIT License β”œβ”€β”€ .gitignore # Git ignore patterns β”‚ β”œβ”€β”€ 01-fundamentals/ # Crossplane fundamentals β”‚ β”œβ”€β”€ README.md # Fundamentals overview β”‚ β”œβ”€β”€ 01-installation/ # Installation methods β”‚ β”‚ β”œβ”€β”€ helm-install.yaml β”‚ β”‚ β”œβ”€β”€ helm-values.yaml β”‚ β”‚ └── verify-installation.sh β”‚ β”œβ”€β”€ 02-providers/ # Provider basics β”‚ β”‚ β”œβ”€β”€ provider-aws.yaml β”‚ β”‚ β”œβ”€β”€ provider-azure.yaml β”‚ β”‚ β”œβ”€β”€ provider-gcp.yaml β”‚ β”‚ β”œβ”€β”€ provider-kubernetes.yaml β”‚ β”‚ └── provider-config.yaml β”‚ β”œβ”€β”€ 03-managed-resources/ # Managed resources β”‚ β”‚ β”œβ”€β”€ s3-bucket.yaml β”‚ β”‚ β”œβ”€β”€ rds-instance.yaml β”‚ β”‚ β”œβ”€β”€ vpc.yaml β”‚ β”‚ └── README.md β”‚ └── 04-basic-concepts/ # Core concepts β”‚ β”œβ”€β”€ crds.yaml β”‚ β”œβ”€β”€ custom-resources.yaml β”‚ └── resource-lifecycle.md β”‚ β”œβ”€β”€ 02-compositions/ # Composition fundamentals β”‚ β”œβ”€β”€ README.md # Composition overview β”‚ β”œβ”€β”€ 01-xrd-basics/ # XRD fundamentals β”‚ β”‚ β”œβ”€β”€ simple-xrd.yaml β”‚ β”‚ β”œβ”€β”€ namespaced-xrd.yaml β”‚ β”‚ β”œβ”€β”€ cluster-scoped-xrd.yaml β”‚ β”‚ └── schema-definition.yaml β”‚ β”œβ”€β”€ 02-basic-compositions/ # Basic compositions β”‚ β”‚ β”œβ”€β”€ patch-and-transform.yaml β”‚ β”‚ β”œβ”€β”€ resource-templates.yaml β”‚ β”‚ └── composition-metadata.yaml β”‚ β”œβ”€β”€ 03-composite-resources/ # Working with XRs β”‚ β”‚ β”œβ”€β”€ namespaced-xr.yaml β”‚ β”‚ β”œβ”€β”€ cluster-xr.yaml β”‚ β”‚ β”œβ”€β”€ xr-status.yaml β”‚ β”‚ └── README.md β”‚ └── 04-v2-migration/ # v1 to v2 migration β”‚ β”œβ”€β”€ legacy-composition.yaml β”‚ β”œβ”€β”€ v2-composition.yaml β”‚ └── migration-guide.md β”‚ β”œβ”€β”€ 03-composition-functions/ # Composition functions β”‚ β”œβ”€β”€ README.md # Functions overview β”‚ β”œβ”€β”€ 01-patch-and-transform/ # P&T function β”‚ β”‚ β”œβ”€β”€ function-install.yaml β”‚ β”‚ β”œβ”€β”€ simple-transform.yaml β”‚ β”‚ β”œβ”€β”€ conditional-patching.yaml β”‚ β”‚ └── examples/ β”‚ β”œβ”€β”€ 02-function-pipeline/ # Function pipelines β”‚ β”‚ β”œβ”€β”€ pipeline-composition.yaml β”‚ β”‚ β”œβ”€β”€ multi-function.yaml β”‚ β”‚ └── function-chaining.yaml β”‚ β”œβ”€β”€ 03-templating-functions/ # Template-based functions β”‚ β”‚ β”œβ”€β”€ go-templating/ β”‚ β”‚ β”‚ β”œβ”€β”€ function-config.yaml β”‚ β”‚ β”‚ └── template-examples.yaml β”‚ β”‚ β”œβ”€β”€ kcl-function/ β”‚ β”‚ β”‚ β”œβ”€β”€ function-install.yaml β”‚ β”‚ β”‚ └── kcl-examples/ β”‚ β”‚ └── helm-function/ β”‚ β”‚ └── helm-composition.yaml β”‚ β”œβ”€β”€ 04-custom-functions/ # Writing custom functions β”‚ β”‚ β”œβ”€β”€ python-function/ β”‚ β”‚ β”‚ β”œβ”€β”€ function.py β”‚ β”‚ β”‚ β”œβ”€β”€ Dockerfile β”‚ β”‚ β”‚ β”œβ”€β”€ requirements.txt β”‚ β”‚ β”‚ └── README.md β”‚ β”‚ β”œβ”€β”€ go-function/ β”‚ β”‚ β”‚ β”œβ”€β”€ main.go β”‚ β”‚ β”‚ β”œβ”€β”€ go.mod β”‚ β”‚ β”‚ β”œβ”€β”€ Dockerfile β”‚ β”‚ β”‚ └── README.md β”‚ β”‚ └── function-testing/ β”‚ β”‚ β”œβ”€β”€ test-inputs.yaml β”‚ β”‚ └── render-tests.sh β”‚ └── 05-advanced-patterns/ # Advanced function patterns β”‚ β”œβ”€β”€ conditional-logic.yaml β”‚ β”œβ”€β”€ loops-iteration.yaml β”‚ β”œβ”€β”€ external-data.yaml β”‚ └── error-handling.yaml β”‚ β”œβ”€β”€ 04-real-world-examples/ # Production-ready examples β”‚ β”œβ”€β”€ README.md # Examples overview β”‚ β”œβ”€β”€ 01-database-platform/ # Database self-service β”‚ β”‚ β”œβ”€β”€ xrd/ β”‚ β”‚ β”‚ └── database-xrd.yaml β”‚ β”‚ β”œβ”€β”€ compositions/ β”‚ β”‚ β”‚ β”œβ”€β”€ postgres-composition.yaml β”‚ β”‚ β”‚ β”œβ”€β”€ mysql-composition.yaml β”‚ β”‚ β”‚ └── mongodb-composition.yaml β”‚ β”‚ β”œβ”€β”€ claims/ β”‚ β”‚ β”‚ └── sample-database.yaml β”‚ β”‚ └── README.md β”‚ β”œβ”€β”€ 02-application-platform/ # App deployment platform β”‚ β”‚ β”œβ”€β”€ xrd/ β”‚ β”‚ β”‚ └── app-xrd.yaml β”‚ β”‚ β”œβ”€β”€ composition/ β”‚ β”‚ β”‚ └── app-composition.yaml β”‚ β”‚ β”œβ”€β”€ examples/ β”‚ β”‚ β”‚ β”œβ”€β”€ frontend-app.yaml β”‚ β”‚ β”‚ └── backend-app.yaml β”‚ β”‚ └── README.md β”‚ β”œβ”€β”€ 03-network-platform/ # Network infrastructure β”‚ β”‚ β”œβ”€β”€ vpc-xrd.yaml β”‚ β”‚ β”œβ”€β”€ vpc-composition.yaml β”‚ β”‚ β”œβ”€β”€ subnet-composition.yaml β”‚ β”‚ └── security-group-composition.yaml β”‚ β”œβ”€β”€ 04-observability-platform/ # Monitoring & logging β”‚ β”‚ β”œβ”€β”€ monitoring-xrd.yaml β”‚ β”‚ β”œβ”€β”€ prometheus-composition.yaml β”‚ β”‚ β”œβ”€β”€ grafana-composition.yaml β”‚ β”‚ └── loki-composition.yaml β”‚ └── 05-multi-cloud/ # Multi-cloud patterns β”‚ β”œβ”€β”€ provider-selection.yaml β”‚ β”œβ”€β”€ aws-composition.yaml β”‚ β”œβ”€β”€ azure-composition.yaml β”‚ └── gcp-composition.yaml β”‚ β”œβ”€β”€ 05-security/ # Security best practices β”‚ β”œβ”€β”€ README.md # Security overview β”‚ β”œβ”€β”€ 01-rbac/ # Access control β”‚ β”‚ β”œβ”€β”€ roles.yaml β”‚ β”‚ β”œβ”€β”€ rolebindings.yaml β”‚ β”‚ └── service-accounts.yaml β”‚ β”œβ”€β”€ 02-secrets-management/ # Secrets handling β”‚ β”‚ β”œβ”€β”€ external-secrets.yaml β”‚ β”‚ β”œβ”€β”€ sealed-secrets.yaml β”‚ β”‚ └── vault-integration.yaml β”‚ β”œβ”€β”€ 03-policy-enforcement/ # Policy as code β”‚ β”‚ β”œβ”€β”€ opa-policies/ β”‚ β”‚ β”œβ”€β”€ kyverno-policies/ β”‚ β”‚ └── admission-control.yaml β”‚ └── 04-compliance/ # Compliance patterns β”‚ β”œβ”€β”€ audit-logging.yaml β”‚ └── compliance-checks.yaml β”‚ β”œβ”€β”€ 06-operations/ # Operational excellence β”‚ β”œβ”€β”€ README.md # Operations overview β”‚ β”œβ”€β”€ 01-monitoring/ # Monitoring setup β”‚ β”‚ β”œβ”€β”€ prometheus-rules.yaml β”‚ β”‚ β”œβ”€β”€ grafana-dashboards/ β”‚ β”‚ └── alerts.yaml β”‚ β”œβ”€β”€ 02-troubleshooting/ # Debug procedures β”‚ β”‚ β”œβ”€β”€ debug-commands.sh β”‚ β”‚ β”œβ”€β”€ common-issues.md β”‚ β”‚ └── logs-analysis.md β”‚ β”œβ”€β”€ 03-backup-restore/ # DR procedures β”‚ β”‚ β”œβ”€β”€ backup-strategy.md β”‚ β”‚ └── restore-procedures.md β”‚ β”œβ”€β”€ 04-upgrades/ # Upgrade strategies β”‚ β”‚ β”œβ”€β”€ upgrade-checklist.md β”‚ β”‚ β”œβ”€β”€ rollback-plan.md β”‚ β”‚ └── version-migration.yaml β”‚ └── 05-performance/ # Performance tuning β”‚ β”œβ”€β”€ scaling-config.yaml β”‚ └── optimization-guide.md β”‚ β”œβ”€β”€ 07-ci-cd-integration/ # CI/CD pipelines β”‚ β”œβ”€β”€ README.md # CI/CD overview β”‚ β”œβ”€β”€ 01-gitops/ # GitOps workflows β”‚ β”‚ β”œβ”€β”€ argocd/ β”‚ β”‚ β”‚ β”œβ”€β”€ application.yaml β”‚ β”‚ β”‚ └── app-of-apps.yaml β”‚ β”‚ └── flux/ β”‚ β”‚ β”œβ”€β”€ kustomization.yaml β”‚ β”‚ └── helmrelease.yaml β”‚ β”œβ”€β”€ 02-github-actions/ # GitHub workflows β”‚ β”‚ β”œβ”€β”€ validate-composition.yaml β”‚ β”‚ β”œβ”€β”€ test-functions.yaml β”‚ β”‚ └── deploy-crossplane.yaml β”‚ β”œβ”€β”€ 03-gitlab-ci/ # GitLab pipelines β”‚ β”‚ └── .gitlab-ci.yaml β”‚ └── 04-testing/ # Automated testing β”‚ β”œβ”€β”€ composition-tests/ β”‚ β”œβ”€β”€ function-tests/ β”‚ └── integration-tests/ β”‚ β”œβ”€β”€ 08-advanced-topics/ # Advanced scenarios β”‚ β”œβ”€β”€ README.md # Advanced topics overview β”‚ β”œβ”€β”€ 01-custom-providers/ # Building providers β”‚ β”‚ β”œβ”€β”€ provider-template/ β”‚ β”‚ └── upjet-provider/ β”‚ β”œβ”€β”€ 02-function-development/ # Advanced function dev β”‚ β”‚ β”œβ”€β”€ sdk-usage/ β”‚ β”‚ β”œβ”€β”€ grpc-implementation/ β”‚ β”‚ └── optimization-patterns/ β”‚ β”œβ”€β”€ 03-webhooks/ # Validation webhooks β”‚ β”‚ β”œβ”€β”€ admission-webhook.yaml β”‚ β”‚ └── validation-logic.go β”‚ └── 04-event-driven/ # Event-driven patterns β”‚ β”œβ”€β”€ triggers.yaml β”‚ └── event-handlers/ β”‚ β”œβ”€β”€ 09-reference/ # Reference materials β”‚ β”œβ”€β”€ README.md # Reference overview β”‚ β”œβ”€β”€ 01-api-reference/ # API documentation β”‚ β”‚ β”œβ”€β”€ xrd-api.md β”‚ β”‚ β”œβ”€β”€ composition-api.md β”‚ β”‚ └── function-api.md β”‚ β”œβ”€β”€ 02-cli-reference/ # CLI commands β”‚ β”‚ β”œβ”€β”€ crossplane-cli.md β”‚ β”‚ └── kubectl-crossplane.md β”‚ β”œβ”€β”€ 03-glossary/ # Terms & definitions β”‚ β”‚ └── glossary.md β”‚ └── 04-cheat-sheets/ # Quick references β”‚ β”œβ”€β”€ commands.md β”‚ β”œβ”€β”€ patterns.md β”‚ └── troubleshooting.md β”‚ β”œβ”€β”€ 10-labs/ # Hands-on laboratories β”‚ β”œβ”€β”€ README.md # Labs overview β”‚ β”œβ”€β”€ lab-01-installation/ # Lab 1: Setup β”‚ β”‚ β”œβ”€β”€ instructions.md β”‚ β”‚ β”œβ”€β”€ lab-files/ β”‚ β”‚ └── solutions/ β”‚ β”œβ”€β”€ lab-02-first-composition/ # Lab 2: Basic composition β”‚ β”‚ β”œβ”€β”€ instructions.md β”‚ β”‚ β”œβ”€β”€ lab-files/ β”‚ β”‚ └── solutions/ β”‚ β”œβ”€β”€ lab-03-functions/ # Lab 3: Functions β”‚ β”‚ β”œβ”€β”€ instructions.md β”‚ β”‚ β”œβ”€β”€ lab-files/ β”‚ β”‚ └── solutions/ β”‚ β”œβ”€β”€ lab-04-database-platform/ # Lab 4: Database platform β”‚ β”‚ β”œβ”€β”€ instructions.md β”‚ β”‚ β”œβ”€β”€ lab-files/ β”‚ β”‚ └── solutions/ β”‚ └── lab-05-production/ # Lab 5: Production β”‚ β”œβ”€β”€ instructions.md β”‚ β”œβ”€β”€ lab-files/ β”‚ └── solutions/ β”‚ β”œβ”€β”€ 11-case-studies/ # Real-world case studies β”‚ β”œβ”€β”€ README.md # Case studies overview β”‚ β”œβ”€β”€ platform-team-adoption/ # Platform engineering β”‚ β”œβ”€β”€ multi-tenant-saas/ # SaaS platforms β”‚ β”œβ”€β”€ hybrid-cloud/ # Hybrid deployments β”‚ └── edge-computing/ # Edge scenarios β”‚ β”œβ”€β”€ scripts/ # Utility scripts β”‚ β”œβ”€β”€ install-crossplane.sh β”‚ β”œβ”€β”€ setup-providers.sh β”‚ β”œβ”€β”€ validate-compositions.sh β”‚ β”œβ”€β”€ cleanup.sh β”‚ └── test-functions.sh β”‚ β”œβ”€β”€ docs/ # Additional documentation β”‚ β”œβ”€β”€ architecture/ # Architecture guides β”‚ β”‚ β”œβ”€β”€ control-plane-design.md β”‚ β”‚ └── composition-patterns.md β”‚ β”œβ”€β”€ tutorials/ # Step-by-step tutorials β”‚ β”‚ β”œβ”€β”€ getting-started.md β”‚ β”‚ β”œβ”€β”€ building-platforms.md β”‚ β”‚ └── advanced-compositions.md β”‚ └── videos/ # Video resources β”‚ └── video-links.md β”‚ └── examples/ # Quick reference examples β”œβ”€β”€ simple-s3-bucket/ β”œβ”€β”€ complete-database/ β”œβ”€β”€ app-deployment/ └── multi-resource-composition/ 

Getting Started

Quick Start (5 minutes)

  1. Install Crossplane:

    # Create a Kubernetes cluster (if needed) kind create cluster --name crossplane-playground # Install Crossplane using Helm helm repo add crossplane-stable https://charts.crossplane.io/stable helm repo update helm install crossplane \ --namespace crossplane-system \ --create-namespace \ crossplane-stable/crossplane
  2. Verify Installation:

    kubectl get pods -n crossplane-system
  3. Install Crossplane CLI:

    curl -sL "https://raw.githubusercontent.com/crossplane/crossplane/main/install.sh" | sh sudo mv crossplane /usr/local/bin
  4. Run Your First Example:

    cd 01-fundamentals/01-installation ./verify-installation.sh

Detailed Setup

See 01-fundamentals/README.md for comprehensive installation and setup instructions.

Learning Path

🌱 Beginner Track (Weeks 1-2)

Goal: Understand Crossplane fundamentals and basic resource management

  1. Fundamentals (01-fundamentals/)

    • Install Crossplane
    • Understand providers and managed resources
    • Learn about Custom Resource Definitions (CRDs)
  2. Basic Compositions (02-compositions/01-xrd-basics/)

    • Create your first XRD
    • Build simple compositions
    • Deploy composite resources

Lab: Complete 10-labs/lab-01-installation/ and lab-02-first-composition/

🌿 Intermediate Track (Weeks 3-4)

Goal: Master composition functions and build reusable platform APIs

  1. Composition Functions (03-composition-functions/)

    • Work with Patch & Transform
    • Build function pipelines
    • Use templating functions (KCL, Go templates)
  2. Real-World Patterns (04-real-world-examples/)

    • Database self-service platform
    • Application deployment automation
    • Network infrastructure management

Lab: Complete 10-labs/lab-03-functions/ and lab-04-database-platform/

🌳 Advanced Track (Weeks 5-6)

Goal: Implement production-ready control planes with security and operations

  1. Security & Compliance (05-security/)

    • RBAC and access control
    • Secrets management
    • Policy enforcement
  2. Operations (06-operations/)

    • Monitoring and observability
    • Troubleshooting patterns
    • Backup and disaster recovery
  3. CI/CD Integration (07-ci-cd-integration/)

    • GitOps workflows
    • Automated testing
    • Deployment pipelines

Lab: Complete 10-labs/lab-05-production/

πŸš€ Expert Track (Ongoing)

Goal: Extend Crossplane and contribute to the ecosystem

  1. Advanced Topics (08-advanced-topics/)

    • Build custom providers
    • Develop custom functions
    • Implement webhooks
  2. Community Contribution

    • Contribute to open-source functions
    • Share composition patterns
    • Write blog posts and tutorials

Key Concepts

Composite Resource Definition (XRD)

Defines the schema for your custom API:

apiVersion: apiextensions.crossplane.io/v2 kind: CompositeResourceDefinition metadata: name: databases.example.io spec: scope: Namespaced # New in v2: Namespaced by default group: example.io names: kind: Database plural: databases versions: - name: v1 served: true referenceable: true schema: openAPIV3Schema: type: object properties: spec: type: object properties: size: type: string enum: [small, medium, large] engine: type: string enum: [postgres, mysql]

Composition

Templates that define what resources to create:

apiVersion: apiextensions.crossplane.io/v1 kind: Composition metadata: name: database-aws spec: compositeTypeRef: apiVersion: example.io/v1 kind: Database mode: Pipeline # Use function pipeline pipeline: - step: patch-and-transform functionRef: name: crossplane-contrib-function-patch-and-transform input: apiVersion: pt.fn.crossplane.io/v1beta1 kind: Resources resources: - name: rds-instance base: apiVersion: rds.aws.crossplane.io/v1alpha1 kind: Instance spec: forProvider: engine: postgres

Composition Functions

Extend composition with custom logic:

apiVersion: pkg.crossplane.io/v1 kind: Function metadata: name: function-patch-and-transform spec: package: xpkg.crossplane.io/crossplane-contrib/function-patch-and-transform:v0.8.2

Popular functions:

  • function-patch-and-transform: Traditional P&T compositions
  • function-go-templating: Go template-based composition
  • function-kcl: KCL language for composition
  • function-auto-ready: Automatic readiness detection
  • Custom functions: Written in Go or Python

What's New in Crossplane v2

  • Namespaced XRs: Composite resources are namespaced by default
  • No More Claims: Simplified architecture removes the claim abstraction
  • Better App Support: First-class support for managing applications
  • Backward Compatible: v1 compositions continue to work

Hands-On Labs

Each lab includes:

  • Detailed step-by-step instructions
  • Starter files and templates
  • Complete solutions
  • Validation tests

Available Labs

  1. Lab 1: Installation & Setup (30 min)
  2. Lab 2: First Composition (45 min)
  3. Lab 3: Composition Functions (60 min)
  4. Lab 4: Database Platform (90 min)
  5. Lab 5: Production Deployment (120 min)

See 10-labs/README.md for detailed lab instructions.

Best Practices

Composition Design

βœ… DO:

  • Use meaningful, descriptive names for XRDs and compositions
  • Version your XRDs appropriately
  • Leverage function pipelines for complex logic
  • Document composition behavior in annotations
  • Use namespaced XRs unless you need cluster scope

❌ DON'T:

  • Embed sensitive data directly in compositions
  • Create overly complex single compositions
  • Skip validation schemas in XRDs
  • Mix v1 and v2 patterns in the same platform

Security

  • Use RBAC to restrict access to compositions
  • Leverage external secrets management
  • Implement policy enforcement with OPA or Kyverno
  • Enable audit logging
  • Regularly scan provider images

Operations

  • Monitor composition reconciliation metrics
  • Set up alerting for composition failures
  • Implement backup strategies for XR state
  • Test compositions with crossplane render
  • Use GitOps for composition lifecycle

Function Development

  • Write comprehensive tests for custom functions
  • Use the official SDKs (Go, Python)
  • Document function inputs clearly
  • Handle errors gracefully
  • Consider performance implications

Resources

Official Documentation

Community

Learning Materials

Tools & Extensions

Providers

Composition Functions

Contributing

Contributions are welcome! This is a learning resource for the community.

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-example)
  3. Add your example or improvement
  4. Ensure documentation is updated
  5. Submit a pull request

Contribution Guidelines

  • Follow existing directory structure
  • Include comprehensive README files
  • Add comments to complex YAML
  • Provide working examples
  • Test all configurations before submitting
  • Follow Crossplane best practices

What to Contribute

  • New composition examples
  • Custom function implementations
  • Real-world case studies
  • Improved documentation
  • Bug fixes and clarifications
  • Additional labs and tutorials

Roadmap

Planned Content

  • Advanced multi-cloud patterns
  • Service mesh integration examples
  • Cost optimization strategies
  • Disaster recovery blueprints
  • Edge computing scenarios
  • Machine learning platform examples

Stay Updated

Watch this repository for updates as Crossplane evolves. Major updates planned for:

  • Crossplane v2.2 (February 2026)
  • Crossplane v2.3 (May 2026)

License

This repository is licensed under the MIT License. See LICENSE for details.

Acknowledgments

  • Crossplane maintainers and community
  • CNCF for hosting the project
  • All contributors to this learning resource
  • The platform engineering community

Author

Willem van Heemstra

  • Security Domain Expert & Cloud Engineer
  • Focus: DevSecOps, Cloud Security, Platform Engineering
  • Location: Eersel, Netherlands

⭐ If you find this resource helpful, please star the repository!

🀝 Contributions and feedback are always welcome!

πŸ“§ Questions? Open an issue or join the Crossplane Slack


Last Updated: December 24, 2025 Crossplane Version: v2.1 (November 2025) CNCF Status: Graduated Project (October 2025)

About

Learning Crossplane

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published