Crossplane Concepts: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
(Replaced content with "=External= =Internal= * Crossplane * Kubernetes Custom Resources =TODEPLETE= {{Internal|Crossplane Concep...")
 
(One intermediate revision by the same user not shown)
Line 5: Line 5:


=TODEPLETE=
=TODEPLETE=
{{Internal|Crossplane Concepts TODEPLETE NEW|Crossplane Concepts TODEPLETE NEW}}
{{Internal|Crossplane Concepts TODEPLETE|Crossplane Concepts TODEPLETE}}
{{Internal|Crossplane Concepts TODEPLETE|Crossplane Concepts TODEPLETE}}
=Overview=
Crossplane is an open source Kubernetes add-on that  transforms the Kubernetes cluster into a universal [[#Control_Plane|control plane]]. Crossplane enables platform teams to assemble infrastructure from multiple vendors, and expose higher level self-service APIs for application teams to consume. Crossplane enables applications and infrastructure configuration to co-exist in the same control plane. Control planes built with Crossplane integrate with CI/CD pipelines, so team can create, track and approve changes using GitOps best practices. Crossplane offers separation of concerns: allows implementing organizational concepts and policy at the API level.
Crossplane is a [[Cloud Native Compute Foundation]] project.
=Resources in a Crossplane Context=
==Custom Resource==
{{Internal|Kubernetes Custom Resources#Overview|Kubernetes Custom Resources}}
<font color=darkkhaki>Clarify the relationship between Crossplane composite resources and Kubernetes custom resources. Are XR custom resources?</font>
==<span id='Managed_Resource'></span><span id='MR'></span>Managed Resource (MR)==
{{External|https://crossplane.io/docs/v1.10/concepts/managed-resources.html}}
===Managed Resource Name===
{{External|https://crossplane.io/docs/v1.10/concepts/managed-resources.html#external-name}}
===Reconciliation===
==<span id='Composite_Resource'></span><span id='XR'></span>Composite Resource (XR)==
* It can be thought of as a type. <font color=darkkhaki>Can it, or it's the Composite Resource Definition that can be thought of as a type?</font>
* An arbitrary number of [[#Composition|compositions]] (implementations) can be mapped onto one composite resource type.
* Type of composite resource - defined with a Composite Resource Definition.
* Type of claim - defined with a Composite Resource Definition.
==External Resource==
=<span id='Claim'></span><span id='XRC'></span>Composite Resource Claim (Claim, XRC)=
=<span id='XRD'></span>Composite Resource Definition (XRD)=
=Composition=
<font color=darkkhaki>Why do we need a 'composition' to define how a composite resource maps onto managed resources? Why is not that information built into the composite resource definition itself?</font>
=<span id='Crossplane_Resource_Model'></span><span id='XRM'></span>Crossplane Resource Model (XRM)=
{{External|https://crossplane.io/docs/v1.10/concepts/terminology.html#crossplane-resource-model}}
* Standard Crossplane Resource Model fields.
=Package=
==Package Format==
{{External|https://github.com/crossplane/crossplane/blob/1aa83092172bdf0d2ed64754d33517c612ff7368/design/one-pager-package-format-v2.md#package-format-v2}}
==Package Varieties==
===Provider Package===
{{External|https://crossplane.io/docs/v1.10/concepts/packages.html#provider-packages}}
===Configuration Package===
{{External|https://crossplane.io/docs/v1.10/concepts/packages.html#configuration-packages}}
==Crossplane Package Manager==
=Provider=
<font color=darkkhaki>Is the provider a package?</font>
==Provider Kinds==
===Kubernetes Provider===
===Helm Provider===
=Configuration=
<font color=darkkhaki>Is the configuration a package?</font>
=Crossplane Architecture=
==Core Crossplane Controller==
=Miscellanea=
==Terraform vs. Crossplane==
Terraform is a command line tool, not a control plane. It is a short lived, one-shot process that only attempts to reconcile the desired configuration with the actual infrastructure when it is invoked (either from a CI/CD pipeline or command line on a laptop). Terraform offers a command-line interface to control plane APIs, while Crossplane is itself a control plane that can be used to build abstractions atop other control planes. It enables the platform team to offer their own control plane. Terraform offers discrete state reconciliation. Crossplane offers continuous state reconciliation. Crossplane is built as a series of long lived, always-on control loops. It constantly observes and corrects an organisation’s infrastructure to match its desired configuration whether changes are expected or not. This disincentivizes teams from circumventing Crossplane. When Crossplane has been asked to manage a piece of infrastructure any change made outside it will be automatically and persistently reverted.
==Control Plane==

Latest revision as of 20:31, 28 February 2023