Merge pull request #462 from pedjak/connectiondetails-in-functions

This commit is contained in:
Jean du Plessis 2023-06-16 11:55:07 +02:00 committed by GitHub
commit 60cff12668
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 3 deletions

View File

@ -5,7 +5,8 @@ alphaVersion: "1.11"
--- ---
Composition Functions allow you to supplement or replace your Compositions with Composition Functions allow you to supplement or replace your Compositions with
advanced logic. You can build a Function using general purpose programming advanced logic not implementable through available patching strategies.
You can build a Function using general purpose programming
languages such as Go or Python, or relevant tools such as Helm, kustomize, or languages such as Go or Python, or relevant tools such as Helm, kustomize, or
CUE. Functions compliment contemporary "Patch and Transform" (P&T) style CUE. Functions compliment contemporary "Patch and Transform" (P&T) style
Composition. It's possible to use only P&T, only Functions, or a mix of both in Composition. It's possible to use only P&T, only Functions, or a mix of both in
@ -243,7 +244,7 @@ follows Kubernetes conventions.
A `FunctionIO` consists of: A `FunctionIO` consists of:
* An optional, arbitrary `config` object. * An optional, arbitrary `config` object.
* The `observed` state of the XR and any existing composed resources. * The `observed` state of the XR, any existing composed resources, and their connection details.
* The `desired` state of the XR and any composed resources. * The `desired` state of the XR and any composed resources.
* Optional `results` of the Function pipeline. * Optional `results` of the Function pipeline.
@ -321,7 +322,14 @@ The `observed` state of the XR and any existing composed resources reflects the
observed state at the beginning of a reconcile, before any Composition happens. observed state at the beginning of a reconcile, before any Composition happens.
Your Function will only see composite and composed resources that _actually Your Function will only see composite and composed resources that _actually
exist_ in the API server in the `observed` state. The `observed` state also exist_ in the API server in the `observed` state. The `observed` state also
includes any observed connection details. includes any observed connection details. Initial function invocations
might see empty connection details, but once external resources are created,
connection details will be passed to the functions. Access to the connection
details enables us to implement quite sophisticated tweaks on composed resources.
For example, if a composition is declared on two or more resources, it is possible
to use one resource's connection details to update another. This ability is not available
with any of the available patch types available.
The `desired` state of the XR and composed resources is how your Function tells The `desired` state of the XR and composed resources is how your Function tells
Crossplane what it should do. Crossplane 'bootstraps' the initial desired state Crossplane what it should do. Crossplane 'bootstraps' the initial desired state