mirror of https://github.com/crossplane/docs.git
docs snapshot for crossplane version `master`
This commit is contained in:
parent
f21eb24e13
commit
b94bd0a7b3
|
|
@ -12,50 +12,9 @@ concepts work together to allow for powerful separation of concern between
|
|||
different personas in an organization, meaning that each member of a team
|
||||
interacts with Crossplane at an appropriate level of abstraction.
|
||||
|
||||
![Crossplane Concepts]
|
||||
|
||||
The diagram above illustrates a common workflow using most of Crossplane's
|
||||
functionality.
|
||||
|
||||
An infrastructure operator...
|
||||
|
||||
1. Installs Crossplane and one or more [providers] (in this case
|
||||
[provider-azure]) as [packages]. This enables provisioning of external
|
||||
infrastructure from the Kubernetes cluster.
|
||||
2. Defines a new `CompositeMySQLInstance` composite resource and a corresponding
|
||||
`MySQLInstance` resource claim by authoring a `CompositeResourceDefinition`.
|
||||
3. Creates a `Composition` that instructs Crossplane how to render one or more
|
||||
managed resources installed by providers in response to the creation of the
|
||||
composite resource. In this case the `Composition` specifies that Azure
|
||||
`MySQLServer` and `MySQLFirewallRule` [managed resources] should be created
|
||||
to satisfy a `CompositeMySQLInstance`.
|
||||
|
||||
An application developer...
|
||||
|
||||
1. Creates an [OAM] `Component` for their service that specifies that they wish
|
||||
to be run as an OAM `ContainerizedWorkload`.
|
||||
2. Creates an OAM `Component` for their MySQL database that can be satisfied by
|
||||
the `MySQLInstance` resource claim.
|
||||
|
||||
An application operator...
|
||||
|
||||
1. Creates an OAM `ApplicationConfiguration`, which is comprised of the two
|
||||
`Component` types that were defined by the application developer, and a
|
||||
`ManualScalerTrait` trait to modify the replicas in the
|
||||
`ContainerizedWorkload`. In response, Crossplane translates the OAM types
|
||||
into Kubernetes-native types, in this case a `Deployment` and `Service` for
|
||||
the `ContainerizedWorkload` component, and a `MySQLServer` and
|
||||
`MySQLFirewallRule` for the `MySQLInstance` component.
|
||||
2. Crossplane provisions the external infrastructure and makes the connection
|
||||
information available to the application, allowing it to connect to and
|
||||
consume the MySQL database on Azure.
|
||||
|
||||
The concepts used in this workflow are explained in greater detail below and in
|
||||
their individual documentation.
|
||||
|
||||
## Packages
|
||||
|
||||
Packages allow Crossplane to be extended to include new functionality. This
|
||||
[Packages] allow Crossplane to be extended to include new functionality. This
|
||||
typically looks like bundling a set of Kubernetes [CRDs] and [controllers] that
|
||||
represent and manage external infrastructure (i.e. a provider), then installing
|
||||
them into a cluster where Crossplane is running. Crossplane handles making sure
|
||||
|
|
@ -90,12 +49,7 @@ learn more about all of these concepts in the [composition documentation].
|
|||
|
||||
<!-- Named Links -->
|
||||
|
||||
[Crossplane Concepts]: crossplane-concepts.png
|
||||
[providers]: #providers
|
||||
[provider-azure]: https://github.com/crossplane/provider-azure
|
||||
[packages]: #packages
|
||||
[managed resources]: #managed-resources
|
||||
[OAM]: #oam
|
||||
[Packages]: packages.md
|
||||
[CRDs]: https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/
|
||||
[controllers]: https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#custom-controllers
|
||||
[providers documentation]: providers.md
|
||||
|
|
|
|||
Loading…
Reference in New Issue