Documentation

PLEASE NOTE: This document applies to v0.3 version and not to the latest release v0.5

Documentation for other releases can be found by using the version selector in the top right of any doc page.

Welcome to Crossplane!

Crossplane is an open source multicloud control plane to manage your cloud-native applications and infrastructure across environments, clusters, regions and clouds. It enables provisioning and full-lifecycle management of applications and managed services from your choice of cloud using kubectl.

Crossplane can be installed into an existing Kubernetes cluster to add managed service provisioning or deployed as a dedicated control plane for multi-cluster management and workload scheduling.

Crossplane enables the community to build and publish Stacks to add more clouds and cloud services to Crossplane with support for out-of-tree extensibility and independent release schedules. Crossplane includes Stacks for GCP, AWS, and Azure today.

Crossplane

Crossplane has four main feature areas that can be used independently:

  1. Crossplane Services - provision managed services from kubectl.
  2. Crossplane Stacks - extend Crossplane with new functionality.
  3. Crossplane Workloads - define complete applications and schedule across clusters, regions, and clouds.
  4. Crossplane Clusters - manage multiple Kubernetes clusters from a single control plane.

Crossplane Services

Crossplane Services supports managed service provisioning using kubectl. It applies the Kubernetes pattern for Persistent Volume (PV) claims and classes to managed service provisioning with support for a strong separation of concern between app teams and cluster administrators.

App teams can choose between cloud-specific and portable services including managed databases, message queues, buckets, data pipelines, and more to define complete applications, build once, and deploy into multiple clouds using continuous delivery pipelines or GitOps flows.

Cluster administrators can define self-service policies and best-practice configurations to accelerate app delivery and improve security, so app teams can focus on delivering their app instead of cloud-specific infrastructure details.

The Crossplane Services Guide explores related concepts and shows how to use Crossplane Services to deploy a Wordpress instance that securely consumes a managed MySQLInstance from GCP, AWS, or Azure from kubectl.

Crossplane Stacks

Stacks extend Crossplane with new functionality and can be installed using the Stack Manager via the Kubernetes API or with the crossplane kubectl plugin stack install command.

Crossplane is built on the Kubernetes API machinery as a platform, and Stacks simplify extending the Kubernetes API to provision and lifecycle manage apps and the managed service infrastructure they depend on, including Stack security and isolation.

The Crossplane Stacks Guide shows how to deploy a portable Wordpress Stack into multiple clouds using Infra Stacks including stack-gcp, stack-aws, and stack-azure.

Infrastructure Stacks

Infra Stacks like stack-gcp, stack-aws, and stack-azure extend the Kubernetes API to support managed service provisioning (DBaaS, cache, buckets), secure connectivity (VPCs, subnets, peering, ACLs, secrets), and provisioning managed Kubernetes clusters on demand to further isolate the blast radius of applications.

Infra Stacks are pre-built and published to the Stacks registry where they can be installed by a Cluster Admin using a ClusterStackInstall Kubernetes API kind or with the stack install command that installs a Stacks with permissions to watch resources at a cluster level, across all namespaces.

Infra Stacks are covered in both the Crossplane Services Guide and the Crossplane Stacks Guide.

Application Stacks

App Stacks depend on Infra Stacks like stack-gcp, stack-aws, and stack-azure to provide managed services via the Kubernetes API.

App Stacks are pre-built and published to the Stacks registry where they can be installed by an app team using a StackInstall Kubernetes API kind or with the stack install command that installs Stacks with permissions only within a single namespace.

The Crossplane Stacks Guide covers how to deploy a portable Wordpress Stack into multiple clouds using Infra Stacks such as stack-gcp, stack-aws, and stack-azure.

Build your own Stack

The Crossplane Developer Guide shows how to build and extend Infra Stacks and App Stacks.

Crossplane Workloads

Crossplane includes an extensible workload scheduler that observes application policies to select a suitable target cluster from a pool of available clusters. The workload scheduler can be customized to consider a number of criteria including capabilities, availability, reliability, cost, regions, and performance while deploying workloads and their resources.

Complex workloads can be modeled as a KubernetesApplication resource as done by the portable Wordpress Stack which automates the lifecycle of a KubernetesApplication including provisioning and secure connectivity to a managed MySQLInstance.

Crossplane Clusters

Crossplane supports dynamic provisioning of managed Kubernetes clusters from a single control plane with consistent multi-cluster best-practice configuration and secure connectivity between target Kubernetes clusters and the managed services provisioned for applications. Managed Kubernetes clusters can be dynamically provisioned with a KubernetesCluster resource as done by the portable Wordpress Stack which automates the lifecycle of a KubernetesCluster.

Architecture and Vision

The full architecture and vision of the Crossplane project is described in depth in the architecture document. It is the best place to learn more about how Crossplane fits into the Kubernetes ecosystem, the intended use cases, and comparisons to existing projects.

Learn More

If you have any questions, please drop us a note on Crossplane Slack or contact us!

Next Steps

Use stack-gcp, stack-aws, and stack-azure in the the following guides:

Learn more about Crossplane.