Crossplane is an open source control plane that allows you to manage applications and infrastructure the Kubernetes way. It provides the following features:
- Deployment and management of cloud provider managed services using the Kubernetes API.
- Management and scheduling of configuration data across multiple Kubernetes clusters.
- Separation of concern between infrastructure owners, application owners, and developers.
- Infrastructure agnostic packaging of applications and their dependencies.
- Scheduling applications into different clusters, zones, and regions.
Crossplane does not:
- Require that you run your workloads on Kubernetes.
- Manage the data plane across Kubernetes clusters.
- Manage or provision non-hosted Kubernetes clusters.
Crossplane can be installed into any Kubernetes cluster, and is compatible with any Kubernetes-native project. It manages external services by installing Custom Resource Definitions (CRDs) and reconciling instances of those Custom Resources. Crossplane is built to be extensible, meaning that anyone can add functionality for an new or existing cloud provider.
Crossplane is comprised of four main components:
- Core Crossplane: the set of Kubernetes CRDs and controllers that manage
applications, as well as the scheduling of configuration data to remote Kubernetes clusters.
- Providers: the set of Kubernetes CRDs and controllers that provision and manage services on cloud providers. A cloud provider is any service that exposes infrastructure via an API.
- Stacks: a bundled set of custom resources that together represent an environment on a cloud provider. The bundle of instances can be created by a single custom resource.
- Applications: a deployable unit of code and configuration, which, when
created, may involve provisioning new services which are managed by a
provider, or consuming services created by a
- Examples: Wordpress