You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make it easy for new contributors to [a] extend existing infra stacks to add support for additional managed cloud services (Kafka, Spark, Hadoop), and [b] create new infra stacks for additional cloud providers (Alibaba Cloud, Tencent, Digital Ocean).
A Stack is a set of CRDs and controllers that extend Crossplane. An infrastructure stack adds support for infrastructure (e.g. databases, VMs, etc), as opposed to adding support for an application (e.g. Wordpress, GitLab). Crossplane's existing managed resource functionality could be broken up into GCP, Azure, and AWS infrastructure stacks.
We hope that breaking Crossplane's infrastructure managed functionality up into stacks will make it easier for the community to write and maintain their own infrastructure stacks. Crossplane will likely provide some guide rails in the form of libraries and interfaces with which to write controllers, but we believe this would be best supplemented by great documentation.
What does it look like when we're done?
We have published an end-to-end guide to writing an infrastructure stack to https://crossplane.io/.
Our guide assumes familiarity with Kubernetes and Go, but not kubebuilder. It prefers linking to kubebuilder documentation over re-documenting it.
Our guide covers at least:
Why write an infrastructure stack?
Crossplane concepts and terminology including managed resource, resource class, default resource classes, resource claim, external resource, etc.
Any patterns any opinions Crossplane recommends on top of the existing kubebuilder documentation, for example fields required by all Crossplane CRDs, and recommended Reconciler scaffolds such as the resource claim, managed resource, and default resource class reconciler libraries.
How to build and package infrastructure stacks.
How could this be demonstrated?
Crossplane user reads the blog post describing this new functionality
Click through to the updated user guide
Try out the updated example(s)
For example: Scenario 1: add new infra controller to existing infra stack in the crossplaneio org (TBD)
e.g.
raise issue & get community feedback
create CRD
create controller
submit PR, what we look for in new controller
Scenario 2: create new infra stack for unsupported cloud (TBD)
e.g.
Make it easy for new contributors to [a] extend existing infra stacks to add support for additional managed cloud services (Kafka, Spark, Hadoop), and [b] create new infra stacks for additional cloud providers (Alibaba Cloud, Tencent, Digital Ocean).
Part of the 0.3 release
Why? What problem are we solving?
A Stack is a set of CRDs and controllers that extend Crossplane. An infrastructure stack adds support for infrastructure (e.g. databases, VMs, etc), as opposed to adding support for an application (e.g. Wordpress, GitLab). Crossplane's existing managed resource functionality could be broken up into GCP, Azure, and AWS infrastructure stacks.
We hope that breaking Crossplane's infrastructure managed functionality up into stacks will make it easier for the community to write and maintain their own infrastructure stacks. Crossplane will likely provide some guide rails in the form of libraries and interfaces with which to write controllers, but we believe this would be best supplemented by great documentation.
What does it look like when we're done?
Reconciler
scaffolds such as the resource claim, managed resource, and default resource class reconciler libraries.How could this be demonstrated?
For example:
Scenario 1: add new infra controller to existing infra stack in the crossplaneio org (TBD)
e.g.
Scenario 2: create new infra stack for unsupported cloud (TBD)
e.g.
Related
The text was updated successfully, but these errors were encountered: