crossplane

module
v1.1.0-rc.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 15, 2021 License: Apache-2.0

README

CI GitHub release Docker Pulls Go Report Card Slack Twitter Follow

Crossplane

Crossplane, a Cloud Native Computing Foundation sandbox project, is an open source Kubernetes add-on that extends any cluster with the ability to provision and manage cloud infrastructure, services, and applications using kubectl, GitOps, or any tool that works with the Kubernetes API.

With Crossplane you can:

  • Provision & manage cloud infrastructure with kubectl

    • Install Crossplane to provision and manage cloud infrastructure and services from any Kubernetes cluster.
    • Provision infrastructure primitives from any provider (GCP, AWS, Azure, Alibaba, on-prem) and use them alongside existing application configurations.
    • Version, manage, and deploy with your favorite tools and workflows that you’re using with your clusters today.
  • Publish custom infrastructure resources for your applications to use

    • Define, compose, and publish your own infrastructure resources with declarative YAML, resulting in your own infrastructure CRDs being added to the Kubernetes API for applications to use.
    • Hide infrastructure complexity and include policy guardrails, so applications can easily and safely consume the infrastructure they need, using any tool that works with the Kubernetes API.
    • Consume infrastructure resources alongside any Kubernetes application to provision and manage the cloud services they need with Crossplane as an add-on to any Kubernetes cluster.
  • Deploy applications using a team-centric approach with OAM

    • Define cloud native applications and the infrastructure they require with the Open Application Model (OAM).
    • Collaborate with a team-centric approach with a strong separation of concerns:
      • Infrastructure operators - provide infrastructure and services for applications to consume
      • Application developers - build application components independent of infrastructure
      • Application operators - compose, deploy, and run application configurations
    • Deploy application configurations from app delivery pipelines or GitOps workflows, using the proven Kubernetes declarative model.

Releases

Currently supported releases, as well as the next upcoming release are listed below. For more information take a look at the Crossplane release cycle documentation.

Release Current Patch Support Type Release Date EOL
v1.0 v1.0.0 LTS Dec 14, 2020 July 2022
v1.1 Upcoming Interim Mar 2, 2021 May 2021

Getting Started

Take a look at the documentation to get started.

Mission

Crossplane strives to be the best Kubernetes add-on to provision and manage the infrastructure and services your applications need directly from kubectl. A huge part of this mission is arriving at an elegant, flexible way to define, compose, and publish your own infrastructure resources to the Kubernetes API and to model and manage cloud native applications.

The path of cloud native apps from developer laptop into production requires collaboration across teams to build the app itself, deploy and manage the app and it’s infrastructure, and publishing infrastructure resources that embody organizational best practices and security policies.

Today, multiple tools and management models must be glued together in deployment pipelines that are often fragile and error prone. Teams can find it difficult to collaborate in an effective way when aspects of an application are blurred, resulting in a lack of clear ownership and conflicts integrating changes. Requiring team members to master multiple tools, languages, and philosophies, while understanding the interactions and failure modes between them can significantly impede an organization’s ability to deliver applications efficiently.

Crossplane believes that a team-centric approach with a strong separation of concerns combined with the proven Kubernetes declarative model is the best way to provision and manage infrastructure and cloud native applications. Teams should be able to publish infrastructure resources for applications to consume, define application components independent of infrastructure, and compose both into complete application configurations -- all using declarative YAML that can be deployed with kubectl from app delivery pipelines or with GitOps workflows.

This team-centric approach reflects individuals often specializing in the following roles:

  • Infrastructure Operators - provide infrastructure and services for apps to consume
  • Application Developers - build application components independent of infrastructure
  • Application Operators - compose, deploy, and run application configurations

This separation of concerns is core to Crossplane’s approach to infrastructure and application management, so team members can deliver value by focusing on what they know best.

With Crossplane, infrastructure operators can define custom infrastructure resources with declarative YAML and publish them for applications to consume as Kubernetes custom resources or with any tool that works with the Kubernetes API. These infrastructure resources can be used with existing Kubernetes applications (Deployments, Services) and with application definition models like OAM.

The result is a consistent, integrated, and modular approach to managing infrastructure and application configurations, that can be deployed with the same tooling including kubectl, GitOps, and anything can talk with the Kubernetes API.

Get Involved

The Crossplane community meeting takes place every other Monday at 10:00am Pacific Time. Anyone who wants to discuss the direction of the project, design and implementation reviews, or raise general questions with the broader community is encouraged to join.

Crossplane is a community driven project; we welcome your contribution. To file a bug, suggest an improvement, or request a new feature please open an issue against Crossplane or the relevant provider. Refer to our contributing guide for more information on how you can help.

License

Crossplane is under the Apache 2.0 license.

FOSSA Status

Directories

Path Synopsis
Package apis contains Kubernetes API groups
Package apis contains Kubernetes API groups
apiextensions
Package apiextensions contains Kubernetes API groups for extension types of Crossplane.
Package apiextensions contains Kubernetes API groups for extension types of Crossplane.
apiextensions/v1
Package v1 contains API types that extend the Crossplane API.
Package v1 contains API types that extend the Crossplane API.
apiextensions/v1beta1
Package v1beta1 contains API types that extend the Crossplane API.
Package v1beta1 contains API types that extend the Crossplane API.
pkg
Package pkg contains Kubernetes API groups for Crossplane packages.
Package pkg contains Kubernetes API groups for Crossplane packages.
pkg/meta/v1
Package v1 contains meta types used to configure Crossplane packages.
Package v1 contains meta types used to configure Crossplane packages.
pkg/meta/v1alpha1
Package v1alpha1 contains meta types used to configure Crossplane packages.
Package v1alpha1 contains meta types used to configure Crossplane packages.
pkg/v1
Package v1 contains resources relating to Crossplane packages.
Package v1 contains resources relating to Crossplane packages.
pkg/v1alpha1
Package v1alpha1 contains resources relating to Crossplane packages.
Package v1alpha1 contains resources relating to Crossplane packages.
pkg/v1beta1
Package v1beta1 contains resources relating to Crossplane packages.
Package v1beta1 contains resources relating to Crossplane packages.
cmd
internal
client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/apiextensions/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/apiextensions/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/pkg/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/pkg/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/pkg/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/pkg/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/pkg/v1beta1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/pkg/v1beta1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
controller/apiextensions/claim
Package claim provides a composite resource claim reconciler.
Package claim provides a composite resource claim reconciler.
dag
xcrd
Package xcrd generates CustomResourceDefinitions from Crossplane definitions.
Package xcrd generates CustomResourceDefinitions from Crossplane definitions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL