diff --git a/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositeresourcedefinitions.yaml b/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositeresourcedefinitions.yaml index 7ce85e2..602690a 100644 --- a/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositeresourcedefinitions.yaml +++ b/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositeresourcedefinitions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: compositeresourcedefinitions.apiextensions.crossplane.io spec: group: apiextensions.crossplane.io @@ -31,19 +31,25 @@ spec: name: v1 schema: openAPIV3Schema: - description: A CompositeResourceDefinition defines a new kind of composite - infrastructure resource. The new resource is composed of other composite - or managed infrastructure resources. + description: |- + A CompositeResourceDefinition defines a new kind of composite infrastructure + resource. The new resource is composed of other composite or managed + infrastructure resources. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -52,42 +58,45 @@ spec: of the definition. properties: claimNames: - description: ClaimNames specifies the names of an optional composite - resource claim. When claim names are specified Crossplane will create - a namespaced 'composite resource claim' CRD that corresponds to - the defined composite resource. This composite resource claim acts - as a namespaced proxy for the composite resource; creating, updating, - or deleting the claim will create, update, or delete a corresponding - composite resource. You may add claim names to an existing CompositeResourceDefinition, - but they cannot be changed or removed once they have been set. + description: |- + ClaimNames specifies the names of an optional composite resource claim. + When claim names are specified Crossplane will create a namespaced + 'composite resource claim' CRD that corresponds to the defined composite + resource. This composite resource claim acts as a namespaced proxy for + the composite resource; creating, updating, or deleting the claim will + create, update, or delete a corresponding composite resource. You may add + claim names to an existing CompositeResourceDefinition, but they cannot + be changed or removed once they have been set. properties: categories: - description: categories is a list of grouped resources this custom - resource belongs to (e.g. 'all'). This is published in API discovery - documents, and used by clients to support invocations like `kubectl - get all`. + description: |- + categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). + This is published in API discovery documents, and used by clients to support invocations like + `kubectl get all`. items: type: string type: array kind: - description: kind is the serialized kind of the resource. It is - normally CamelCase and singular. Custom resource instances will - use this value as the `kind` attribute in API calls. + description: |- + kind is the serialized kind of the resource. It is normally CamelCase and singular. + Custom resource instances will use this value as the `kind` attribute in API calls. type: string listKind: description: listKind is the serialized kind of the list for this resource. Defaults to "`kind`List". type: string plural: - description: plural is the plural name of the resource to serve. + description: |- + plural is the plural name of the resource to serve. The custom resources are served under `/apis///.../`. - Must match the name of the CustomResourceDefinition (in the - form `.`). Must be all lowercase. + Must match the name of the CustomResourceDefinition (in the form `.`). + Must be all lowercase. type: string shortNames: - description: shortNames are short names for the resource, exposed - in API discovery documents, and used by clients to support invocations - like `kubectl get `. It must be all lowercase. + description: |- + shortNames are short names for the resource, exposed in API discovery documents, + and used by clients to support invocations like `kubectl get `. + It must be all lowercase. items: type: string type: array @@ -100,9 +109,10 @@ spec: - plural type: object connectionSecretKeys: - description: ConnectionSecretKeys is the list of keys that will be - exposed to the end user of the defined kind. If the list is empty, - all keys will be published. + description: |- + ConnectionSecretKeys is the list of keys that will be exposed to the end + user of the defined kind. + If the list is empty, all keys will be published. items: type: string type: array @@ -111,13 +121,11 @@ spec: Composite resource. properties: strategy: - description: 'strategy specifies how custom resources are converted - between versions. Allowed values are: - `"None"`: The converter - only change the apiVersion and would not touch any other field - in the custom resource. - `"Webhook"`: API Server will call - to an external webhook to do the conversion. Additional information - is needed for this option. This requires spec.preserveUnknownFields - to be false, and spec.conversion.webhook to be set.' + description: |- + strategy specifies how custom resources are converted between versions. Allowed values are: + - `"None"`: The converter only change the apiVersion and would not touch any other field in the custom resource. + - `"Webhook"`: API Server will call to an external webhook to do the conversion. Additional information + is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set. type: string webhook: description: webhook describes how to call the conversion webhook. @@ -128,23 +136,27 @@ spec: the webhook if strategy is `Webhook`. properties: caBundle: - description: caBundle is a PEM encoded CA bundle which - will be used to validate the webhook's server certificate. - If unspecified, system trust roots on the apiserver - are used. + description: |- + caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. + If unspecified, system trust roots on the apiserver are used. format: byte type: string service: - description: "service is a reference to the service for - this webhook. Either service or url must be specified. - \n If the webhook is running within the cluster, then - you should use `service`." + description: |- + service is a reference to the service for this webhook. Either + service or url must be specified. + + + If the webhook is running within the cluster, then you should use `service`. properties: name: - description: name is the name of the service. Required + description: |- + name is the name of the service. + Required type: string namespace: - description: namespace is the namespace of the service. + description: |- + namespace is the namespace of the service. Required type: string path: @@ -152,10 +164,10 @@ spec: the webhook will be contacted. type: string port: - description: port is an optional service port at which - the webhook will be contacted. `port` should be - a valid port number (1-65535, inclusive). Defaults - to 443 for backward compatibility. + description: |- + port is an optional service port at which the webhook will be contacted. + `port` should be a valid port number (1-65535, inclusive). + Defaults to 443 for backward compatibility. format: int32 type: integer required: @@ -163,38 +175,47 @@ spec: - namespace type: object url: - description: "url gives the location of the webhook, in - standard URL form (`scheme://host:port/path`). Exactly - one of `url` or `service` must be specified. \n The - `host` should not refer to a service running in the - cluster; use the `service` field instead. The host might - be resolved via external DNS in some apiservers (e.g., - `kube-apiserver` cannot resolve in-cluster DNS as that - would be a layering violation). `host` may also be an - IP address. \n Please note that using `localhost` or - `127.0.0.1` as a `host` is risky unless you take great - care to run this webhook on all hosts which run an apiserver - which might need to make calls to this webhook. Such - installs are likely to be non-portable, i.e., not easy - to turn up in a new cluster. \n The scheme must be \"https\"; - the URL must begin with \"https://\". \n A path is optional, - and if present may be any string permissible in a URL. - You may use the path to pass an arbitrary string to - the webhook, for example, a cluster identifier. \n Attempting - to use a user or basic auth e.g. \"user:password@\" - is not allowed. Fragments (\"#...\") and query parameters - (\"?...\") are not allowed, either." + description: |- + url gives the location of the webhook, in standard URL form + (`scheme://host:port/path`). Exactly one of `url` or `service` + must be specified. + + + The `host` should not refer to a service running in the cluster; use + the `service` field instead. The host might be resolved via external + DNS in some apiservers (e.g., `kube-apiserver` cannot resolve + in-cluster DNS as that would be a layering violation). `host` may + also be an IP address. + + + Please note that using `localhost` or `127.0.0.1` as a `host` is + risky unless you take great care to run this webhook on all hosts + which run an apiserver which might need to make calls to this + webhook. Such installs are likely to be non-portable, i.e., not easy + to turn up in a new cluster. + + + The scheme must be "https"; the URL must begin with "https://". + + + A path is optional, and if present may be any string permissible in + a URL. You may use the path to pass an arbitrary string to the + webhook, for example, a cluster identifier. + + + Attempting to use a user or basic auth e.g. "user:password@" is not + allowed. Fragments ("#...") and query parameters ("?...") are not + allowed, either. type: string type: object conversionReviewVersions: - description: conversionReviewVersions is an ordered list of - preferred `ConversionReview` versions the Webhook expects. - The API server will use the first version in the list which - it supports. If none of the versions specified in this list - are supported by API server, conversion will fail for the - custom resource. If a persisted Webhook configuration specifies - allowed versions and does not include any versions known - to the API Server, calls to the webhook will fail. + description: |- + conversionReviewVersions is an ordered list of preferred `ConversionReview` + versions the Webhook expects. The API server will use the first version in + the list which it supports. If none of the versions specified in this list + are supported by API server, conversion will fail for the custom resource. + If a persisted Webhook configuration specifies allowed versions and does not + include any versions known to the API Server, calls to the webhook will fail. items: type: string type: array @@ -206,16 +227,17 @@ spec: type: object defaultCompositeDeletePolicy: default: Background - description: DefaultCompositeDeletePolicy is the policy used when - deleting the Composite that is associated with the Claim if no policy - has been specified. + description: |- + DefaultCompositeDeletePolicy is the policy used when deleting the Composite + that is associated with the Claim if no policy has been specified. enum: - Background - Foreground type: string defaultCompositionRef: - description: DefaultCompositionRef refers to the Composition resource - that will be used in case no composition selector is given. + description: |- + DefaultCompositionRef refers to the Composition resource that will be used + in case no composition selector is given. properties: name: description: Name of the Composition. @@ -225,17 +247,17 @@ spec: type: object defaultCompositionUpdatePolicy: default: Automatic - description: DefaultCompositionUpdatePolicy is the policy used when - updating composites after a new Composition Revision has been created - if no policy has been specified on the composite. + description: |- + DefaultCompositionUpdatePolicy is the policy used when updating composites after a new + Composition Revision has been created if no policy has been specified on the composite. enum: - Automatic - Manual type: string enforcedCompositionRef: - description: EnforcedCompositionRef refers to the Composition resource - that will be used by all composite instances whose schema is defined - by this definition. + description: |- + EnforcedCompositionRef refers to the Composition resource that will be used + by all composite instances whose schema is defined by this definition. properties: name: description: Name of the Composition. @@ -244,9 +266,10 @@ spec: - name type: object group: - description: Group specifies the API group of the defined composite - resource. Composite resources are served under `/apis//...`. - Must match the name of the XRD (in the form `.`). + description: |- + Group specifies the API group of the defined composite resource. + Composite resources are served under `/apis//...`. Must match the + name of the XRD (in the form `.`). type: string metadata: description: Metadata specifies the desired metadata for the defined @@ -255,53 +278,58 @@ spec: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map stored - with a resource that may be set by external tools to store and - retrieve arbitrary metadata. They are not queryable and should - be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations type: object labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used to - organize and categorize (scope and select) objects. May match - selectors of replication controllers More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels - and services. These labels are added to the composite resource - and claim CRD''s in addition to any labels defined by `CompositionResourceDefinition` - `metadata.labels`.' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels + and services. + These labels are added to the composite resource and claim CRD's in addition + to any labels defined by `CompositionResourceDefinition` `metadata.labels`. type: object type: object names: - description: Names specifies the resource and kind names of the defined - composite resource. + description: |- + Names specifies the resource and kind names of the defined composite + resource. properties: categories: - description: categories is a list of grouped resources this custom - resource belongs to (e.g. 'all'). This is published in API discovery - documents, and used by clients to support invocations like `kubectl - get all`. + description: |- + categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). + This is published in API discovery documents, and used by clients to support invocations like + `kubectl get all`. items: type: string type: array kind: - description: kind is the serialized kind of the resource. It is - normally CamelCase and singular. Custom resource instances will - use this value as the `kind` attribute in API calls. + description: |- + kind is the serialized kind of the resource. It is normally CamelCase and singular. + Custom resource instances will use this value as the `kind` attribute in API calls. type: string listKind: description: listKind is the serialized kind of the list for this resource. Defaults to "`kind`List". type: string plural: - description: plural is the plural name of the resource to serve. + description: |- + plural is the plural name of the resource to serve. The custom resources are served under `/apis///.../`. - Must match the name of the CustomResourceDefinition (in the - form `.`). Must be all lowercase. + Must match the name of the CustomResourceDefinition (in the form `.`). + Must be all lowercase. type: string shortNames: - description: shortNames are short names for the resource, exposed - in API discovery documents, and used by clients to support invocations - like `kubectl get `. It must be all lowercase. + description: |- + shortNames are short names for the resource, exposed in API discovery documents, + and used by clients to support invocations like `kubectl get `. + It must be all lowercase. items: type: string type: array @@ -314,27 +342,28 @@ spec: - plural type: object versions: - description: 'Versions is the list of all API versions of the defined - composite resource. Version names are used to compute the order - in which served versions are listed in API discovery. If the version - string is "kube-like", it will sort above non "kube-like" version - strings, which are ordered lexicographically. "Kube-like" versions - start with a "v", then are followed by a number (the major version), - then optionally the string "alpha" or "beta" and another number - (the minor version). These are sorted first by GA > beta > alpha - (where GA is a version with no suffix such as beta or alpha), and - then by comparing major version, then minor version. An example - sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, - v12alpha1, v11alpha2, foo1, foo10.' + description: |- + Versions is the list of all API versions of the defined composite + resource. Version names are used to compute the order in which served + versions are listed in API discovery. If the version string is + "kube-like", it will sort above non "kube-like" version strings, which + are ordered lexicographically. "Kube-like" versions start with a "v", + then are followed by a number (the major version), then optionally the + string "alpha" or "beta" and another number (the minor version). These + are sorted first by GA > beta > alpha (where GA is a version with no + suffix such as beta or alpha), and then by comparing major version, then + minor version. An example sorted list of versions: v10, v2, v1, v11beta2, + v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10. items: description: CompositeResourceDefinitionVersion describes a version of an XR. properties: additionalPrinterColumns: - description: 'AdditionalPrinterColumns specifies additional - columns returned in Table output. If no columns are specified, - a single column displaying the age of the custom resource - is used. See the following link for details: https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables' + description: |- + AdditionalPrinterColumns specifies additional columns returned in Table + output. If no columns are specified, a single column displaying the age + of the custom resource is used. See the following link for details: + https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables items: description: CustomResourceColumnDefinition specifies a column for server side printing. @@ -344,32 +373,30 @@ spec: of this column. type: string format: - description: format is an optional OpenAPI type definition - for this column. The 'name' format is applied to the - primary identifier column to assist in clients identifying - column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types - for details. + description: |- + format is an optional OpenAPI type definition for this column. The 'name' format is applied + to the primary identifier column to assist in clients identifying column is the resource name. + See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details. type: string jsonPath: - description: jsonPath is a simple JSON path (i.e. with - array notation) which is evaluated against each custom - resource to produce the value for this column. + description: |- + jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against + each custom resource to produce the value for this column. type: string name: description: name is a human readable name for the column. type: string priority: - description: priority is an integer defining the relative - importance of this column compared to others. Lower - numbers are considered higher priority. Columns that - may be omitted in limited space scenarios should be - given a priority greater than 0. + description: |- + priority is an integer defining the relative importance of this column compared to others. Lower + numbers are considered higher priority. Columns that may be omitted in limited space scenarios + should be given a priority greater than 0. format: int32 type: integer type: - description: type is an OpenAPI type definition for this - column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types - for details. + description: |- + type is an OpenAPI type definition for this column. + See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details. type: string required: - jsonPath @@ -378,39 +405,43 @@ spec: type: object type: array deprecated: - description: The deprecated field specifies that this version - is deprecated and should not be used. + description: |- + The deprecated field specifies that this version is deprecated and should + not be used. type: boolean deprecationWarning: - description: DeprecationWarning specifies the message that should - be shown to the user when using this version. + description: |- + DeprecationWarning specifies the message that should be shown to the user + when using this version. maxLength: 256 type: string name: - description: Name of this version, e.g. “v1”, “v2beta1”, etc. - Composite resources are served under this version at `/apis///...` - if `served` is true. + description: |- + Name of this version, e.g. “v1”, “v2beta1”, etc. Composite resources are + served under this version at `/apis///...` if `served` is + true. type: string referenceable: - description: Referenceable specifies that this version may be - referenced by a Composition in order to configure which resources - an XR may be composed of. Exactly one version must be marked - as referenceable; all Compositions must target only the referenceable - version. The referenceable version must be served. It's mapped - to the CRD's `spec.versions[*].storage` field. + description: |- + Referenceable specifies that this version may be referenced by a + Composition in order to configure which resources an XR may be composed + of. Exactly one version must be marked as referenceable; all Compositions + must target only the referenceable version. The referenceable version + must be served. It's mapped to the CRD's `spec.versions[*].storage` field. type: boolean schema: - description: Schema describes the schema used for validation, - pruning, and defaulting of this version of the defined composite - resource. Fields required by all composite resources will - be injected into this schema automatically, and will override - equivalently named fields in this schema. Omitting this schema - results in a schema that contains only the fields required - by all composite resources. + description: |- + Schema describes the schema used for validation, pruning, and defaulting + of this version of the defined composite resource. Fields required by all + composite resources will be injected into this schema automatically, and + will override equivalently named fields in this schema. Omitting this + schema results in a schema that contains only the fields required by all + composite resources. properties: openAPIV3Schema: - description: OpenAPIV3Schema is the OpenAPI v3 schema to - use for validation and pruning. + description: |- + OpenAPIV3Schema is the OpenAPI v3 schema to use for validation and + pruning. type: object x-kubernetes-preserve-unknown-fields: true type: object @@ -439,13 +470,15 @@ spec: description: A Condition that may apply to a resource. properties: lastTransitionTime: - description: LastTransitionTime is the last time this condition - transitioned from one status to another. + description: |- + LastTransitionTime is the last time this condition transitioned from one + status to another. format: date-time type: string message: - description: A Message containing details about this condition's - last transition from one status to another, if any. + description: |- + A Message containing details about this condition's last transition from + one status to another, if any. type: string reason: description: A Reason for this condition's last transition from @@ -456,8 +489,9 @@ spec: False, or Unknown? type: string type: - description: Type of this condition. At most one of each condition - type may apply to a resource at any point in time. + description: |- + Type of this condition. At most one of each condition type may apply to + a resource at any point in time. type: string required: - lastTransitionTime @@ -470,16 +504,17 @@ spec: - type x-kubernetes-list-type: map controllers: - description: Controllers represents the status of the controllers - that power this composite resource definition. + description: |- + Controllers represents the status of the controllers that power this + composite resource definition. properties: compositeResourceClaimType: - description: The CompositeResourceClaimTypeRef is the type of - composite resource claim that Crossplane is currently reconciling - for this definition. Its version will eventually become consistent - with the definition's referenceable version. Note that clients - may interact with any served type; this is simply the type that - Crossplane interacts with. + description: |- + The CompositeResourceClaimTypeRef is the type of composite resource claim + that Crossplane is currently reconciling for this definition. Its version + will eventually become consistent with the definition's referenceable + version. Note that clients may interact with any served type; this is + simply the type that Crossplane interacts with. properties: apiVersion: description: APIVersion of the type. @@ -492,12 +527,12 @@ spec: - kind type: object compositeResourceType: - description: The CompositeResourceTypeRef is the type of composite - resource that Crossplane is currently reconciling for this definition. - Its version will eventually become consistent with the definition's - referenceable version. Note that clients may interact with any - served type; this is simply the type that Crossplane interacts - with. + description: |- + The CompositeResourceTypeRef is the type of composite resource that + Crossplane is currently reconciling for this definition. Its version will + eventually become consistent with the definition's referenceable version. + Note that clients may interact with any served type; this is simply the + type that Crossplane interacts with. properties: apiVersion: description: APIVersion of the type. diff --git a/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositionrevisions.yaml b/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositionrevisions.yaml index 019cb7b..93f4dcb 100644 --- a/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositionrevisions.yaml +++ b/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositionrevisions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: compositionrevisions.apiextensions.crossplane.io spec: group: apiextensions.crossplane.io @@ -33,28 +33,36 @@ spec: name: v1 schema: openAPIV3Schema: - description: A CompositionRevision represents a revision in time of a Composition. + description: |- + A CompositionRevision represents a revision in time of a Composition. Revisions are created by Crossplane; they should be treated as immutable. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: CompositionRevisionSpec specifies the desired state of the - composition revision. + description: |- + CompositionRevisionSpec specifies the desired state of the composition + revision. properties: compositeTypeRef: - description: CompositeTypeRef specifies the type of composite resource - that this composition is compatible with. + description: |- + CompositeTypeRef specifies the type of composite resource that this + composition is compatible with. properties: apiVersion: description: APIVersion of the type. @@ -67,35 +75,44 @@ spec: - kind type: object environment: - description: "Environment configures the environment in which resources - are rendered. \n THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice." + description: |- + Environment configures the environment in which resources are rendered. + + + THIS IS AN ALPHA FIELD. Do not use it in production. It is not honored + unless the relevant Crossplane feature flag is enabled, and may be + changed or removed without notice. properties: defaultData: additionalProperties: x-kubernetes-preserve-unknown-fields: true - description: DefaultData statically defines the initial state - of the environment. It has the same schema-less structure as - the data field in environment configs. It is overwritten by - the selected environment configs. + description: |- + DefaultData statically defines the initial state of the environment. + It has the same schema-less structure as the data field in + environment configs. + It is overwritten by the selected environment configs. type: object environmentConfigs: - description: "EnvironmentConfigs selects a list of `EnvironmentConfig`s. - The resolved resources are stored in the composite resource - at `spec.environmentConfigRefs` and is only updated if it is - null. \n The list of references is used to compute an in-memory - environment at compose time. The data of all object is merged - in the order they are listed, meaning the values of EnvironmentConfigs - with a larger index take priority over ones with smaller indices. - \n The computed environment can be accessed in a composition - using `FromEnvironmentFieldPath` and `CombineFromEnvironment` - patches." + description: |- + EnvironmentConfigs selects a list of `EnvironmentConfig`s. The resolved + resources are stored in the composite resource at + `spec.environmentConfigRefs` and is only updated if it is null. + + + The list of references is used to compute an in-memory environment at + compose time. The data of all object is merged in the order they are + listed, meaning the values of EnvironmentConfigs with a larger index take + priority over ones with smaller indices. + + + The computed environment can be accessed in a composition using + `FromEnvironmentFieldPath` and `CombineFromEnvironment` patches. items: description: EnvironmentSource selects a EnvironmentConfig resource. properties: ref: - description: Ref is a named reference to a single EnvironmentConfig. + description: |- + Ref is a named reference to a single EnvironmentConfig. Either Ref or Selector is required. properties: name: @@ -111,21 +128,20 @@ spec: description: MatchLabels ensures an object with matching labels is selected. items: - description: An EnvironmentSourceSelectorLabelMatcher - acts like a k8s label selector but can draw the - label value from a different path. + description: |- + An EnvironmentSourceSelectorLabelMatcher acts like a k8s label selector but + can draw the label value from a different path. properties: fromFieldPathPolicy: default: Required - description: FromFieldPathPolicy specifies the - policy for the valueFromFieldPath. The default - is Required, meaning that an error will be returned - if the field is not found in the composite resource. - Optional means that if the field is not found - in the composite resource, that label pair will - just be skipped. N.B. other specified label - matchers will still be used to retrieve the - desired environment config, if any. + description: |- + FromFieldPathPolicy specifies the policy for the valueFromFieldPath. + The default is Required, meaning that an error will be returned if the + field is not found in the composite resource. + Optional means that if the field is not found in the composite resource, + that label pair will just be skipped. N.B. other specified label + matchers will still be used to retrieve the desired + environment config, if any. enum: - Optional - Required @@ -180,8 +196,9 @@ spec: type: object type: default: Reference - description: Type specifies the way the EnvironmentConfig - is selected. Default is `Reference` + description: |- + Type specifies the way the EnvironmentConfig is selected. + Default is `Reference` enum: - Reference - Selector @@ -189,47 +206,51 @@ spec: type: object type: array patches: - description: Patches is a list of environment patches that are - executed before a composition's resources are composed. + description: |- + Patches is a list of environment patches that are executed before a + composition's resources are composed. items: description: EnvironmentPatch is a patch for a Composition environment. properties: combine: - description: Combine is the patch configuration for a CombineFromComposite - or CombineToComposite patch. + description: |- + Combine is the patch configuration for a CombineFromComposite or + CombineToComposite patch. properties: strategy: - description: Strategy defines the strategy to use to - combine the input variable values. Currently only - string is supported. + description: |- + Strategy defines the strategy to use to combine the input variable values. + Currently only string is supported. enum: - string type: string string: - description: String declares that input variables should - be combined into a single string, using the relevant - settings for formatting purposes. + description: |- + String declares that input variables should be combined into a single + string, using the relevant settings for formatting purposes. properties: fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string required: - fmt type: object variables: - description: Variables are the list of variables whose - values will be retrieved and combined. + description: |- + Variables are the list of variables whose values will be retrieved and + combined. items: - description: A CombineVariable defines the source - of a value that is combined with others to form - and patch an output value. Currently, this only - supports retrieving values from a field path. + description: |- + A CombineVariable defines the source of a value that is combined with + others to form and patch an output value. Currently, this only supports + retrieving values from a field path. properties: fromFieldPath: - description: FromFieldPath is the path of the - field on the source whose value is to be used - as input. + description: |- + FromFieldPath is the path of the field on the source whose value is + to be used as input. type: string required: - fromFieldPath @@ -241,20 +262,21 @@ spec: - variables type: object fromFieldPath: - description: FromFieldPath is the path of the field on the - resource whose value is to be used as input. Required - when type is FromCompositeFieldPath or ToCompositeFieldPath. + description: |- + FromFieldPath is the path of the field on the resource whose value is + to be used as input. Required when type is FromCompositeFieldPath or + ToCompositeFieldPath. type: string policy: description: Policy configures the specifics of patching behaviour. properties: fromFieldPath: - description: FromFieldPath specifies how to patch from - a field path. The default is 'Optional', which means - the patch will be a no-op if the specified fromFieldPath - does not exist. Use 'Required' if the patch should - fail if the specified path does not exist. + description: |- + FromFieldPath specifies how to patch from a field path. The default is + 'Optional', which means the patch will be a no-op if the specified + fromFieldPath does not exist. Use 'Required' if the patch should fail if + the specified path does not exist. enum: - Optional - Required @@ -274,30 +296,36 @@ spec: type: object type: object toFieldPath: - description: ToFieldPath is the path of the field on the - resource whose value will be changed with the result of - transforms. Leave empty if you'd like to propagate to - the same path as fromFieldPath. + description: |- + ToFieldPath is the path of the field on the resource whose value will + be changed with the result of transforms. Leave empty if you'd like to + propagate to the same path as fromFieldPath. type: string transforms: - description: Transforms are the list of functions that are - used as a FIFO pipe for the input to be transformed. + description: |- + Transforms are the list of functions that are used as a FIFO pipe for the + input to be transformed. items: - description: Transform is a unit of process whose input - is transformed into an output with the supplied configuration. + description: |- + Transform is a unit of process whose input is transformed into an output with + the supplied configuration. properties: convert: description: Convert is used to cast the input into the given output type. properties: format: - description: "The expected input format. \n * - `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity). + description: |- + The expected input format. + + + * `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity). Only used during `string -> float64` conversions. * `json` - parses the input as a JSON string. - Only used during `string -> object` or `string - -> list` conversions. \n If this property is - null, the default conversion is applied." + Only used during `string -> object` or `string -> list` conversions. + + + If this property is null, the default conversion is applied. enum: - none - quantity @@ -337,27 +365,29 @@ spec: - Input type: string fallbackValue: - description: The fallback value that should be - returned by the transform if now pattern matches. + description: |- + The fallback value that should be returned by the transform if now pattern + matches. x-kubernetes-preserve-unknown-fields: true patterns: - description: The patterns that should be tested - against the input string. Patterns are tested - in order. The value of the first match is used - as result of this transform. + description: |- + The patterns that should be tested against the input string. + Patterns are tested in order. The value of the first match is used as + result of this transform. items: - description: MatchTransformPattern is a transform - that returns the value that matches a pattern. + description: |- + MatchTransformPattern is a transform that returns the value that matches a + pattern. properties: literal: - description: Literal exactly matches the - input string (case sensitive). Is required - if `type` is `literal`. + description: |- + Literal exactly matches the input string (case sensitive). + Is required if `type` is `literal`. type: string regexp: - description: Regexp to match against the - input string. Is required if `type` is - `regexp`. + description: |- + Regexp to match against the input string. + Is required if `type` is `regexp`. type: string result: description: The value that is used as result @@ -365,15 +395,17 @@ spec: x-kubernetes-preserve-unknown-fields: true type: default: literal - description: "Type specifies how the pattern - matches the input. \n * `literal` - the - pattern value has to exactly match (case - sensitive) the input string. This is the - default. \n * `regexp` - the pattern treated - as a regular expression against which - the input string is tested. Crossplane - will throw an error if the key is not - a valid regexp." + description: |- + Type specifies how the pattern matches the input. + + + * `literal` - the pattern value has to exactly match (case sensitive) the + input string. This is the default. + + + * `regexp` - the pattern treated as a regular expression against + which the input string is tested. Crossplane will throw an error if the + key is not a valid regexp. enum: - literal - regexp @@ -385,8 +417,9 @@ spec: type: array type: object math: - description: Math is used to transform the input via - mathematical operations such as multiplication. + description: |- + Math is used to transform the input via mathematical operations such as + multiplication. properties: clampMax: description: ClampMax makes sure that the value @@ -413,22 +446,19 @@ spec: type: string type: object string: - description: String is used to transform the input - into a string or a different kind of string. Note - that the input does not necessarily need to be a - string. + description: |- + String is used to transform the input into a string or a different kind + of string. Note that the input does not necessarily need to be a string. properties: convert: - description: Optional conversion method to be - specified. `ToUpper` and `ToLower` change the - letter case of the input string. `ToBase64` - and `FromBase64` perform a base64 conversion - based on the input string. `ToJson` converts - any input value into its raw JSON representation. - `ToSha1`, `ToSha256` and `ToSha512` generate - a hash value based on the input converted to - JSON. `ToAdler32` generate a addler32 hash based - on the input string. + description: |- + Optional conversion method to be specified. + `ToUpper` and `ToLower` change the letter case of the input string. + `ToBase64` and `FromBase64` perform a base64 conversion based on the input string. + `ToJson` converts any input value into its raw JSON representation. + `ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input + converted to JSON. + `ToAdler32` generate a addler32 hash based on the input string. enum: - ToUpper - ToLower @@ -441,10 +471,22 @@ spec: - ToAdler32 type: string fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string + join: + description: Join defines parameters to join a + slice of values to a string. + properties: + separator: + description: |- + Separator defines the character that should separate the values from each + other in the joined string. + type: string + required: + - separator + type: object regexp: description: Extract a match from the input using a regular expression. @@ -454,8 +496,8 @@ spec: default) matches the entire expression. type: integer match: - description: Match string. May optionally - include submatches, aka capture groups. + description: |- + Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details. type: string required: @@ -475,6 +517,7 @@ spec: - TrimPrefix - TrimSuffix - Regexp + - Join type: string type: object type: @@ -492,9 +535,9 @@ spec: type: array type: default: FromCompositeFieldPath - description: Type sets the patching behaviour to be used. - Each patch type may require its own fields to be set on - the Patch object. + description: |- + Type sets the patching behaviour to be used. Each patch type may require + its own fields to be set on the Patch object. enum: - FromCompositeFieldPath - ToCompositeFieldPath @@ -504,27 +547,27 @@ spec: type: object type: array policy: - description: Policy represents the Resolve and Resolution policies - which apply to all EnvironmentSourceReferences in EnvironmentConfigs - list. + description: |- + Policy represents the Resolve and Resolution policies which apply to + all EnvironmentSourceReferences in EnvironmentConfigs list. properties: resolution: default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. enum: - Required - Optional type: string resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. enum: - Always - IfNotPresent @@ -533,28 +576,38 @@ spec: type: object mode: default: Resources - description: "Mode controls what type or \"mode\" of Composition will - be used. \n \"Resources\" (the default) indicates that a Composition - uses what is commonly referred to as \"Patch & Transform\" or P&T - composition. This mode of Composition uses an array of resources, - each a template for a composed resource. \n \"Pipeline\" indicates - that a Composition specifies a pipeline of Composition Functions, - each of which is responsible for producing composed resources that - Crossplane should create or update. THE PIPELINE MODE IS A BETA - FEATURE. It is not honored if the relevant Crossplane feature flag - is disabled." + description: |- + Mode controls what type or "mode" of Composition will be used. + + + "Resources" (the default) indicates that a Composition uses what is + commonly referred to as "Patch & Transform" or P&T composition. This mode + of Composition uses an array of resources, each a template for a composed + resource. + + + "Pipeline" indicates that a Composition specifies a pipeline + of Composition Functions, each of which is responsible for producing + composed resources that Crossplane should create or update. THE PIPELINE + MODE IS A BETA FEATURE. It is not honored if the relevant Crossplane + feature flag is disabled. enum: - Resources - Pipeline type: string patchSets: - description: "PatchSets define a named set of patches that may be - included by any resource in this Composition. PatchSets cannot themselves - refer to other PatchSets. \n PatchSets are only used by the \"Resources\" - mode of Composition. They are ignored by other modes." + description: |- + PatchSets define a named set of patches that may be included by any + resource in this Composition. PatchSets cannot themselves refer to other + PatchSets. + + + PatchSets are only used by the "Resources" mode of Composition. They + are ignored by other modes. items: - description: A PatchSet is a set of patches that can be reused from - all resources within a Composition. + description: |- + A PatchSet is a set of patches that can be reused from all resources within + a Composition. properties: name: description: Name of this PatchSet. @@ -563,50 +616,51 @@ spec: description: Patches will be applied as an overlay to the base resource. items: - description: Patch objects are applied between composite and - composed resources. Their behaviour depends on the Type - selected. The default Type, FromCompositeFieldPath, copies - a value from the composite resource to the composed resource, - applying any defined transformers. + description: |- + Patch objects are applied between composite and composed resources. Their + behaviour depends on the Type selected. The default Type, + FromCompositeFieldPath, copies a value from the composite resource to + the composed resource, applying any defined transformers. properties: combine: - description: Combine is the patch configuration for a - CombineFromComposite, CombineFromEnvironment, CombineToComposite - or CombineToEnvironment patch. + description: |- + Combine is the patch configuration for a CombineFromComposite, + CombineFromEnvironment, CombineToComposite or CombineToEnvironment patch. properties: strategy: - description: Strategy defines the strategy to use - to combine the input variable values. Currently - only string is supported. + description: |- + Strategy defines the strategy to use to combine the input variable values. + Currently only string is supported. enum: - string type: string string: - description: String declares that input variables - should be combined into a single string, using the - relevant settings for formatting purposes. + description: |- + String declares that input variables should be combined into a single + string, using the relevant settings for formatting purposes. properties: fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string required: - fmt type: object variables: - description: Variables are the list of variables whose - values will be retrieved and combined. + description: |- + Variables are the list of variables whose values will be retrieved and + combined. items: - description: A CombineVariable defines the source - of a value that is combined with others to form - and patch an output value. Currently, this only - supports retrieving values from a field path. + description: |- + A CombineVariable defines the source of a value that is combined with + others to form and patch an output value. Currently, this only supports + retrieving values from a field path. properties: fromFieldPath: - description: FromFieldPath is the path of the - field on the source whose value is to be used - as input. + description: |- + FromFieldPath is the path of the field on the source whose value is + to be used as input. type: string required: - fromFieldPath @@ -618,10 +672,10 @@ spec: - variables type: object fromFieldPath: - description: FromFieldPath is the path of the field on - the resource whose value is to be used as input. Required - when type is FromCompositeFieldPath, FromEnvironmentFieldPath, - ToCompositeFieldPath, ToEnvironmentFieldPath. + description: |- + FromFieldPath is the path of the field on the resource whose value is + to be used as input. Required when type is FromCompositeFieldPath, + FromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath. type: string patchSetName: description: PatchSetName to include patches from. Required @@ -632,12 +686,11 @@ spec: behaviour. properties: fromFieldPath: - description: FromFieldPath specifies how to patch - from a field path. The default is 'Optional', which - means the patch will be a no-op if the specified - fromFieldPath does not exist. Use 'Required' if - the patch should fail if the specified path does - not exist. + description: |- + FromFieldPath specifies how to patch from a field path. The default is + 'Optional', which means the patch will be a no-op if the specified + fromFieldPath does not exist. Use 'Required' if the patch should fail if + the specified path does not exist. enum: - Optional - Required @@ -657,30 +710,36 @@ spec: type: object type: object toFieldPath: - description: ToFieldPath is the path of the field on the - resource whose value will be changed with the result - of transforms. Leave empty if you'd like to propagate - to the same path as fromFieldPath. + description: |- + ToFieldPath is the path of the field on the resource whose value will + be changed with the result of transforms. Leave empty if you'd like to + propagate to the same path as fromFieldPath. type: string transforms: - description: Transforms are the list of functions that - are used as a FIFO pipe for the input to be transformed. + description: |- + Transforms are the list of functions that are used as a FIFO pipe for the + input to be transformed. items: - description: Transform is a unit of process whose input - is transformed into an output with the supplied configuration. + description: |- + Transform is a unit of process whose input is transformed into an output with + the supplied configuration. properties: convert: description: Convert is used to cast the input into the given output type. properties: format: - description: "The expected input format. \n + description: |- + The expected input format. + + * `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity). Only used during `string -> float64` conversions. * `json` - parses the input as a JSON string. - Only used during `string -> object` or `string - -> list` conversions. \n If this property - is null, the default conversion is applied." + Only used during `string -> object` or `string -> list` conversions. + + + If this property is null, the default conversion is applied. enum: - none - quantity @@ -720,28 +779,29 @@ spec: - Input type: string fallbackValue: - description: The fallback value that should - be returned by the transform if now pattern + description: |- + The fallback value that should be returned by the transform if now pattern matches. x-kubernetes-preserve-unknown-fields: true patterns: - description: The patterns that should be tested - against the input string. Patterns are tested - in order. The value of the first match is - used as result of this transform. + description: |- + The patterns that should be tested against the input string. + Patterns are tested in order. The value of the first match is used as + result of this transform. items: - description: MatchTransformPattern is a transform - that returns the value that matches a pattern. + description: |- + MatchTransformPattern is a transform that returns the value that matches a + pattern. properties: literal: - description: Literal exactly matches the - input string (case sensitive). Is required - if `type` is `literal`. + description: |- + Literal exactly matches the input string (case sensitive). + Is required if `type` is `literal`. type: string regexp: - description: Regexp to match against the - input string. Is required if `type` - is `regexp`. + description: |- + Regexp to match against the input string. + Is required if `type` is `regexp`. type: string result: description: The value that is used as @@ -750,15 +810,17 @@ spec: x-kubernetes-preserve-unknown-fields: true type: default: literal - description: "Type specifies how the pattern - matches the input. \n * `literal` - - the pattern value has to exactly match - (case sensitive) the input string. This - is the default. \n * `regexp` - the - pattern treated as a regular expression - against which the input string is tested. - Crossplane will throw an error if the - key is not a valid regexp." + description: |- + Type specifies how the pattern matches the input. + + + * `literal` - the pattern value has to exactly match (case sensitive) the + input string. This is the default. + + + * `regexp` - the pattern treated as a regular expression against + which the input string is tested. Crossplane will throw an error if the + key is not a valid regexp. enum: - literal - regexp @@ -770,8 +832,9 @@ spec: type: array type: object math: - description: Math is used to transform the input - via mathematical operations such as multiplication. + description: |- + Math is used to transform the input via mathematical operations such as + multiplication. properties: clampMax: description: ClampMax makes sure that the value @@ -798,22 +861,19 @@ spec: type: string type: object string: - description: String is used to transform the input - into a string or a different kind of string. Note - that the input does not necessarily need to be - a string. + description: |- + String is used to transform the input into a string or a different kind + of string. Note that the input does not necessarily need to be a string. properties: convert: - description: Optional conversion method to be - specified. `ToUpper` and `ToLower` change - the letter case of the input string. `ToBase64` - and `FromBase64` perform a base64 conversion - based on the input string. `ToJson` converts - any input value into its raw JSON representation. - `ToSha1`, `ToSha256` and `ToSha512` generate - a hash value based on the input converted - to JSON. `ToAdler32` generate a addler32 hash - based on the input string. + description: |- + Optional conversion method to be specified. + `ToUpper` and `ToLower` change the letter case of the input string. + `ToBase64` and `FromBase64` perform a base64 conversion based on the input string. + `ToJson` converts any input value into its raw JSON representation. + `ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input + converted to JSON. + `ToAdler32` generate a addler32 hash based on the input string. enum: - ToUpper - ToLower @@ -826,10 +886,22 @@ spec: - ToAdler32 type: string fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string + join: + description: Join defines parameters to join + a slice of values to a string. + properties: + separator: + description: |- + Separator defines the character that should separate the values from each + other in the joined string. + type: string + required: + - separator + type: object regexp: description: Extract a match from the input using a regular expression. @@ -839,8 +911,8 @@ spec: default) matches the entire expression. type: integer match: - description: Match string. May optionally - include submatches, aka capture groups. + description: |- + Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details. type: string required: @@ -860,6 +932,7 @@ spec: - TrimPrefix - TrimSuffix - Regexp + - Join type: string type: object type: @@ -877,9 +950,9 @@ spec: type: array type: default: FromCompositeFieldPath - description: Type sets the patching behaviour to be used. - Each patch type may require its own fields to be set - on the Patch object. + description: |- + Type sets the patching behaviour to be used. Each patch type may require + its own fields to be set on the Patch object. enum: - FromCompositeFieldPath - FromEnvironmentFieldPath @@ -899,19 +972,25 @@ spec: type: object type: array pipeline: - description: "Pipeline is a list of composition function steps that - will be used when a composite resource referring to this composition - is created. One of resources and pipeline must be specified - you - cannot specify both. \n The Pipeline is only used by the \"Pipeline\" - mode of Composition. It is ignored by other modes. \n THIS IS A - BETA FIELD. It is not honored if the relevant Crossplane feature - flag is disabled." + description: |- + Pipeline is a list of composition function steps that will be used when a + composite resource referring to this composition is created. One of + resources and pipeline must be specified - you cannot specify both. + + + The Pipeline is only used by the "Pipeline" mode of Composition. It is + ignored by other modes. + + + THIS IS A BETA FIELD. It is not honored if the relevant Crossplane + feature flag is disabled. items: description: A PipelineStep in a Composition Function pipeline. properties: functionRef: - description: FunctionRef is a reference to the Composition Function - this step should execute. + description: |- + FunctionRef is a reference to the Composition Function this step should + execute. properties: name: description: Name of the referenced Function. @@ -920,9 +999,10 @@ spec: - name type: object input: - description: Input is an optional, arbitrary Kubernetes resource - (i.e. a resource with an apiVersion and kind) that will be - passed to the Composition Function as the 'input' of its RunFunctionRequest. + description: |- + Input is an optional, arbitrary Kubernetes resource (i.e. a resource + with an apiVersion and kind) that will be passed to the Composition + Function as the 'input' of its RunFunctionRequest. type: object x-kubernetes-embedded-resource: true x-kubernetes-preserve-unknown-fields: true @@ -937,12 +1017,15 @@ spec: publishConnectionDetailsWithStoreConfigRef: default: name: default - description: "PublishConnectionDetailsWithStoreConfig specifies the - secret store config with which the connection details of composite - resources dynamically provisioned using this composition will be - published. \n THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice." + description: |- + PublishConnectionDetailsWithStoreConfig specifies the secret store config + with which the connection details of composite resources dynamically + provisioned using this composition will be published. + + + THIS IS AN ALPHA FIELD. Do not use it in production. It is not honored + unless the relevant Crossplane feature flag is enabled, and may be + changed or removed without notice. properties: name: description: Name of the referenced StoreConfig. @@ -951,13 +1034,17 @@ spec: - name type: object resources: - description: "Resources is a list of resource templates that will - be used when a composite resource referring to this composition - is created. \n Resources are only used by the \"Resources\" mode - of Composition. They are ignored by other modes." + description: |- + Resources is a list of resource templates that will be used when a + composite resource referring to this composition is created. + + + Resources are only used by the "Resources" mode of Composition. They are + ignored by other modes. items: - description: ComposedTemplate is used to provide information about - how the composed resource should be processed. + description: |- + ComposedTemplate is used to provide information about how the composed resource + should be processed. properties: base: description: Base is the target resource that the patches will @@ -966,108 +1053,112 @@ spec: x-kubernetes-embedded-resource: true x-kubernetes-preserve-unknown-fields: true connectionDetails: - description: ConnectionDetails lists the propagation secret - keys from this target resource to the composition instance - connection secret. + description: |- + ConnectionDetails lists the propagation secret keys from this target + resource to the composition instance connection secret. items: - description: ConnectionDetail includes the information about - the propagation of the connection information from one secret - to another. + description: |- + ConnectionDetail includes the information about the propagation of the connection + information from one secret to another. properties: fromConnectionSecretKey: - description: FromConnectionSecretKey is the key that will - be used to fetch the value from the composed resource's - connection secret. + description: |- + FromConnectionSecretKey is the key that will be used to fetch the value + from the composed resource's connection secret. type: string fromFieldPath: - description: FromFieldPath is the path of the field on - the composed resource whose value to be used as input. - Name must be specified if the type is FromFieldPath. + description: |- + FromFieldPath is the path of the field on the composed resource whose + value to be used as input. Name must be specified if the type is + FromFieldPath. type: string name: - description: Name of the connection secret key that will - be propagated to the connection secret of the composition - instance. Leave empty if you'd like to use the same - key name. + description: |- + Name of the connection secret key that will be propagated to the + connection secret of the composition instance. Leave empty if you'd like + to use the same key name. type: string type: - description: 'Type sets the connection detail fetching - behaviour to be used. Each connection detail type may - require its own fields to be set on the ConnectionDetail - object. If the type is omitted Crossplane will attempt - to infer it based on which other fields were specified. - If multiple fields are specified the order of precedence - is: 1. FromValue 2. FromConnectionSecretKey 3. FromFieldPath' + description: |- + Type sets the connection detail fetching behaviour to be used. Each + connection detail type may require its own fields to be set on the + ConnectionDetail object. If the type is omitted Crossplane will attempt + to infer it based on which other fields were specified. If multiple + fields are specified the order of precedence is: + 1. FromValue + 2. FromConnectionSecretKey + 3. FromFieldPath enum: - FromConnectionSecretKey - FromFieldPath - FromValue type: string value: - description: Value that will be propagated to the connection - secret of the composite resource. May be set to inject - a fixed, non-sensitive connection secret value, for - example a well-known port. + description: |- + Value that will be propagated to the connection secret of the composite + resource. May be set to inject a fixed, non-sensitive connection secret + value, for example a well-known port. type: string type: object type: array name: - description: A Name uniquely identifies this entry within its - Composition's resources array. Names are optional but *strongly* - recommended. When all entries in the resources array are named - entries may added, deleted, and reordered as long as their - names do not change. When entries are not named the length - and order of the resources array should be treated as immutable. + description: |- + A Name uniquely identifies this entry within its Composition's resources + array. Names are optional but *strongly* recommended. When all entries in + the resources array are named entries may added, deleted, and reordered + as long as their names do not change. When entries are not named the + length and order of the resources array should be treated as immutable. Either all or no entries must be named. type: string patches: description: Patches will be applied as overlay to the base resource. items: - description: Patch objects are applied between composite and - composed resources. Their behaviour depends on the Type - selected. The default Type, FromCompositeFieldPath, copies - a value from the composite resource to the composed resource, - applying any defined transformers. + description: |- + Patch objects are applied between composite and composed resources. Their + behaviour depends on the Type selected. The default Type, + FromCompositeFieldPath, copies a value from the composite resource to + the composed resource, applying any defined transformers. properties: combine: - description: Combine is the patch configuration for a - CombineFromComposite, CombineFromEnvironment, CombineToComposite - or CombineToEnvironment patch. + description: |- + Combine is the patch configuration for a CombineFromComposite, + CombineFromEnvironment, CombineToComposite or CombineToEnvironment patch. properties: strategy: - description: Strategy defines the strategy to use - to combine the input variable values. Currently - only string is supported. + description: |- + Strategy defines the strategy to use to combine the input variable values. + Currently only string is supported. enum: - string type: string string: - description: String declares that input variables - should be combined into a single string, using the - relevant settings for formatting purposes. + description: |- + String declares that input variables should be combined into a single + string, using the relevant settings for formatting purposes. properties: fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string required: - fmt type: object variables: - description: Variables are the list of variables whose - values will be retrieved and combined. + description: |- + Variables are the list of variables whose values will be retrieved and + combined. items: - description: A CombineVariable defines the source - of a value that is combined with others to form - and patch an output value. Currently, this only - supports retrieving values from a field path. + description: |- + A CombineVariable defines the source of a value that is combined with + others to form and patch an output value. Currently, this only supports + retrieving values from a field path. properties: fromFieldPath: - description: FromFieldPath is the path of the - field on the source whose value is to be used - as input. + description: |- + FromFieldPath is the path of the field on the source whose value is + to be used as input. type: string required: - fromFieldPath @@ -1079,10 +1170,10 @@ spec: - variables type: object fromFieldPath: - description: FromFieldPath is the path of the field on - the resource whose value is to be used as input. Required - when type is FromCompositeFieldPath, FromEnvironmentFieldPath, - ToCompositeFieldPath, ToEnvironmentFieldPath. + description: |- + FromFieldPath is the path of the field on the resource whose value is + to be used as input. Required when type is FromCompositeFieldPath, + FromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath. type: string patchSetName: description: PatchSetName to include patches from. Required @@ -1093,12 +1184,11 @@ spec: behaviour. properties: fromFieldPath: - description: FromFieldPath specifies how to patch - from a field path. The default is 'Optional', which - means the patch will be a no-op if the specified - fromFieldPath does not exist. Use 'Required' if - the patch should fail if the specified path does - not exist. + description: |- + FromFieldPath specifies how to patch from a field path. The default is + 'Optional', which means the patch will be a no-op if the specified + fromFieldPath does not exist. Use 'Required' if the patch should fail if + the specified path does not exist. enum: - Optional - Required @@ -1118,30 +1208,36 @@ spec: type: object type: object toFieldPath: - description: ToFieldPath is the path of the field on the - resource whose value will be changed with the result - of transforms. Leave empty if you'd like to propagate - to the same path as fromFieldPath. + description: |- + ToFieldPath is the path of the field on the resource whose value will + be changed with the result of transforms. Leave empty if you'd like to + propagate to the same path as fromFieldPath. type: string transforms: - description: Transforms are the list of functions that - are used as a FIFO pipe for the input to be transformed. + description: |- + Transforms are the list of functions that are used as a FIFO pipe for the + input to be transformed. items: - description: Transform is a unit of process whose input - is transformed into an output with the supplied configuration. + description: |- + Transform is a unit of process whose input is transformed into an output with + the supplied configuration. properties: convert: description: Convert is used to cast the input into the given output type. properties: format: - description: "The expected input format. \n + description: |- + The expected input format. + + * `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity). Only used during `string -> float64` conversions. * `json` - parses the input as a JSON string. - Only used during `string -> object` or `string - -> list` conversions. \n If this property - is null, the default conversion is applied." + Only used during `string -> object` or `string -> list` conversions. + + + If this property is null, the default conversion is applied. enum: - none - quantity @@ -1181,28 +1277,29 @@ spec: - Input type: string fallbackValue: - description: The fallback value that should - be returned by the transform if now pattern + description: |- + The fallback value that should be returned by the transform if now pattern matches. x-kubernetes-preserve-unknown-fields: true patterns: - description: The patterns that should be tested - against the input string. Patterns are tested - in order. The value of the first match is - used as result of this transform. + description: |- + The patterns that should be tested against the input string. + Patterns are tested in order. The value of the first match is used as + result of this transform. items: - description: MatchTransformPattern is a transform - that returns the value that matches a pattern. + description: |- + MatchTransformPattern is a transform that returns the value that matches a + pattern. properties: literal: - description: Literal exactly matches the - input string (case sensitive). Is required - if `type` is `literal`. + description: |- + Literal exactly matches the input string (case sensitive). + Is required if `type` is `literal`. type: string regexp: - description: Regexp to match against the - input string. Is required if `type` - is `regexp`. + description: |- + Regexp to match against the input string. + Is required if `type` is `regexp`. type: string result: description: The value that is used as @@ -1211,15 +1308,17 @@ spec: x-kubernetes-preserve-unknown-fields: true type: default: literal - description: "Type specifies how the pattern - matches the input. \n * `literal` - - the pattern value has to exactly match - (case sensitive) the input string. This - is the default. \n * `regexp` - the - pattern treated as a regular expression - against which the input string is tested. - Crossplane will throw an error if the - key is not a valid regexp." + description: |- + Type specifies how the pattern matches the input. + + + * `literal` - the pattern value has to exactly match (case sensitive) the + input string. This is the default. + + + * `regexp` - the pattern treated as a regular expression against + which the input string is tested. Crossplane will throw an error if the + key is not a valid regexp. enum: - literal - regexp @@ -1231,8 +1330,9 @@ spec: type: array type: object math: - description: Math is used to transform the input - via mathematical operations such as multiplication. + description: |- + Math is used to transform the input via mathematical operations such as + multiplication. properties: clampMax: description: ClampMax makes sure that the value @@ -1259,22 +1359,19 @@ spec: type: string type: object string: - description: String is used to transform the input - into a string or a different kind of string. Note - that the input does not necessarily need to be - a string. + description: |- + String is used to transform the input into a string or a different kind + of string. Note that the input does not necessarily need to be a string. properties: convert: - description: Optional conversion method to be - specified. `ToUpper` and `ToLower` change - the letter case of the input string. `ToBase64` - and `FromBase64` perform a base64 conversion - based on the input string. `ToJson` converts - any input value into its raw JSON representation. - `ToSha1`, `ToSha256` and `ToSha512` generate - a hash value based on the input converted - to JSON. `ToAdler32` generate a addler32 hash - based on the input string. + description: |- + Optional conversion method to be specified. + `ToUpper` and `ToLower` change the letter case of the input string. + `ToBase64` and `FromBase64` perform a base64 conversion based on the input string. + `ToJson` converts any input value into its raw JSON representation. + `ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input + converted to JSON. + `ToAdler32` generate a addler32 hash based on the input string. enum: - ToUpper - ToLower @@ -1287,10 +1384,22 @@ spec: - ToAdler32 type: string fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string + join: + description: Join defines parameters to join + a slice of values to a string. + properties: + separator: + description: |- + Separator defines the character that should separate the values from each + other in the joined string. + type: string + required: + - separator + type: object regexp: description: Extract a match from the input using a regular expression. @@ -1300,8 +1409,8 @@ spec: default) matches the entire expression. type: integer match: - description: Match string. May optionally - include submatches, aka capture groups. + description: |- + Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details. type: string required: @@ -1321,6 +1430,7 @@ spec: - TrimPrefix - TrimSuffix - Regexp + - Join type: string type: object type: @@ -1338,9 +1448,9 @@ spec: type: array type: default: FromCompositeFieldPath - description: Type sets the patching behaviour to be used. - Each patch type may require its own fields to be set - on the Patch object. + description: |- + Type sets the patching behaviour to be used. Each patch type may require + its own fields to be set on the Patch object. enum: - FromCompositeFieldPath - FromEnvironmentFieldPath @@ -1360,13 +1470,14 @@ spec: status: "True" type: Ready type: MatchCondition - description: ReadinessChecks allows users to define custom readiness - checks. All checks have to return true in order for resource - to be considered ready. The default readiness check is to - have the "Ready" condition to be "True". + description: |- + ReadinessChecks allows users to define custom readiness checks. All checks + have to return true in order for resource to be considered ready. The + default readiness check is to have the "Ready" condition to be "True". items: - description: ReadinessCheck is used to indicate how to tell - whether a resource is ready for consumption + description: |- + ReadinessCheck is used to indicate how to tell whether a resource is ready + for consumption properties: fieldPath: description: FieldPath shows the path of the field whose @@ -1424,21 +1535,24 @@ spec: format: int64 type: integer writeConnectionSecretsToNamespace: - description: WriteConnectionSecretsToNamespace specifies the namespace - in which the connection secrets of composite resource dynamically - provisioned using this composition will be created. This field is - planned to be replaced in a future release in favor of PublishConnectionDetailsWithStoreConfigRef. - Currently, both could be set independently and connection details - would be published to both without affecting each other as long - as related fields at MR level specified. + description: |- + WriteConnectionSecretsToNamespace specifies the namespace in which the + connection secrets of composite resource dynamically provisioned using + this composition will be created. + This field is planned to be replaced in a future release in favor of + PublishConnectionDetailsWithStoreConfigRef. Currently, both could be + set independently and connection details would be published to both + without affecting each other as long as related fields at MR level + specified. type: string required: - compositeTypeRef - revision type: object status: - description: CompositionRevisionStatus shows the observed state of the - composition revision. + description: |- + CompositionRevisionStatus shows the observed state of the composition + revision. properties: conditions: description: Conditions of the resource. @@ -1446,13 +1560,15 @@ spec: description: A Condition that may apply to a resource. properties: lastTransitionTime: - description: LastTransitionTime is the last time this condition - transitioned from one status to another. + description: |- + LastTransitionTime is the last time this condition transitioned from one + status to another. format: date-time type: string message: - description: A Message containing details about this condition's - last transition from one status to another, if any. + description: |- + A Message containing details about this condition's last transition from + one status to another, if any. type: string reason: description: A Reason for this condition's last transition from @@ -1463,8 +1579,9 @@ spec: False, or Unknown? type: string type: - description: Type of this condition. At most one of each condition - type may apply to a resource at any point in time. + description: |- + Type of this condition. At most one of each condition type may apply to + a resource at any point in time. type: string required: - lastTransitionTime @@ -1498,28 +1615,36 @@ spec: name: v1beta1 schema: openAPIV3Schema: - description: A CompositionRevision represents a revision in time of a Composition. + description: |- + A CompositionRevision represents a revision in time of a Composition. Revisions are created by Crossplane; they should be treated as immutable. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: CompositionRevisionSpec specifies the desired state of the - composition revision. + description: |- + CompositionRevisionSpec specifies the desired state of the composition + revision. properties: compositeTypeRef: - description: CompositeTypeRef specifies the type of composite resource - that this composition is compatible with. + description: |- + CompositeTypeRef specifies the type of composite resource that this + composition is compatible with. properties: apiVersion: description: APIVersion of the type. @@ -1532,35 +1657,44 @@ spec: - kind type: object environment: - description: "Environment configures the environment in which resources - are rendered. \n THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice." + description: |- + Environment configures the environment in which resources are rendered. + + + THIS IS AN ALPHA FIELD. Do not use it in production. It is not honored + unless the relevant Crossplane feature flag is enabled, and may be + changed or removed without notice. properties: defaultData: additionalProperties: x-kubernetes-preserve-unknown-fields: true - description: DefaultData statically defines the initial state - of the environment. It has the same schema-less structure as - the data field in environment configs. It is overwritten by - the selected environment configs. + description: |- + DefaultData statically defines the initial state of the environment. + It has the same schema-less structure as the data field in + environment configs. + It is overwritten by the selected environment configs. type: object environmentConfigs: - description: "EnvironmentConfigs selects a list of `EnvironmentConfig`s. - The resolved resources are stored in the composite resource - at `spec.environmentConfigRefs` and is only updated if it is - null. \n The list of references is used to compute an in-memory - environment at compose time. The data of all object is merged - in the order they are listed, meaning the values of EnvironmentConfigs - with a larger index take priority over ones with smaller indices. - \n The computed environment can be accessed in a composition - using `FromEnvironmentFieldPath` and `CombineFromEnvironment` - patches." + description: |- + EnvironmentConfigs selects a list of `EnvironmentConfig`s. The resolved + resources are stored in the composite resource at + `spec.environmentConfigRefs` and is only updated if it is null. + + + The list of references is used to compute an in-memory environment at + compose time. The data of all object is merged in the order they are + listed, meaning the values of EnvironmentConfigs with a larger index take + priority over ones with smaller indices. + + + The computed environment can be accessed in a composition using + `FromEnvironmentFieldPath` and `CombineFromEnvironment` patches. items: description: EnvironmentSource selects a EnvironmentConfig resource. properties: ref: - description: Ref is a named reference to a single EnvironmentConfig. + description: |- + Ref is a named reference to a single EnvironmentConfig. Either Ref or Selector is required. properties: name: @@ -1576,21 +1710,20 @@ spec: description: MatchLabels ensures an object with matching labels is selected. items: - description: An EnvironmentSourceSelectorLabelMatcher - acts like a k8s label selector but can draw the - label value from a different path. + description: |- + An EnvironmentSourceSelectorLabelMatcher acts like a k8s label selector but + can draw the label value from a different path. properties: fromFieldPathPolicy: default: Required - description: FromFieldPathPolicy specifies the - policy for the valueFromFieldPath. The default - is Required, meaning that an error will be returned - if the field is not found in the composite resource. - Optional means that if the field is not found - in the composite resource, that label pair will - just be skipped. N.B. other specified label - matchers will still be used to retrieve the - desired environment config, if any. + description: |- + FromFieldPathPolicy specifies the policy for the valueFromFieldPath. + The default is Required, meaning that an error will be returned if the + field is not found in the composite resource. + Optional means that if the field is not found in the composite resource, + that label pair will just be skipped. N.B. other specified label + matchers will still be used to retrieve the desired + environment config, if any. enum: - Optional - Required @@ -1645,8 +1778,9 @@ spec: type: object type: default: Reference - description: Type specifies the way the EnvironmentConfig - is selected. Default is `Reference` + description: |- + Type specifies the way the EnvironmentConfig is selected. + Default is `Reference` enum: - Reference - Selector @@ -1654,47 +1788,51 @@ spec: type: object type: array patches: - description: Patches is a list of environment patches that are - executed before a composition's resources are composed. + description: |- + Patches is a list of environment patches that are executed before a + composition's resources are composed. items: description: EnvironmentPatch is a patch for a Composition environment. properties: combine: - description: Combine is the patch configuration for a CombineFromComposite - or CombineToComposite patch. + description: |- + Combine is the patch configuration for a CombineFromComposite or + CombineToComposite patch. properties: strategy: - description: Strategy defines the strategy to use to - combine the input variable values. Currently only - string is supported. + description: |- + Strategy defines the strategy to use to combine the input variable values. + Currently only string is supported. enum: - string type: string string: - description: String declares that input variables should - be combined into a single string, using the relevant - settings for formatting purposes. + description: |- + String declares that input variables should be combined into a single + string, using the relevant settings for formatting purposes. properties: fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string required: - fmt type: object variables: - description: Variables are the list of variables whose - values will be retrieved and combined. + description: |- + Variables are the list of variables whose values will be retrieved and + combined. items: - description: A CombineVariable defines the source - of a value that is combined with others to form - and patch an output value. Currently, this only - supports retrieving values from a field path. + description: |- + A CombineVariable defines the source of a value that is combined with + others to form and patch an output value. Currently, this only supports + retrieving values from a field path. properties: fromFieldPath: - description: FromFieldPath is the path of the - field on the source whose value is to be used - as input. + description: |- + FromFieldPath is the path of the field on the source whose value is + to be used as input. type: string required: - fromFieldPath @@ -1706,20 +1844,21 @@ spec: - variables type: object fromFieldPath: - description: FromFieldPath is the path of the field on the - resource whose value is to be used as input. Required - when type is FromCompositeFieldPath or ToCompositeFieldPath. + description: |- + FromFieldPath is the path of the field on the resource whose value is + to be used as input. Required when type is FromCompositeFieldPath or + ToCompositeFieldPath. type: string policy: description: Policy configures the specifics of patching behaviour. properties: fromFieldPath: - description: FromFieldPath specifies how to patch from - a field path. The default is 'Optional', which means - the patch will be a no-op if the specified fromFieldPath - does not exist. Use 'Required' if the patch should - fail if the specified path does not exist. + description: |- + FromFieldPath specifies how to patch from a field path. The default is + 'Optional', which means the patch will be a no-op if the specified + fromFieldPath does not exist. Use 'Required' if the patch should fail if + the specified path does not exist. enum: - Optional - Required @@ -1739,30 +1878,36 @@ spec: type: object type: object toFieldPath: - description: ToFieldPath is the path of the field on the - resource whose value will be changed with the result of - transforms. Leave empty if you'd like to propagate to - the same path as fromFieldPath. + description: |- + ToFieldPath is the path of the field on the resource whose value will + be changed with the result of transforms. Leave empty if you'd like to + propagate to the same path as fromFieldPath. type: string transforms: - description: Transforms are the list of functions that are - used as a FIFO pipe for the input to be transformed. + description: |- + Transforms are the list of functions that are used as a FIFO pipe for the + input to be transformed. items: - description: Transform is a unit of process whose input - is transformed into an output with the supplied configuration. + description: |- + Transform is a unit of process whose input is transformed into an output with + the supplied configuration. properties: convert: description: Convert is used to cast the input into the given output type. properties: format: - description: "The expected input format. \n * - `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity). + description: |- + The expected input format. + + + * `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity). Only used during `string -> float64` conversions. * `json` - parses the input as a JSON string. - Only used during `string -> object` or `string - -> list` conversions. \n If this property is - null, the default conversion is applied." + Only used during `string -> object` or `string -> list` conversions. + + + If this property is null, the default conversion is applied. enum: - none - quantity @@ -1802,27 +1947,29 @@ spec: - Input type: string fallbackValue: - description: The fallback value that should be - returned by the transform if now pattern matches. + description: |- + The fallback value that should be returned by the transform if now pattern + matches. x-kubernetes-preserve-unknown-fields: true patterns: - description: The patterns that should be tested - against the input string. Patterns are tested - in order. The value of the first match is used - as result of this transform. + description: |- + The patterns that should be tested against the input string. + Patterns are tested in order. The value of the first match is used as + result of this transform. items: - description: MatchTransformPattern is a transform - that returns the value that matches a pattern. + description: |- + MatchTransformPattern is a transform that returns the value that matches a + pattern. properties: literal: - description: Literal exactly matches the - input string (case sensitive). Is required - if `type` is `literal`. + description: |- + Literal exactly matches the input string (case sensitive). + Is required if `type` is `literal`. type: string regexp: - description: Regexp to match against the - input string. Is required if `type` is - `regexp`. + description: |- + Regexp to match against the input string. + Is required if `type` is `regexp`. type: string result: description: The value that is used as result @@ -1830,15 +1977,17 @@ spec: x-kubernetes-preserve-unknown-fields: true type: default: literal - description: "Type specifies how the pattern - matches the input. \n * `literal` - the - pattern value has to exactly match (case - sensitive) the input string. This is the - default. \n * `regexp` - the pattern treated - as a regular expression against which - the input string is tested. Crossplane - will throw an error if the key is not - a valid regexp." + description: |- + Type specifies how the pattern matches the input. + + + * `literal` - the pattern value has to exactly match (case sensitive) the + input string. This is the default. + + + * `regexp` - the pattern treated as a regular expression against + which the input string is tested. Crossplane will throw an error if the + key is not a valid regexp. enum: - literal - regexp @@ -1850,8 +1999,9 @@ spec: type: array type: object math: - description: Math is used to transform the input via - mathematical operations such as multiplication. + description: |- + Math is used to transform the input via mathematical operations such as + multiplication. properties: clampMax: description: ClampMax makes sure that the value @@ -1878,22 +2028,19 @@ spec: type: string type: object string: - description: String is used to transform the input - into a string or a different kind of string. Note - that the input does not necessarily need to be a - string. + description: |- + String is used to transform the input into a string or a different kind + of string. Note that the input does not necessarily need to be a string. properties: convert: - description: Optional conversion method to be - specified. `ToUpper` and `ToLower` change the - letter case of the input string. `ToBase64` - and `FromBase64` perform a base64 conversion - based on the input string. `ToJson` converts - any input value into its raw JSON representation. - `ToSha1`, `ToSha256` and `ToSha512` generate - a hash value based on the input converted to - JSON. `ToAdler32` generate a addler32 hash based - on the input string. + description: |- + Optional conversion method to be specified. + `ToUpper` and `ToLower` change the letter case of the input string. + `ToBase64` and `FromBase64` perform a base64 conversion based on the input string. + `ToJson` converts any input value into its raw JSON representation. + `ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input + converted to JSON. + `ToAdler32` generate a addler32 hash based on the input string. enum: - ToUpper - ToLower @@ -1906,10 +2053,22 @@ spec: - ToAdler32 type: string fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string + join: + description: Join defines parameters to join a + slice of values to a string. + properties: + separator: + description: |- + Separator defines the character that should separate the values from each + other in the joined string. + type: string + required: + - separator + type: object regexp: description: Extract a match from the input using a regular expression. @@ -1919,8 +2078,8 @@ spec: default) matches the entire expression. type: integer match: - description: Match string. May optionally - include submatches, aka capture groups. + description: |- + Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details. type: string required: @@ -1940,6 +2099,7 @@ spec: - TrimPrefix - TrimSuffix - Regexp + - Join type: string type: object type: @@ -1957,9 +2117,9 @@ spec: type: array type: default: FromCompositeFieldPath - description: Type sets the patching behaviour to be used. - Each patch type may require its own fields to be set on - the Patch object. + description: |- + Type sets the patching behaviour to be used. Each patch type may require + its own fields to be set on the Patch object. enum: - FromCompositeFieldPath - ToCompositeFieldPath @@ -1969,27 +2129,27 @@ spec: type: object type: array policy: - description: Policy represents the Resolve and Resolution policies - which apply to all EnvironmentSourceReferences in EnvironmentConfigs - list. + description: |- + Policy represents the Resolve and Resolution policies which apply to + all EnvironmentSourceReferences in EnvironmentConfigs list. properties: resolution: default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. enum: - Required - Optional type: string resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. enum: - Always - IfNotPresent @@ -1998,28 +2158,38 @@ spec: type: object mode: default: Resources - description: "Mode controls what type or \"mode\" of Composition will - be used. \n \"Resources\" (the default) indicates that a Composition - uses what is commonly referred to as \"Patch & Transform\" or P&T - composition. This mode of Composition uses an array of resources, - each a template for a composed resource. \n \"Pipeline\" indicates - that a Composition specifies a pipeline of Composition Functions, - each of which is responsible for producing composed resources that - Crossplane should create or update. THE PIPELINE MODE IS A BETA - FEATURE. It is not honored if the relevant Crossplane feature flag - is disabled." + description: |- + Mode controls what type or "mode" of Composition will be used. + + + "Resources" (the default) indicates that a Composition uses what is + commonly referred to as "Patch & Transform" or P&T composition. This mode + of Composition uses an array of resources, each a template for a composed + resource. + + + "Pipeline" indicates that a Composition specifies a pipeline + of Composition Functions, each of which is responsible for producing + composed resources that Crossplane should create or update. THE PIPELINE + MODE IS A BETA FEATURE. It is not honored if the relevant Crossplane + feature flag is disabled. enum: - Resources - Pipeline type: string patchSets: - description: "PatchSets define a named set of patches that may be - included by any resource in this Composition. PatchSets cannot themselves - refer to other PatchSets. \n PatchSets are only used by the \"Resources\" - mode of Composition. They are ignored by other modes." + description: |- + PatchSets define a named set of patches that may be included by any + resource in this Composition. PatchSets cannot themselves refer to other + PatchSets. + + + PatchSets are only used by the "Resources" mode of Composition. They + are ignored by other modes. items: - description: A PatchSet is a set of patches that can be reused from - all resources within a Composition. + description: |- + A PatchSet is a set of patches that can be reused from all resources within + a Composition. properties: name: description: Name of this PatchSet. @@ -2028,50 +2198,51 @@ spec: description: Patches will be applied as an overlay to the base resource. items: - description: Patch objects are applied between composite and - composed resources. Their behaviour depends on the Type - selected. The default Type, FromCompositeFieldPath, copies - a value from the composite resource to the composed resource, - applying any defined transformers. + description: |- + Patch objects are applied between composite and composed resources. Their + behaviour depends on the Type selected. The default Type, + FromCompositeFieldPath, copies a value from the composite resource to + the composed resource, applying any defined transformers. properties: combine: - description: Combine is the patch configuration for a - CombineFromComposite, CombineFromEnvironment, CombineToComposite - or CombineToEnvironment patch. + description: |- + Combine is the patch configuration for a CombineFromComposite, + CombineFromEnvironment, CombineToComposite or CombineToEnvironment patch. properties: strategy: - description: Strategy defines the strategy to use - to combine the input variable values. Currently - only string is supported. + description: |- + Strategy defines the strategy to use to combine the input variable values. + Currently only string is supported. enum: - string type: string string: - description: String declares that input variables - should be combined into a single string, using the - relevant settings for formatting purposes. + description: |- + String declares that input variables should be combined into a single + string, using the relevant settings for formatting purposes. properties: fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string required: - fmt type: object variables: - description: Variables are the list of variables whose - values will be retrieved and combined. + description: |- + Variables are the list of variables whose values will be retrieved and + combined. items: - description: A CombineVariable defines the source - of a value that is combined with others to form - and patch an output value. Currently, this only - supports retrieving values from a field path. + description: |- + A CombineVariable defines the source of a value that is combined with + others to form and patch an output value. Currently, this only supports + retrieving values from a field path. properties: fromFieldPath: - description: FromFieldPath is the path of the - field on the source whose value is to be used - as input. + description: |- + FromFieldPath is the path of the field on the source whose value is + to be used as input. type: string required: - fromFieldPath @@ -2083,10 +2254,10 @@ spec: - variables type: object fromFieldPath: - description: FromFieldPath is the path of the field on - the resource whose value is to be used as input. Required - when type is FromCompositeFieldPath, FromEnvironmentFieldPath, - ToCompositeFieldPath, ToEnvironmentFieldPath. + description: |- + FromFieldPath is the path of the field on the resource whose value is + to be used as input. Required when type is FromCompositeFieldPath, + FromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath. type: string patchSetName: description: PatchSetName to include patches from. Required @@ -2097,12 +2268,11 @@ spec: behaviour. properties: fromFieldPath: - description: FromFieldPath specifies how to patch - from a field path. The default is 'Optional', which - means the patch will be a no-op if the specified - fromFieldPath does not exist. Use 'Required' if - the patch should fail if the specified path does - not exist. + description: |- + FromFieldPath specifies how to patch from a field path. The default is + 'Optional', which means the patch will be a no-op if the specified + fromFieldPath does not exist. Use 'Required' if the patch should fail if + the specified path does not exist. enum: - Optional - Required @@ -2122,30 +2292,36 @@ spec: type: object type: object toFieldPath: - description: ToFieldPath is the path of the field on the - resource whose value will be changed with the result - of transforms. Leave empty if you'd like to propagate - to the same path as fromFieldPath. + description: |- + ToFieldPath is the path of the field on the resource whose value will + be changed with the result of transforms. Leave empty if you'd like to + propagate to the same path as fromFieldPath. type: string transforms: - description: Transforms are the list of functions that - are used as a FIFO pipe for the input to be transformed. + description: |- + Transforms are the list of functions that are used as a FIFO pipe for the + input to be transformed. items: - description: Transform is a unit of process whose input - is transformed into an output with the supplied configuration. + description: |- + Transform is a unit of process whose input is transformed into an output with + the supplied configuration. properties: convert: description: Convert is used to cast the input into the given output type. properties: format: - description: "The expected input format. \n + description: |- + The expected input format. + + * `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity). Only used during `string -> float64` conversions. * `json` - parses the input as a JSON string. - Only used during `string -> object` or `string - -> list` conversions. \n If this property - is null, the default conversion is applied." + Only used during `string -> object` or `string -> list` conversions. + + + If this property is null, the default conversion is applied. enum: - none - quantity @@ -2185,28 +2361,29 @@ spec: - Input type: string fallbackValue: - description: The fallback value that should - be returned by the transform if now pattern + description: |- + The fallback value that should be returned by the transform if now pattern matches. x-kubernetes-preserve-unknown-fields: true patterns: - description: The patterns that should be tested - against the input string. Patterns are tested - in order. The value of the first match is - used as result of this transform. + description: |- + The patterns that should be tested against the input string. + Patterns are tested in order. The value of the first match is used as + result of this transform. items: - description: MatchTransformPattern is a transform - that returns the value that matches a pattern. + description: |- + MatchTransformPattern is a transform that returns the value that matches a + pattern. properties: literal: - description: Literal exactly matches the - input string (case sensitive). Is required - if `type` is `literal`. + description: |- + Literal exactly matches the input string (case sensitive). + Is required if `type` is `literal`. type: string regexp: - description: Regexp to match against the - input string. Is required if `type` - is `regexp`. + description: |- + Regexp to match against the input string. + Is required if `type` is `regexp`. type: string result: description: The value that is used as @@ -2215,15 +2392,17 @@ spec: x-kubernetes-preserve-unknown-fields: true type: default: literal - description: "Type specifies how the pattern - matches the input. \n * `literal` - - the pattern value has to exactly match - (case sensitive) the input string. This - is the default. \n * `regexp` - the - pattern treated as a regular expression - against which the input string is tested. - Crossplane will throw an error if the - key is not a valid regexp." + description: |- + Type specifies how the pattern matches the input. + + + * `literal` - the pattern value has to exactly match (case sensitive) the + input string. This is the default. + + + * `regexp` - the pattern treated as a regular expression against + which the input string is tested. Crossplane will throw an error if the + key is not a valid regexp. enum: - literal - regexp @@ -2235,8 +2414,9 @@ spec: type: array type: object math: - description: Math is used to transform the input - via mathematical operations such as multiplication. + description: |- + Math is used to transform the input via mathematical operations such as + multiplication. properties: clampMax: description: ClampMax makes sure that the value @@ -2263,22 +2443,19 @@ spec: type: string type: object string: - description: String is used to transform the input - into a string or a different kind of string. Note - that the input does not necessarily need to be - a string. + description: |- + String is used to transform the input into a string or a different kind + of string. Note that the input does not necessarily need to be a string. properties: convert: - description: Optional conversion method to be - specified. `ToUpper` and `ToLower` change - the letter case of the input string. `ToBase64` - and `FromBase64` perform a base64 conversion - based on the input string. `ToJson` converts - any input value into its raw JSON representation. - `ToSha1`, `ToSha256` and `ToSha512` generate - a hash value based on the input converted - to JSON. `ToAdler32` generate a addler32 hash - based on the input string. + description: |- + Optional conversion method to be specified. + `ToUpper` and `ToLower` change the letter case of the input string. + `ToBase64` and `FromBase64` perform a base64 conversion based on the input string. + `ToJson` converts any input value into its raw JSON representation. + `ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input + converted to JSON. + `ToAdler32` generate a addler32 hash based on the input string. enum: - ToUpper - ToLower @@ -2291,10 +2468,22 @@ spec: - ToAdler32 type: string fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string + join: + description: Join defines parameters to join + a slice of values to a string. + properties: + separator: + description: |- + Separator defines the character that should separate the values from each + other in the joined string. + type: string + required: + - separator + type: object regexp: description: Extract a match from the input using a regular expression. @@ -2304,8 +2493,8 @@ spec: default) matches the entire expression. type: integer match: - description: Match string. May optionally - include submatches, aka capture groups. + description: |- + Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details. type: string required: @@ -2325,6 +2514,7 @@ spec: - TrimPrefix - TrimSuffix - Regexp + - Join type: string type: object type: @@ -2342,9 +2532,9 @@ spec: type: array type: default: FromCompositeFieldPath - description: Type sets the patching behaviour to be used. - Each patch type may require its own fields to be set - on the Patch object. + description: |- + Type sets the patching behaviour to be used. Each patch type may require + its own fields to be set on the Patch object. enum: - FromCompositeFieldPath - FromEnvironmentFieldPath @@ -2364,19 +2554,25 @@ spec: type: object type: array pipeline: - description: "Pipeline is a list of composition function steps that - will be used when a composite resource referring to this composition - is created. One of resources and pipeline must be specified - you - cannot specify both. \n The Pipeline is only used by the \"Pipeline\" - mode of Composition. It is ignored by other modes. \n THIS IS A - BETA FIELD. It is not honored if the relevant Crossplane feature - flag is disabled." + description: |- + Pipeline is a list of composition function steps that will be used when a + composite resource referring to this composition is created. One of + resources and pipeline must be specified - you cannot specify both. + + + The Pipeline is only used by the "Pipeline" mode of Composition. It is + ignored by other modes. + + + THIS IS A BETA FIELD. It is not honored if the relevant Crossplane + feature flag is disabled. items: description: A PipelineStep in a Composition Function pipeline. properties: functionRef: - description: FunctionRef is a reference to the Composition Function - this step should execute. + description: |- + FunctionRef is a reference to the Composition Function this step should + execute. properties: name: description: Name of the referenced Function. @@ -2385,9 +2581,10 @@ spec: - name type: object input: - description: Input is an optional, arbitrary Kubernetes resource - (i.e. a resource with an apiVersion and kind) that will be - passed to the Composition Function as the 'input' of its RunFunctionRequest. + description: |- + Input is an optional, arbitrary Kubernetes resource (i.e. a resource + with an apiVersion and kind) that will be passed to the Composition + Function as the 'input' of its RunFunctionRequest. type: object x-kubernetes-embedded-resource: true x-kubernetes-preserve-unknown-fields: true @@ -2402,12 +2599,15 @@ spec: publishConnectionDetailsWithStoreConfigRef: default: name: default - description: "PublishConnectionDetailsWithStoreConfig specifies the - secret store config with which the connection details of composite - resources dynamically provisioned using this composition will be - published. \n THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice." + description: |- + PublishConnectionDetailsWithStoreConfig specifies the secret store config + with which the connection details of composite resources dynamically + provisioned using this composition will be published. + + + THIS IS AN ALPHA FIELD. Do not use it in production. It is not honored + unless the relevant Crossplane feature flag is enabled, and may be + changed or removed without notice. properties: name: description: Name of the referenced StoreConfig. @@ -2416,13 +2616,17 @@ spec: - name type: object resources: - description: "Resources is a list of resource templates that will - be used when a composite resource referring to this composition - is created. \n Resources are only used by the \"Resources\" mode - of Composition. They are ignored by other modes." + description: |- + Resources is a list of resource templates that will be used when a + composite resource referring to this composition is created. + + + Resources are only used by the "Resources" mode of Composition. They are + ignored by other modes. items: - description: ComposedTemplate is used to provide information about - how the composed resource should be processed. + description: |- + ComposedTemplate is used to provide information about how the composed resource + should be processed. properties: base: description: Base is the target resource that the patches will @@ -2431,108 +2635,112 @@ spec: x-kubernetes-embedded-resource: true x-kubernetes-preserve-unknown-fields: true connectionDetails: - description: ConnectionDetails lists the propagation secret - keys from this target resource to the composition instance - connection secret. + description: |- + ConnectionDetails lists the propagation secret keys from this target + resource to the composition instance connection secret. items: - description: ConnectionDetail includes the information about - the propagation of the connection information from one secret - to another. + description: |- + ConnectionDetail includes the information about the propagation of the connection + information from one secret to another. properties: fromConnectionSecretKey: - description: FromConnectionSecretKey is the key that will - be used to fetch the value from the composed resource's - connection secret. + description: |- + FromConnectionSecretKey is the key that will be used to fetch the value + from the composed resource's connection secret. type: string fromFieldPath: - description: FromFieldPath is the path of the field on - the composed resource whose value to be used as input. - Name must be specified if the type is FromFieldPath. + description: |- + FromFieldPath is the path of the field on the composed resource whose + value to be used as input. Name must be specified if the type is + FromFieldPath. type: string name: - description: Name of the connection secret key that will - be propagated to the connection secret of the composition - instance. Leave empty if you'd like to use the same - key name. + description: |- + Name of the connection secret key that will be propagated to the + connection secret of the composition instance. Leave empty if you'd like + to use the same key name. type: string type: - description: 'Type sets the connection detail fetching - behaviour to be used. Each connection detail type may - require its own fields to be set on the ConnectionDetail - object. If the type is omitted Crossplane will attempt - to infer it based on which other fields were specified. - If multiple fields are specified the order of precedence - is: 1. FromValue 2. FromConnectionSecretKey 3. FromFieldPath' + description: |- + Type sets the connection detail fetching behaviour to be used. Each + connection detail type may require its own fields to be set on the + ConnectionDetail object. If the type is omitted Crossplane will attempt + to infer it based on which other fields were specified. If multiple + fields are specified the order of precedence is: + 1. FromValue + 2. FromConnectionSecretKey + 3. FromFieldPath enum: - FromConnectionSecretKey - FromFieldPath - FromValue type: string value: - description: Value that will be propagated to the connection - secret of the composite resource. May be set to inject - a fixed, non-sensitive connection secret value, for - example a well-known port. + description: |- + Value that will be propagated to the connection secret of the composite + resource. May be set to inject a fixed, non-sensitive connection secret + value, for example a well-known port. type: string type: object type: array name: - description: A Name uniquely identifies this entry within its - Composition's resources array. Names are optional but *strongly* - recommended. When all entries in the resources array are named - entries may added, deleted, and reordered as long as their - names do not change. When entries are not named the length - and order of the resources array should be treated as immutable. + description: |- + A Name uniquely identifies this entry within its Composition's resources + array. Names are optional but *strongly* recommended. When all entries in + the resources array are named entries may added, deleted, and reordered + as long as their names do not change. When entries are not named the + length and order of the resources array should be treated as immutable. Either all or no entries must be named. type: string patches: description: Patches will be applied as overlay to the base resource. items: - description: Patch objects are applied between composite and - composed resources. Their behaviour depends on the Type - selected. The default Type, FromCompositeFieldPath, copies - a value from the composite resource to the composed resource, - applying any defined transformers. + description: |- + Patch objects are applied between composite and composed resources. Their + behaviour depends on the Type selected. The default Type, + FromCompositeFieldPath, copies a value from the composite resource to + the composed resource, applying any defined transformers. properties: combine: - description: Combine is the patch configuration for a - CombineFromComposite, CombineFromEnvironment, CombineToComposite - or CombineToEnvironment patch. + description: |- + Combine is the patch configuration for a CombineFromComposite, + CombineFromEnvironment, CombineToComposite or CombineToEnvironment patch. properties: strategy: - description: Strategy defines the strategy to use - to combine the input variable values. Currently - only string is supported. + description: |- + Strategy defines the strategy to use to combine the input variable values. + Currently only string is supported. enum: - string type: string string: - description: String declares that input variables - should be combined into a single string, using the - relevant settings for formatting purposes. + description: |- + String declares that input variables should be combined into a single + string, using the relevant settings for formatting purposes. properties: fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string required: - fmt type: object variables: - description: Variables are the list of variables whose - values will be retrieved and combined. + description: |- + Variables are the list of variables whose values will be retrieved and + combined. items: - description: A CombineVariable defines the source - of a value that is combined with others to form - and patch an output value. Currently, this only - supports retrieving values from a field path. + description: |- + A CombineVariable defines the source of a value that is combined with + others to form and patch an output value. Currently, this only supports + retrieving values from a field path. properties: fromFieldPath: - description: FromFieldPath is the path of the - field on the source whose value is to be used - as input. + description: |- + FromFieldPath is the path of the field on the source whose value is + to be used as input. type: string required: - fromFieldPath @@ -2544,10 +2752,10 @@ spec: - variables type: object fromFieldPath: - description: FromFieldPath is the path of the field on - the resource whose value is to be used as input. Required - when type is FromCompositeFieldPath, FromEnvironmentFieldPath, - ToCompositeFieldPath, ToEnvironmentFieldPath. + description: |- + FromFieldPath is the path of the field on the resource whose value is + to be used as input. Required when type is FromCompositeFieldPath, + FromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath. type: string patchSetName: description: PatchSetName to include patches from. Required @@ -2558,12 +2766,11 @@ spec: behaviour. properties: fromFieldPath: - description: FromFieldPath specifies how to patch - from a field path. The default is 'Optional', which - means the patch will be a no-op if the specified - fromFieldPath does not exist. Use 'Required' if - the patch should fail if the specified path does - not exist. + description: |- + FromFieldPath specifies how to patch from a field path. The default is + 'Optional', which means the patch will be a no-op if the specified + fromFieldPath does not exist. Use 'Required' if the patch should fail if + the specified path does not exist. enum: - Optional - Required @@ -2583,30 +2790,36 @@ spec: type: object type: object toFieldPath: - description: ToFieldPath is the path of the field on the - resource whose value will be changed with the result - of transforms. Leave empty if you'd like to propagate - to the same path as fromFieldPath. + description: |- + ToFieldPath is the path of the field on the resource whose value will + be changed with the result of transforms. Leave empty if you'd like to + propagate to the same path as fromFieldPath. type: string transforms: - description: Transforms are the list of functions that - are used as a FIFO pipe for the input to be transformed. + description: |- + Transforms are the list of functions that are used as a FIFO pipe for the + input to be transformed. items: - description: Transform is a unit of process whose input - is transformed into an output with the supplied configuration. + description: |- + Transform is a unit of process whose input is transformed into an output with + the supplied configuration. properties: convert: description: Convert is used to cast the input into the given output type. properties: format: - description: "The expected input format. \n + description: |- + The expected input format. + + * `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity). Only used during `string -> float64` conversions. * `json` - parses the input as a JSON string. - Only used during `string -> object` or `string - -> list` conversions. \n If this property - is null, the default conversion is applied." + Only used during `string -> object` or `string -> list` conversions. + + + If this property is null, the default conversion is applied. enum: - none - quantity @@ -2646,28 +2859,29 @@ spec: - Input type: string fallbackValue: - description: The fallback value that should - be returned by the transform if now pattern + description: |- + The fallback value that should be returned by the transform if now pattern matches. x-kubernetes-preserve-unknown-fields: true patterns: - description: The patterns that should be tested - against the input string. Patterns are tested - in order. The value of the first match is - used as result of this transform. + description: |- + The patterns that should be tested against the input string. + Patterns are tested in order. The value of the first match is used as + result of this transform. items: - description: MatchTransformPattern is a transform - that returns the value that matches a pattern. + description: |- + MatchTransformPattern is a transform that returns the value that matches a + pattern. properties: literal: - description: Literal exactly matches the - input string (case sensitive). Is required - if `type` is `literal`. + description: |- + Literal exactly matches the input string (case sensitive). + Is required if `type` is `literal`. type: string regexp: - description: Regexp to match against the - input string. Is required if `type` - is `regexp`. + description: |- + Regexp to match against the input string. + Is required if `type` is `regexp`. type: string result: description: The value that is used as @@ -2676,15 +2890,17 @@ spec: x-kubernetes-preserve-unknown-fields: true type: default: literal - description: "Type specifies how the pattern - matches the input. \n * `literal` - - the pattern value has to exactly match - (case sensitive) the input string. This - is the default. \n * `regexp` - the - pattern treated as a regular expression - against which the input string is tested. - Crossplane will throw an error if the - key is not a valid regexp." + description: |- + Type specifies how the pattern matches the input. + + + * `literal` - the pattern value has to exactly match (case sensitive) the + input string. This is the default. + + + * `regexp` - the pattern treated as a regular expression against + which the input string is tested. Crossplane will throw an error if the + key is not a valid regexp. enum: - literal - regexp @@ -2696,8 +2912,9 @@ spec: type: array type: object math: - description: Math is used to transform the input - via mathematical operations such as multiplication. + description: |- + Math is used to transform the input via mathematical operations such as + multiplication. properties: clampMax: description: ClampMax makes sure that the value @@ -2724,22 +2941,19 @@ spec: type: string type: object string: - description: String is used to transform the input - into a string or a different kind of string. Note - that the input does not necessarily need to be - a string. + description: |- + String is used to transform the input into a string or a different kind + of string. Note that the input does not necessarily need to be a string. properties: convert: - description: Optional conversion method to be - specified. `ToUpper` and `ToLower` change - the letter case of the input string. `ToBase64` - and `FromBase64` perform a base64 conversion - based on the input string. `ToJson` converts - any input value into its raw JSON representation. - `ToSha1`, `ToSha256` and `ToSha512` generate - a hash value based on the input converted - to JSON. `ToAdler32` generate a addler32 hash - based on the input string. + description: |- + Optional conversion method to be specified. + `ToUpper` and `ToLower` change the letter case of the input string. + `ToBase64` and `FromBase64` perform a base64 conversion based on the input string. + `ToJson` converts any input value into its raw JSON representation. + `ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input + converted to JSON. + `ToAdler32` generate a addler32 hash based on the input string. enum: - ToUpper - ToLower @@ -2752,10 +2966,22 @@ spec: - ToAdler32 type: string fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string + join: + description: Join defines parameters to join + a slice of values to a string. + properties: + separator: + description: |- + Separator defines the character that should separate the values from each + other in the joined string. + type: string + required: + - separator + type: object regexp: description: Extract a match from the input using a regular expression. @@ -2765,8 +2991,8 @@ spec: default) matches the entire expression. type: integer match: - description: Match string. May optionally - include submatches, aka capture groups. + description: |- + Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details. type: string required: @@ -2786,6 +3012,7 @@ spec: - TrimPrefix - TrimSuffix - Regexp + - Join type: string type: object type: @@ -2803,9 +3030,9 @@ spec: type: array type: default: FromCompositeFieldPath - description: Type sets the patching behaviour to be used. - Each patch type may require its own fields to be set - on the Patch object. + description: |- + Type sets the patching behaviour to be used. Each patch type may require + its own fields to be set on the Patch object. enum: - FromCompositeFieldPath - FromEnvironmentFieldPath @@ -2825,13 +3052,14 @@ spec: status: "True" type: Ready type: MatchCondition - description: ReadinessChecks allows users to define custom readiness - checks. All checks have to return true in order for resource - to be considered ready. The default readiness check is to - have the "Ready" condition to be "True". + description: |- + ReadinessChecks allows users to define custom readiness checks. All checks + have to return true in order for resource to be considered ready. The + default readiness check is to have the "Ready" condition to be "True". items: - description: ReadinessCheck is used to indicate how to tell - whether a resource is ready for consumption + description: |- + ReadinessCheck is used to indicate how to tell whether a resource is ready + for consumption properties: fieldPath: description: FieldPath shows the path of the field whose @@ -2889,21 +3117,24 @@ spec: format: int64 type: integer writeConnectionSecretsToNamespace: - description: WriteConnectionSecretsToNamespace specifies the namespace - in which the connection secrets of composite resource dynamically - provisioned using this composition will be created. This field is - planned to be replaced in a future release in favor of PublishConnectionDetailsWithStoreConfigRef. - Currently, both could be set independently and connection details - would be published to both without affecting each other as long - as related fields at MR level specified. + description: |- + WriteConnectionSecretsToNamespace specifies the namespace in which the + connection secrets of composite resource dynamically provisioned using + this composition will be created. + This field is planned to be replaced in a future release in favor of + PublishConnectionDetailsWithStoreConfigRef. Currently, both could be + set independently and connection details would be published to both + without affecting each other as long as related fields at MR level + specified. type: string required: - compositeTypeRef - revision type: object status: - description: CompositionRevisionStatus shows the observed state of the - composition revision. + description: |- + CompositionRevisionStatus shows the observed state of the composition + revision. properties: conditions: description: Conditions of the resource. @@ -2911,13 +3142,15 @@ spec: description: A Condition that may apply to a resource. properties: lastTransitionTime: - description: LastTransitionTime is the last time this condition - transitioned from one status to another. + description: |- + LastTransitionTime is the last time this condition transitioned from one + status to another. format: date-time type: string message: - description: A Message containing details about this condition's - last transition from one status to another, if any. + description: |- + A Message containing details about this condition's last transition from + one status to another, if any. type: string reason: description: A Reason for this condition's last transition from @@ -2928,8 +3161,9 @@ spec: False, or Unknown? type: string type: - description: Type of this condition. At most one of each condition - type may apply to a resource at any point in time. + description: |- + Type of this condition. At most one of each condition type may apply to + a resource at any point in time. type: string required: - lastTransitionTime diff --git a/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositions.yaml b/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositions.yaml index 10882fb..cb1d489 100644 --- a/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositions.yaml +++ b/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_compositions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: compositions.apiextensions.crossplane.io spec: group: apiextensions.crossplane.io @@ -33,14 +33,19 @@ spec: description: A Composition specifies how a composite resource should be composed. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -48,8 +53,9 @@ spec: description: CompositionSpec specifies desired state of a composition. properties: compositeTypeRef: - description: CompositeTypeRef specifies the type of composite resource - that this composition is compatible with. + description: |- + CompositeTypeRef specifies the type of composite resource that this + composition is compatible with. properties: apiVersion: description: APIVersion of the type. @@ -62,35 +68,44 @@ spec: - kind type: object environment: - description: "Environment configures the environment in which resources - are rendered. \n THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice." + description: |- + Environment configures the environment in which resources are rendered. + + + THIS IS AN ALPHA FIELD. Do not use it in production. It is not honored + unless the relevant Crossplane feature flag is enabled, and may be + changed or removed without notice. properties: defaultData: additionalProperties: x-kubernetes-preserve-unknown-fields: true - description: DefaultData statically defines the initial state - of the environment. It has the same schema-less structure as - the data field in environment configs. It is overwritten by - the selected environment configs. + description: |- + DefaultData statically defines the initial state of the environment. + It has the same schema-less structure as the data field in + environment configs. + It is overwritten by the selected environment configs. type: object environmentConfigs: - description: "EnvironmentConfigs selects a list of `EnvironmentConfig`s. - The resolved resources are stored in the composite resource - at `spec.environmentConfigRefs` and is only updated if it is - null. \n The list of references is used to compute an in-memory - environment at compose time. The data of all object is merged - in the order they are listed, meaning the values of EnvironmentConfigs - with a larger index take priority over ones with smaller indices. - \n The computed environment can be accessed in a composition - using `FromEnvironmentFieldPath` and `CombineFromEnvironment` - patches." + description: |- + EnvironmentConfigs selects a list of `EnvironmentConfig`s. The resolved + resources are stored in the composite resource at + `spec.environmentConfigRefs` and is only updated if it is null. + + + The list of references is used to compute an in-memory environment at + compose time. The data of all object is merged in the order they are + listed, meaning the values of EnvironmentConfigs with a larger index take + priority over ones with smaller indices. + + + The computed environment can be accessed in a composition using + `FromEnvironmentFieldPath` and `CombineFromEnvironment` patches. items: description: EnvironmentSource selects a EnvironmentConfig resource. properties: ref: - description: Ref is a named reference to a single EnvironmentConfig. + description: |- + Ref is a named reference to a single EnvironmentConfig. Either Ref or Selector is required. properties: name: @@ -106,21 +121,20 @@ spec: description: MatchLabels ensures an object with matching labels is selected. items: - description: An EnvironmentSourceSelectorLabelMatcher - acts like a k8s label selector but can draw the - label value from a different path. + description: |- + An EnvironmentSourceSelectorLabelMatcher acts like a k8s label selector but + can draw the label value from a different path. properties: fromFieldPathPolicy: default: Required - description: FromFieldPathPolicy specifies the - policy for the valueFromFieldPath. The default - is Required, meaning that an error will be returned - if the field is not found in the composite resource. - Optional means that if the field is not found - in the composite resource, that label pair will - just be skipped. N.B. other specified label - matchers will still be used to retrieve the - desired environment config, if any. + description: |- + FromFieldPathPolicy specifies the policy for the valueFromFieldPath. + The default is Required, meaning that an error will be returned if the + field is not found in the composite resource. + Optional means that if the field is not found in the composite resource, + that label pair will just be skipped. N.B. other specified label + matchers will still be used to retrieve the desired + environment config, if any. enum: - Optional - Required @@ -175,8 +189,9 @@ spec: type: object type: default: Reference - description: Type specifies the way the EnvironmentConfig - is selected. Default is `Reference` + description: |- + Type specifies the way the EnvironmentConfig is selected. + Default is `Reference` enum: - Reference - Selector @@ -184,47 +199,51 @@ spec: type: object type: array patches: - description: Patches is a list of environment patches that are - executed before a composition's resources are composed. + description: |- + Patches is a list of environment patches that are executed before a + composition's resources are composed. items: description: EnvironmentPatch is a patch for a Composition environment. properties: combine: - description: Combine is the patch configuration for a CombineFromComposite - or CombineToComposite patch. + description: |- + Combine is the patch configuration for a CombineFromComposite or + CombineToComposite patch. properties: strategy: - description: Strategy defines the strategy to use to - combine the input variable values. Currently only - string is supported. + description: |- + Strategy defines the strategy to use to combine the input variable values. + Currently only string is supported. enum: - string type: string string: - description: String declares that input variables should - be combined into a single string, using the relevant - settings for formatting purposes. + description: |- + String declares that input variables should be combined into a single + string, using the relevant settings for formatting purposes. properties: fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string required: - fmt type: object variables: - description: Variables are the list of variables whose - values will be retrieved and combined. + description: |- + Variables are the list of variables whose values will be retrieved and + combined. items: - description: A CombineVariable defines the source - of a value that is combined with others to form - and patch an output value. Currently, this only - supports retrieving values from a field path. + description: |- + A CombineVariable defines the source of a value that is combined with + others to form and patch an output value. Currently, this only supports + retrieving values from a field path. properties: fromFieldPath: - description: FromFieldPath is the path of the - field on the source whose value is to be used - as input. + description: |- + FromFieldPath is the path of the field on the source whose value is + to be used as input. type: string required: - fromFieldPath @@ -236,20 +255,21 @@ spec: - variables type: object fromFieldPath: - description: FromFieldPath is the path of the field on the - resource whose value is to be used as input. Required - when type is FromCompositeFieldPath or ToCompositeFieldPath. + description: |- + FromFieldPath is the path of the field on the resource whose value is + to be used as input. Required when type is FromCompositeFieldPath or + ToCompositeFieldPath. type: string policy: description: Policy configures the specifics of patching behaviour. properties: fromFieldPath: - description: FromFieldPath specifies how to patch from - a field path. The default is 'Optional', which means - the patch will be a no-op if the specified fromFieldPath - does not exist. Use 'Required' if the patch should - fail if the specified path does not exist. + description: |- + FromFieldPath specifies how to patch from a field path. The default is + 'Optional', which means the patch will be a no-op if the specified + fromFieldPath does not exist. Use 'Required' if the patch should fail if + the specified path does not exist. enum: - Optional - Required @@ -269,30 +289,36 @@ spec: type: object type: object toFieldPath: - description: ToFieldPath is the path of the field on the - resource whose value will be changed with the result of - transforms. Leave empty if you'd like to propagate to - the same path as fromFieldPath. + description: |- + ToFieldPath is the path of the field on the resource whose value will + be changed with the result of transforms. Leave empty if you'd like to + propagate to the same path as fromFieldPath. type: string transforms: - description: Transforms are the list of functions that are - used as a FIFO pipe for the input to be transformed. + description: |- + Transforms are the list of functions that are used as a FIFO pipe for the + input to be transformed. items: - description: Transform is a unit of process whose input - is transformed into an output with the supplied configuration. + description: |- + Transform is a unit of process whose input is transformed into an output with + the supplied configuration. properties: convert: description: Convert is used to cast the input into the given output type. properties: format: - description: "The expected input format. \n * - `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity). + description: |- + The expected input format. + + + * `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity). Only used during `string -> float64` conversions. * `json` - parses the input as a JSON string. - Only used during `string -> object` or `string - -> list` conversions. \n If this property is - null, the default conversion is applied." + Only used during `string -> object` or `string -> list` conversions. + + + If this property is null, the default conversion is applied. enum: - none - quantity @@ -332,27 +358,29 @@ spec: - Input type: string fallbackValue: - description: The fallback value that should be - returned by the transform if now pattern matches. + description: |- + The fallback value that should be returned by the transform if now pattern + matches. x-kubernetes-preserve-unknown-fields: true patterns: - description: The patterns that should be tested - against the input string. Patterns are tested - in order. The value of the first match is used - as result of this transform. + description: |- + The patterns that should be tested against the input string. + Patterns are tested in order. The value of the first match is used as + result of this transform. items: - description: MatchTransformPattern is a transform - that returns the value that matches a pattern. + description: |- + MatchTransformPattern is a transform that returns the value that matches a + pattern. properties: literal: - description: Literal exactly matches the - input string (case sensitive). Is required - if `type` is `literal`. + description: |- + Literal exactly matches the input string (case sensitive). + Is required if `type` is `literal`. type: string regexp: - description: Regexp to match against the - input string. Is required if `type` is - `regexp`. + description: |- + Regexp to match against the input string. + Is required if `type` is `regexp`. type: string result: description: The value that is used as result @@ -360,15 +388,17 @@ spec: x-kubernetes-preserve-unknown-fields: true type: default: literal - description: "Type specifies how the pattern - matches the input. \n * `literal` - the - pattern value has to exactly match (case - sensitive) the input string. This is the - default. \n * `regexp` - the pattern treated - as a regular expression against which - the input string is tested. Crossplane - will throw an error if the key is not - a valid regexp." + description: |- + Type specifies how the pattern matches the input. + + + * `literal` - the pattern value has to exactly match (case sensitive) the + input string. This is the default. + + + * `regexp` - the pattern treated as a regular expression against + which the input string is tested. Crossplane will throw an error if the + key is not a valid regexp. enum: - literal - regexp @@ -380,8 +410,9 @@ spec: type: array type: object math: - description: Math is used to transform the input via - mathematical operations such as multiplication. + description: |- + Math is used to transform the input via mathematical operations such as + multiplication. properties: clampMax: description: ClampMax makes sure that the value @@ -408,22 +439,19 @@ spec: type: string type: object string: - description: String is used to transform the input - into a string or a different kind of string. Note - that the input does not necessarily need to be a - string. + description: |- + String is used to transform the input into a string or a different kind + of string. Note that the input does not necessarily need to be a string. properties: convert: - description: Optional conversion method to be - specified. `ToUpper` and `ToLower` change the - letter case of the input string. `ToBase64` - and `FromBase64` perform a base64 conversion - based on the input string. `ToJson` converts - any input value into its raw JSON representation. - `ToSha1`, `ToSha256` and `ToSha512` generate - a hash value based on the input converted to - JSON. `ToAdler32` generate a addler32 hash based - on the input string. + description: |- + Optional conversion method to be specified. + `ToUpper` and `ToLower` change the letter case of the input string. + `ToBase64` and `FromBase64` perform a base64 conversion based on the input string. + `ToJson` converts any input value into its raw JSON representation. + `ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input + converted to JSON. + `ToAdler32` generate a addler32 hash based on the input string. enum: - ToUpper - ToLower @@ -436,10 +464,22 @@ spec: - ToAdler32 type: string fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string + join: + description: Join defines parameters to join a + slice of values to a string. + properties: + separator: + description: |- + Separator defines the character that should separate the values from each + other in the joined string. + type: string + required: + - separator + type: object regexp: description: Extract a match from the input using a regular expression. @@ -449,8 +489,8 @@ spec: default) matches the entire expression. type: integer match: - description: Match string. May optionally - include submatches, aka capture groups. + description: |- + Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details. type: string required: @@ -470,6 +510,7 @@ spec: - TrimPrefix - TrimSuffix - Regexp + - Join type: string type: object type: @@ -487,9 +528,9 @@ spec: type: array type: default: FromCompositeFieldPath - description: Type sets the patching behaviour to be used. - Each patch type may require its own fields to be set on - the Patch object. + description: |- + Type sets the patching behaviour to be used. Each patch type may require + its own fields to be set on the Patch object. enum: - FromCompositeFieldPath - ToCompositeFieldPath @@ -499,27 +540,27 @@ spec: type: object type: array policy: - description: Policy represents the Resolve and Resolution policies - which apply to all EnvironmentSourceReferences in EnvironmentConfigs - list. + description: |- + Policy represents the Resolve and Resolution policies which apply to + all EnvironmentSourceReferences in EnvironmentConfigs list. properties: resolution: default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. + description: |- + Resolution specifies whether resolution of this reference is required. + The default is 'Required', which means the reconcile will fail if the + reference cannot be resolved. 'Optional' means this reference will be + a no-op if it cannot be resolved. enum: - Required - Optional type: string resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. + description: |- + Resolve specifies when this reference should be resolved. The default + is 'IfNotPresent', which will attempt to resolve the reference only when + the corresponding field is not present. Use 'Always' to resolve the + reference on every reconcile. enum: - Always - IfNotPresent @@ -528,28 +569,38 @@ spec: type: object mode: default: Resources - description: "Mode controls what type or \"mode\" of Composition will - be used. \n \"Resources\" (the default) indicates that a Composition - uses what is commonly referred to as \"Patch & Transform\" or P&T - composition. This mode of Composition uses an array of resources, - each a template for a composed resource. \n \"Pipeline\" indicates - that a Composition specifies a pipeline of Composition Functions, - each of which is responsible for producing composed resources that - Crossplane should create or update. THE PIPELINE MODE IS A BETA - FEATURE. It is not honored if the relevant Crossplane feature flag - is disabled." + description: |- + Mode controls what type or "mode" of Composition will be used. + + + "Resources" (the default) indicates that a Composition uses what is + commonly referred to as "Patch & Transform" or P&T composition. This mode + of Composition uses an array of resources, each a template for a composed + resource. + + + "Pipeline" indicates that a Composition specifies a pipeline + of Composition Functions, each of which is responsible for producing + composed resources that Crossplane should create or update. THE PIPELINE + MODE IS A BETA FEATURE. It is not honored if the relevant Crossplane + feature flag is disabled. enum: - Resources - Pipeline type: string patchSets: - description: "PatchSets define a named set of patches that may be - included by any resource in this Composition. PatchSets cannot themselves - refer to other PatchSets. \n PatchSets are only used by the \"Resources\" - mode of Composition. They are ignored by other modes." + description: |- + PatchSets define a named set of patches that may be included by any + resource in this Composition. PatchSets cannot themselves refer to other + PatchSets. + + + PatchSets are only used by the "Resources" mode of Composition. They + are ignored by other modes. items: - description: A PatchSet is a set of patches that can be reused from - all resources within a Composition. + description: |- + A PatchSet is a set of patches that can be reused from all resources within + a Composition. properties: name: description: Name of this PatchSet. @@ -558,50 +609,51 @@ spec: description: Patches will be applied as an overlay to the base resource. items: - description: Patch objects are applied between composite and - composed resources. Their behaviour depends on the Type - selected. The default Type, FromCompositeFieldPath, copies - a value from the composite resource to the composed resource, - applying any defined transformers. + description: |- + Patch objects are applied between composite and composed resources. Their + behaviour depends on the Type selected. The default Type, + FromCompositeFieldPath, copies a value from the composite resource to + the composed resource, applying any defined transformers. properties: combine: - description: Combine is the patch configuration for a - CombineFromComposite, CombineFromEnvironment, CombineToComposite - or CombineToEnvironment patch. + description: |- + Combine is the patch configuration for a CombineFromComposite, + CombineFromEnvironment, CombineToComposite or CombineToEnvironment patch. properties: strategy: - description: Strategy defines the strategy to use - to combine the input variable values. Currently - only string is supported. + description: |- + Strategy defines the strategy to use to combine the input variable values. + Currently only string is supported. enum: - string type: string string: - description: String declares that input variables - should be combined into a single string, using the - relevant settings for formatting purposes. + description: |- + String declares that input variables should be combined into a single + string, using the relevant settings for formatting purposes. properties: fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string required: - fmt type: object variables: - description: Variables are the list of variables whose - values will be retrieved and combined. + description: |- + Variables are the list of variables whose values will be retrieved and + combined. items: - description: A CombineVariable defines the source - of a value that is combined with others to form - and patch an output value. Currently, this only - supports retrieving values from a field path. + description: |- + A CombineVariable defines the source of a value that is combined with + others to form and patch an output value. Currently, this only supports + retrieving values from a field path. properties: fromFieldPath: - description: FromFieldPath is the path of the - field on the source whose value is to be used - as input. + description: |- + FromFieldPath is the path of the field on the source whose value is + to be used as input. type: string required: - fromFieldPath @@ -613,10 +665,10 @@ spec: - variables type: object fromFieldPath: - description: FromFieldPath is the path of the field on - the resource whose value is to be used as input. Required - when type is FromCompositeFieldPath, FromEnvironmentFieldPath, - ToCompositeFieldPath, ToEnvironmentFieldPath. + description: |- + FromFieldPath is the path of the field on the resource whose value is + to be used as input. Required when type is FromCompositeFieldPath, + FromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath. type: string patchSetName: description: PatchSetName to include patches from. Required @@ -627,12 +679,11 @@ spec: behaviour. properties: fromFieldPath: - description: FromFieldPath specifies how to patch - from a field path. The default is 'Optional', which - means the patch will be a no-op if the specified - fromFieldPath does not exist. Use 'Required' if - the patch should fail if the specified path does - not exist. + description: |- + FromFieldPath specifies how to patch from a field path. The default is + 'Optional', which means the patch will be a no-op if the specified + fromFieldPath does not exist. Use 'Required' if the patch should fail if + the specified path does not exist. enum: - Optional - Required @@ -652,30 +703,36 @@ spec: type: object type: object toFieldPath: - description: ToFieldPath is the path of the field on the - resource whose value will be changed with the result - of transforms. Leave empty if you'd like to propagate - to the same path as fromFieldPath. + description: |- + ToFieldPath is the path of the field on the resource whose value will + be changed with the result of transforms. Leave empty if you'd like to + propagate to the same path as fromFieldPath. type: string transforms: - description: Transforms are the list of functions that - are used as a FIFO pipe for the input to be transformed. + description: |- + Transforms are the list of functions that are used as a FIFO pipe for the + input to be transformed. items: - description: Transform is a unit of process whose input - is transformed into an output with the supplied configuration. + description: |- + Transform is a unit of process whose input is transformed into an output with + the supplied configuration. properties: convert: description: Convert is used to cast the input into the given output type. properties: format: - description: "The expected input format. \n + description: |- + The expected input format. + + * `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity). Only used during `string -> float64` conversions. * `json` - parses the input as a JSON string. - Only used during `string -> object` or `string - -> list` conversions. \n If this property - is null, the default conversion is applied." + Only used during `string -> object` or `string -> list` conversions. + + + If this property is null, the default conversion is applied. enum: - none - quantity @@ -715,28 +772,29 @@ spec: - Input type: string fallbackValue: - description: The fallback value that should - be returned by the transform if now pattern + description: |- + The fallback value that should be returned by the transform if now pattern matches. x-kubernetes-preserve-unknown-fields: true patterns: - description: The patterns that should be tested - against the input string. Patterns are tested - in order. The value of the first match is - used as result of this transform. + description: |- + The patterns that should be tested against the input string. + Patterns are tested in order. The value of the first match is used as + result of this transform. items: - description: MatchTransformPattern is a transform - that returns the value that matches a pattern. + description: |- + MatchTransformPattern is a transform that returns the value that matches a + pattern. properties: literal: - description: Literal exactly matches the - input string (case sensitive). Is required - if `type` is `literal`. + description: |- + Literal exactly matches the input string (case sensitive). + Is required if `type` is `literal`. type: string regexp: - description: Regexp to match against the - input string. Is required if `type` - is `regexp`. + description: |- + Regexp to match against the input string. + Is required if `type` is `regexp`. type: string result: description: The value that is used as @@ -745,15 +803,17 @@ spec: x-kubernetes-preserve-unknown-fields: true type: default: literal - description: "Type specifies how the pattern - matches the input. \n * `literal` - - the pattern value has to exactly match - (case sensitive) the input string. This - is the default. \n * `regexp` - the - pattern treated as a regular expression - against which the input string is tested. - Crossplane will throw an error if the - key is not a valid regexp." + description: |- + Type specifies how the pattern matches the input. + + + * `literal` - the pattern value has to exactly match (case sensitive) the + input string. This is the default. + + + * `regexp` - the pattern treated as a regular expression against + which the input string is tested. Crossplane will throw an error if the + key is not a valid regexp. enum: - literal - regexp @@ -765,8 +825,9 @@ spec: type: array type: object math: - description: Math is used to transform the input - via mathematical operations such as multiplication. + description: |- + Math is used to transform the input via mathematical operations such as + multiplication. properties: clampMax: description: ClampMax makes sure that the value @@ -793,22 +854,19 @@ spec: type: string type: object string: - description: String is used to transform the input - into a string or a different kind of string. Note - that the input does not necessarily need to be - a string. + description: |- + String is used to transform the input into a string or a different kind + of string. Note that the input does not necessarily need to be a string. properties: convert: - description: Optional conversion method to be - specified. `ToUpper` and `ToLower` change - the letter case of the input string. `ToBase64` - and `FromBase64` perform a base64 conversion - based on the input string. `ToJson` converts - any input value into its raw JSON representation. - `ToSha1`, `ToSha256` and `ToSha512` generate - a hash value based on the input converted - to JSON. `ToAdler32` generate a addler32 hash - based on the input string. + description: |- + Optional conversion method to be specified. + `ToUpper` and `ToLower` change the letter case of the input string. + `ToBase64` and `FromBase64` perform a base64 conversion based on the input string. + `ToJson` converts any input value into its raw JSON representation. + `ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input + converted to JSON. + `ToAdler32` generate a addler32 hash based on the input string. enum: - ToUpper - ToLower @@ -821,10 +879,22 @@ spec: - ToAdler32 type: string fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string + join: + description: Join defines parameters to join + a slice of values to a string. + properties: + separator: + description: |- + Separator defines the character that should separate the values from each + other in the joined string. + type: string + required: + - separator + type: object regexp: description: Extract a match from the input using a regular expression. @@ -834,8 +904,8 @@ spec: default) matches the entire expression. type: integer match: - description: Match string. May optionally - include submatches, aka capture groups. + description: |- + Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details. type: string required: @@ -855,6 +925,7 @@ spec: - TrimPrefix - TrimSuffix - Regexp + - Join type: string type: object type: @@ -872,9 +943,9 @@ spec: type: array type: default: FromCompositeFieldPath - description: Type sets the patching behaviour to be used. - Each patch type may require its own fields to be set - on the Patch object. + description: |- + Type sets the patching behaviour to be used. Each patch type may require + its own fields to be set on the Patch object. enum: - FromCompositeFieldPath - FromEnvironmentFieldPath @@ -894,19 +965,25 @@ spec: type: object type: array pipeline: - description: "Pipeline is a list of composition function steps that - will be used when a composite resource referring to this composition - is created. One of resources and pipeline must be specified - you - cannot specify both. \n The Pipeline is only used by the \"Pipeline\" - mode of Composition. It is ignored by other modes. \n THIS IS A - BETA FIELD. It is not honored if the relevant Crossplane feature - flag is disabled." + description: |- + Pipeline is a list of composition function steps that will be used when a + composite resource referring to this composition is created. One of + resources and pipeline must be specified - you cannot specify both. + + + The Pipeline is only used by the "Pipeline" mode of Composition. It is + ignored by other modes. + + + THIS IS A BETA FIELD. It is not honored if the relevant Crossplane + feature flag is disabled. items: description: A PipelineStep in a Composition Function pipeline. properties: functionRef: - description: FunctionRef is a reference to the Composition Function - this step should execute. + description: |- + FunctionRef is a reference to the Composition Function this step should + execute. properties: name: description: Name of the referenced Function. @@ -915,9 +992,10 @@ spec: - name type: object input: - description: Input is an optional, arbitrary Kubernetes resource - (i.e. a resource with an apiVersion and kind) that will be - passed to the Composition Function as the 'input' of its RunFunctionRequest. + description: |- + Input is an optional, arbitrary Kubernetes resource (i.e. a resource + with an apiVersion and kind) that will be passed to the Composition + Function as the 'input' of its RunFunctionRequest. type: object x-kubernetes-embedded-resource: true x-kubernetes-preserve-unknown-fields: true @@ -932,12 +1010,15 @@ spec: publishConnectionDetailsWithStoreConfigRef: default: name: default - description: "PublishConnectionDetailsWithStoreConfig specifies the - secret store config with which the connection details of composite - resources dynamically provisioned using this composition will be - published. \n THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice." + description: |- + PublishConnectionDetailsWithStoreConfig specifies the secret store config + with which the connection details of composite resources dynamically + provisioned using this composition will be published. + + + THIS IS AN ALPHA FIELD. Do not use it in production. It is not honored + unless the relevant Crossplane feature flag is enabled, and may be + changed or removed without notice. properties: name: description: Name of the referenced StoreConfig. @@ -946,13 +1027,17 @@ spec: - name type: object resources: - description: "Resources is a list of resource templates that will - be used when a composite resource referring to this composition - is created. \n Resources are only used by the \"Resources\" mode - of Composition. They are ignored by other modes." + description: |- + Resources is a list of resource templates that will be used when a + composite resource referring to this composition is created. + + + Resources are only used by the "Resources" mode of Composition. They are + ignored by other modes. items: - description: ComposedTemplate is used to provide information about - how the composed resource should be processed. + description: |- + ComposedTemplate is used to provide information about how the composed resource + should be processed. properties: base: description: Base is the target resource that the patches will @@ -961,108 +1046,112 @@ spec: x-kubernetes-embedded-resource: true x-kubernetes-preserve-unknown-fields: true connectionDetails: - description: ConnectionDetails lists the propagation secret - keys from this target resource to the composition instance - connection secret. + description: |- + ConnectionDetails lists the propagation secret keys from this target + resource to the composition instance connection secret. items: - description: ConnectionDetail includes the information about - the propagation of the connection information from one secret - to another. + description: |- + ConnectionDetail includes the information about the propagation of the connection + information from one secret to another. properties: fromConnectionSecretKey: - description: FromConnectionSecretKey is the key that will - be used to fetch the value from the composed resource's - connection secret. + description: |- + FromConnectionSecretKey is the key that will be used to fetch the value + from the composed resource's connection secret. type: string fromFieldPath: - description: FromFieldPath is the path of the field on - the composed resource whose value to be used as input. - Name must be specified if the type is FromFieldPath. + description: |- + FromFieldPath is the path of the field on the composed resource whose + value to be used as input. Name must be specified if the type is + FromFieldPath. type: string name: - description: Name of the connection secret key that will - be propagated to the connection secret of the composition - instance. Leave empty if you'd like to use the same - key name. + description: |- + Name of the connection secret key that will be propagated to the + connection secret of the composition instance. Leave empty if you'd like + to use the same key name. type: string type: - description: 'Type sets the connection detail fetching - behaviour to be used. Each connection detail type may - require its own fields to be set on the ConnectionDetail - object. If the type is omitted Crossplane will attempt - to infer it based on which other fields were specified. - If multiple fields are specified the order of precedence - is: 1. FromValue 2. FromConnectionSecretKey 3. FromFieldPath' + description: |- + Type sets the connection detail fetching behaviour to be used. Each + connection detail type may require its own fields to be set on the + ConnectionDetail object. If the type is omitted Crossplane will attempt + to infer it based on which other fields were specified. If multiple + fields are specified the order of precedence is: + 1. FromValue + 2. FromConnectionSecretKey + 3. FromFieldPath enum: - FromConnectionSecretKey - FromFieldPath - FromValue type: string value: - description: Value that will be propagated to the connection - secret of the composite resource. May be set to inject - a fixed, non-sensitive connection secret value, for - example a well-known port. + description: |- + Value that will be propagated to the connection secret of the composite + resource. May be set to inject a fixed, non-sensitive connection secret + value, for example a well-known port. type: string type: object type: array name: - description: A Name uniquely identifies this entry within its - Composition's resources array. Names are optional but *strongly* - recommended. When all entries in the resources array are named - entries may added, deleted, and reordered as long as their - names do not change. When entries are not named the length - and order of the resources array should be treated as immutable. + description: |- + A Name uniquely identifies this entry within its Composition's resources + array. Names are optional but *strongly* recommended. When all entries in + the resources array are named entries may added, deleted, and reordered + as long as their names do not change. When entries are not named the + length and order of the resources array should be treated as immutable. Either all or no entries must be named. type: string patches: description: Patches will be applied as overlay to the base resource. items: - description: Patch objects are applied between composite and - composed resources. Their behaviour depends on the Type - selected. The default Type, FromCompositeFieldPath, copies - a value from the composite resource to the composed resource, - applying any defined transformers. + description: |- + Patch objects are applied between composite and composed resources. Their + behaviour depends on the Type selected. The default Type, + FromCompositeFieldPath, copies a value from the composite resource to + the composed resource, applying any defined transformers. properties: combine: - description: Combine is the patch configuration for a - CombineFromComposite, CombineFromEnvironment, CombineToComposite - or CombineToEnvironment patch. + description: |- + Combine is the patch configuration for a CombineFromComposite, + CombineFromEnvironment, CombineToComposite or CombineToEnvironment patch. properties: strategy: - description: Strategy defines the strategy to use - to combine the input variable values. Currently - only string is supported. + description: |- + Strategy defines the strategy to use to combine the input variable values. + Currently only string is supported. enum: - string type: string string: - description: String declares that input variables - should be combined into a single string, using the - relevant settings for formatting purposes. + description: |- + String declares that input variables should be combined into a single + string, using the relevant settings for formatting purposes. properties: fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string required: - fmt type: object variables: - description: Variables are the list of variables whose - values will be retrieved and combined. + description: |- + Variables are the list of variables whose values will be retrieved and + combined. items: - description: A CombineVariable defines the source - of a value that is combined with others to form - and patch an output value. Currently, this only - supports retrieving values from a field path. + description: |- + A CombineVariable defines the source of a value that is combined with + others to form and patch an output value. Currently, this only supports + retrieving values from a field path. properties: fromFieldPath: - description: FromFieldPath is the path of the - field on the source whose value is to be used - as input. + description: |- + FromFieldPath is the path of the field on the source whose value is + to be used as input. type: string required: - fromFieldPath @@ -1074,10 +1163,10 @@ spec: - variables type: object fromFieldPath: - description: FromFieldPath is the path of the field on - the resource whose value is to be used as input. Required - when type is FromCompositeFieldPath, FromEnvironmentFieldPath, - ToCompositeFieldPath, ToEnvironmentFieldPath. + description: |- + FromFieldPath is the path of the field on the resource whose value is + to be used as input. Required when type is FromCompositeFieldPath, + FromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath. type: string patchSetName: description: PatchSetName to include patches from. Required @@ -1088,12 +1177,11 @@ spec: behaviour. properties: fromFieldPath: - description: FromFieldPath specifies how to patch - from a field path. The default is 'Optional', which - means the patch will be a no-op if the specified - fromFieldPath does not exist. Use 'Required' if - the patch should fail if the specified path does - not exist. + description: |- + FromFieldPath specifies how to patch from a field path. The default is + 'Optional', which means the patch will be a no-op if the specified + fromFieldPath does not exist. Use 'Required' if the patch should fail if + the specified path does not exist. enum: - Optional - Required @@ -1113,30 +1201,36 @@ spec: type: object type: object toFieldPath: - description: ToFieldPath is the path of the field on the - resource whose value will be changed with the result - of transforms. Leave empty if you'd like to propagate - to the same path as fromFieldPath. + description: |- + ToFieldPath is the path of the field on the resource whose value will + be changed with the result of transforms. Leave empty if you'd like to + propagate to the same path as fromFieldPath. type: string transforms: - description: Transforms are the list of functions that - are used as a FIFO pipe for the input to be transformed. + description: |- + Transforms are the list of functions that are used as a FIFO pipe for the + input to be transformed. items: - description: Transform is a unit of process whose input - is transformed into an output with the supplied configuration. + description: |- + Transform is a unit of process whose input is transformed into an output with + the supplied configuration. properties: convert: description: Convert is used to cast the input into the given output type. properties: format: - description: "The expected input format. \n + description: |- + The expected input format. + + * `quantity` - parses the input as a K8s [`resource.Quantity`](https://pkg.go.dev/k8s.io/apimachinery/pkg/api/resource#Quantity). Only used during `string -> float64` conversions. * `json` - parses the input as a JSON string. - Only used during `string -> object` or `string - -> list` conversions. \n If this property - is null, the default conversion is applied." + Only used during `string -> object` or `string -> list` conversions. + + + If this property is null, the default conversion is applied. enum: - none - quantity @@ -1176,28 +1270,29 @@ spec: - Input type: string fallbackValue: - description: The fallback value that should - be returned by the transform if now pattern + description: |- + The fallback value that should be returned by the transform if now pattern matches. x-kubernetes-preserve-unknown-fields: true patterns: - description: The patterns that should be tested - against the input string. Patterns are tested - in order. The value of the first match is - used as result of this transform. + description: |- + The patterns that should be tested against the input string. + Patterns are tested in order. The value of the first match is used as + result of this transform. items: - description: MatchTransformPattern is a transform - that returns the value that matches a pattern. + description: |- + MatchTransformPattern is a transform that returns the value that matches a + pattern. properties: literal: - description: Literal exactly matches the - input string (case sensitive). Is required - if `type` is `literal`. + description: |- + Literal exactly matches the input string (case sensitive). + Is required if `type` is `literal`. type: string regexp: - description: Regexp to match against the - input string. Is required if `type` - is `regexp`. + description: |- + Regexp to match against the input string. + Is required if `type` is `regexp`. type: string result: description: The value that is used as @@ -1206,15 +1301,17 @@ spec: x-kubernetes-preserve-unknown-fields: true type: default: literal - description: "Type specifies how the pattern - matches the input. \n * `literal` - - the pattern value has to exactly match - (case sensitive) the input string. This - is the default. \n * `regexp` - the - pattern treated as a regular expression - against which the input string is tested. - Crossplane will throw an error if the - key is not a valid regexp." + description: |- + Type specifies how the pattern matches the input. + + + * `literal` - the pattern value has to exactly match (case sensitive) the + input string. This is the default. + + + * `regexp` - the pattern treated as a regular expression against + which the input string is tested. Crossplane will throw an error if the + key is not a valid regexp. enum: - literal - regexp @@ -1226,8 +1323,9 @@ spec: type: array type: object math: - description: Math is used to transform the input - via mathematical operations such as multiplication. + description: |- + Math is used to transform the input via mathematical operations such as + multiplication. properties: clampMax: description: ClampMax makes sure that the value @@ -1254,22 +1352,19 @@ spec: type: string type: object string: - description: String is used to transform the input - into a string or a different kind of string. Note - that the input does not necessarily need to be - a string. + description: |- + String is used to transform the input into a string or a different kind + of string. Note that the input does not necessarily need to be a string. properties: convert: - description: Optional conversion method to be - specified. `ToUpper` and `ToLower` change - the letter case of the input string. `ToBase64` - and `FromBase64` perform a base64 conversion - based on the input string. `ToJson` converts - any input value into its raw JSON representation. - `ToSha1`, `ToSha256` and `ToSha512` generate - a hash value based on the input converted - to JSON. `ToAdler32` generate a addler32 hash - based on the input string. + description: |- + Optional conversion method to be specified. + `ToUpper` and `ToLower` change the letter case of the input string. + `ToBase64` and `FromBase64` perform a base64 conversion based on the input string. + `ToJson` converts any input value into its raw JSON representation. + `ToSha1`, `ToSha256` and `ToSha512` generate a hash value based on the input + converted to JSON. + `ToAdler32` generate a addler32 hash based on the input string. enum: - ToUpper - ToLower @@ -1282,10 +1377,22 @@ spec: - ToAdler32 type: string fmt: - description: Format the input using a Go format - string. See https://golang.org/pkg/fmt/ for - details. + description: |- + Format the input using a Go format string. See + https://golang.org/pkg/fmt/ for details. type: string + join: + description: Join defines parameters to join + a slice of values to a string. + properties: + separator: + description: |- + Separator defines the character that should separate the values from each + other in the joined string. + type: string + required: + - separator + type: object regexp: description: Extract a match from the input using a regular expression. @@ -1295,8 +1402,8 @@ spec: default) matches the entire expression. type: integer match: - description: Match string. May optionally - include submatches, aka capture groups. + description: |- + Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details. type: string required: @@ -1316,6 +1423,7 @@ spec: - TrimPrefix - TrimSuffix - Regexp + - Join type: string type: object type: @@ -1333,9 +1441,9 @@ spec: type: array type: default: FromCompositeFieldPath - description: Type sets the patching behaviour to be used. - Each patch type may require its own fields to be set - on the Patch object. + description: |- + Type sets the patching behaviour to be used. Each patch type may require + its own fields to be set on the Patch object. enum: - FromCompositeFieldPath - FromEnvironmentFieldPath @@ -1355,13 +1463,14 @@ spec: status: "True" type: Ready type: MatchCondition - description: ReadinessChecks allows users to define custom readiness - checks. All checks have to return true in order for resource - to be considered ready. The default readiness check is to - have the "Ready" condition to be "True". + description: |- + ReadinessChecks allows users to define custom readiness checks. All checks + have to return true in order for resource to be considered ready. The + default readiness check is to have the "Ready" condition to be "True". items: - description: ReadinessCheck is used to indicate how to tell - whether a resource is ready for consumption + description: |- + ReadinessCheck is used to indicate how to tell whether a resource is ready + for consumption properties: fieldPath: description: FieldPath shows the path of the field whose @@ -1415,13 +1524,15 @@ spec: type: object type: array writeConnectionSecretsToNamespace: - description: WriteConnectionSecretsToNamespace specifies the namespace - in which the connection secrets of composite resource dynamically - provisioned using this composition will be created. This field is - planned to be replaced in a future release in favor of PublishConnectionDetailsWithStoreConfigRef. - Currently, both could be set independently and connection details - would be published to both without affecting each other as long - as related fields at MR level specified. + description: |- + WriteConnectionSecretsToNamespace specifies the namespace in which the + connection secrets of composite resource dynamically provisioned using + this composition will be created. + This field is planned to be replaced in a future release in favor of + PublishConnectionDetailsWithStoreConfigRef. Currently, both could be + set independently and connection details would be published to both + without affecting each other as long as related fields at MR level + specified. type: string required: - compositeTypeRef diff --git a/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_environmentconfigs.yaml b/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_environmentconfigs.yaml index 5cbd61a..9a703e2 100644 --- a/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_environmentconfigs.yaml +++ b/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_environmentconfigs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: environmentconfigs.apiextensions.crossplane.io spec: group: apiextensions.crossplane.io @@ -28,20 +28,26 @@ spec: values. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string data: additionalProperties: x-kubernetes-preserve-unknown-fields: true - description: The data of this EnvironmentConfig. This may contain any - kind of structure that can be serialized into JSON. + description: |- + The data of this EnvironmentConfig. + This may contain any kind of structure that can be serialized into JSON. type: object kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object diff --git a/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_usages.yaml b/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_usages.yaml index 70a2215..e05a9b4 100644 --- a/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_usages.yaml +++ b/crossplane-crd-model/src/main/resources/kubernetes/apiextensions.crossplane.io_usages.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.13.0 + controller-gen.kubebuilder.io/version: v0.14.0 name: usages.apiextensions.crossplane.io spec: group: apiextensions.crossplane.io @@ -32,14 +32,19 @@ spec: resources. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -53,7 +58,9 @@ spec: description: API version of the referent. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string resourceRef: description: Reference to the resource. @@ -65,12 +72,14 @@ spec: - name type: object resourceSelector: - description: Selector to the resource. This field will be ignored - if ResourceRef is set. + description: |- + Selector to the resource. + This field will be ignored if ResourceRef is set. properties: matchControllerRef: - description: MatchControllerRef ensures an object with the - same controller reference as the selecting object is selected. + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. type: boolean matchLabels: additionalProperties: @@ -91,7 +100,9 @@ spec: description: API version of the referent. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string resourceRef: description: Reference to the resource. @@ -103,12 +114,14 @@ spec: - name type: object resourceSelector: - description: Selector to the resource. This field will be ignored - if ResourceRef is set. + description: |- + Selector to the resource. + This field will be ignored if ResourceRef is set. properties: matchControllerRef: - description: MatchControllerRef ensures an object with the - same controller reference as the selecting object is selected. + description: |- + MatchControllerRef ensures an object with the same controller reference + as the selecting object is selected. type: boolean matchLabels: additionalProperties: @@ -145,13 +158,15 @@ spec: description: A Condition that may apply to a resource. properties: lastTransitionTime: - description: LastTransitionTime is the last time this condition - transitioned from one status to another. + description: |- + LastTransitionTime is the last time this condition transitioned from one + status to another. format: date-time type: string message: - description: A Message containing details about this condition's - last transition from one status to another, if any. + description: |- + A Message containing details about this condition's last transition from + one status to another, if any. type: string reason: description: A Reason for this condition's last transition from @@ -162,8 +177,9 @@ spec: False, or Unknown? type: string type: - description: Type of this condition. At most one of each condition - type may apply to a resource at any point in time. + description: |- + Type of this condition. At most one of each condition type may apply to + a resource at any point in time. type: string required: - lastTransitionTime diff --git a/crossplane-crd-model/src/main/resources/kubernetes/fetch.sh b/crossplane-crd-model/src/main/resources/kubernetes/fetch.sh index 16352d4..516825e 100755 --- a/crossplane-crd-model/src/main/resources/kubernetes/fetch.sh +++ b/crossplane-crd-model/src/main/resources/kubernetes/fetch.sh @@ -1,6 +1,6 @@ #!/bin/bash -release="release-1.14" +release="release-1.15" apiextensions=$(gh api --jq '.[].name' "/repos/crossplane/crossplane/contents/cluster/crds?ref=${release}" | grep apiextensions) diff --git a/crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneCompositeFunctionBase.java b/crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneCompositeFunctionBase.java index 4511573..e18d3b9 100644 --- a/crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneCompositeFunctionBase.java +++ b/crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneCompositeFunctionBase.java @@ -2,6 +2,7 @@ package io.crossplane.compositefunctions.base; import io.crossplane.compositefunctions.protobuf.FunctionRunnerServiceGrpc; +import io.crossplane.compositefunctions.protobuf.Requirements; import io.crossplane.compositefunctions.protobuf.RunFunctionRequest; import io.crossplane.compositefunctions.protobuf.RunFunctionResponse; import io.crossplane.compositefunctions.protobuf.State; @@ -32,9 +33,9 @@ public abstract class CrossplaneCompositeFunctionBase extends FunctionRunnerServ desiredBuilder.putAllResources(desired.getResourcesMap()); CrossplaneFunctionRequest crossplaneFunctionRequest = new CrossplaneFunctionRequest(request.getObserved(), - request.getDesired()); + request.getExtraResourcesMap(), request.getDesired()); - // request.getExtraResourcesMap(), request.getCredentialsMap() + // request.getCredentialsMap(), logger.debug("Calling method with implemented logic"); CrossplaneFunctionResponse crossplaneFunctionResponse = runFunction(crossplaneFunctionRequest); @@ -46,14 +47,14 @@ public abstract class CrossplaneCompositeFunctionBase extends FunctionRunnerServ RunFunctionResponse.Builder responseBuilder = RunFunctionResponse.newBuilder(); - /* + if (! crossplaneFunctionResponse.resourceSelectors().isEmpty()) { Requirements requirements = Requirements.newBuilder() .putAllExtraResources(crossplaneFunctionResponse.resourceSelectors()) .build(); responseBuilder.setRequirements(requirements); } - */ + if (! crossplaneFunctionResponse.results().isEmpty()) { responseBuilder.addAllResults(crossplaneFunctionResponse.results()); diff --git a/crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneFunctionRequest.java b/crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneFunctionRequest.java index 862776c..7babdbb 100644 --- a/crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneFunctionRequest.java +++ b/crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneFunctionRequest.java @@ -1,5 +1,6 @@ package io.crossplane.compositefunctions.base; +import io.crossplane.compositefunctions.protobuf.Resources; import io.crossplane.compositefunctions.protobuf.State; import java.util.Map; @@ -7,12 +8,13 @@ import java.util.Map; /** * Holder for the request from crossplane * @param observedState The observedstate of the crossplane resources + * @param extraResourcesMap A map of any extra resources requested * @param desiredState The sum of previously called functions state. To override, create a new resource with the same name in the response */ -public record CrossplaneFunctionRequest(State observedState, State desiredState) { +public record CrossplaneFunctionRequest(State observedState, Map extraResourcesMap, State desiredState) { - // * @param extraResourcesMap A map of any extra resources requested + // * // * @param credentialsMap A map of credentials sent as input - // Map extraResourcesMap, + // // Map credentialsMap } diff --git a/crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneFunctionResponse.java b/crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneFunctionResponse.java index 29735ba..7704666 100644 --- a/crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneFunctionResponse.java +++ b/crossplane-function-base/src/main/java/io/crossplane/compositefunctions/base/CrossplaneFunctionResponse.java @@ -1,5 +1,6 @@ package io.crossplane.compositefunctions.base; +import io.crossplane.compositefunctions.protobuf.ResourceSelector; import io.crossplane.compositefunctions.protobuf.Result; import java.util.ArrayList; @@ -10,19 +11,21 @@ import java.util.Map; /** * Holder for the response to Crossplane * @param desiredResources Map of the desired resources + * @param resourceSelectors Map of the resource selectors for any extra resources * @param results List of the results */ public record CrossplaneFunctionResponse(Map desiredResources, + Map resourceSelectors, List results) { - // @param resourceSelectors Map of the resource selectors for any extra resources - // Map resourceSelectors, + // + // /** * Create an empty response with all fields initiated */ public CrossplaneFunctionResponse() { - this(new HashMap<>(), new ArrayList<>()); + this(new HashMap<>(), new HashMap<>(), new ArrayList<>()); } } diff --git a/crossplane-function-springboot-starter/src/main/java/io/crossplane/compositefunctions/starter/conversion/CrossplaneExtraResourcesService.java b/crossplane-function-springboot-starter/src/main/java/io/crossplane/compositefunctions/starter/conversion/CrossplaneExtraResourcesService.java index 6cfb482..13941d8 100644 --- a/crossplane-function-springboot-starter/src/main/java/io/crossplane/compositefunctions/starter/conversion/CrossplaneExtraResourcesService.java +++ b/crossplane-function-springboot-starter/src/main/java/io/crossplane/compositefunctions/starter/conversion/CrossplaneExtraResourcesService.java @@ -2,9 +2,20 @@ package io.crossplane.compositefunctions.starter.conversion; import com.google.protobuf.util.JsonFormat; +import io.crossplane.compositefunctions.protobuf.ResourceSelector; +import io.crossplane.compositefunctions.protobuf.Resources; +import io.crossplane.compositefunctions.starter.exception.CrossplaneUnexpectedItemsException; +import io.crossplane.compositefunctions.starter.exception.CrossplaneUnmarshallException; +import io.fabric8.kubernetes.api.model.HasMetadata; +import io.fabric8.kubernetes.client.utils.Serialization; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; + /** * Class that helps with the extra resources map and also to create ResourceSelector in order to get extra resources * to the function @@ -18,7 +29,7 @@ public class CrossplaneExtraResourcesService { private static final Logger logger = LoggerFactory.getLogger(CrossplaneExtraResourcesService.class); private final JsonFormat.Printer printer = JsonFormat.printer(); - /* + public Optional getExtraResource(Map extraResources, String resourceName, Class clazz) { return getExtraResources(extraResources, resourceName, 1, clazz).get(0); } @@ -54,5 +65,5 @@ public class CrossplaneExtraResourcesService { return Map.of(resourceName, resourceSelector); } - */ + } diff --git a/crossplane-protobuf-model/src/main/proto/fetch.sh b/crossplane-protobuf-model/src/main/proto/fetch.sh index 4540db8..c8fc0fc 100755 --- a/crossplane-protobuf-model/src/main/proto/fetch.sh +++ b/crossplane-protobuf-model/src/main/proto/fetch.sh @@ -1,6 +1,6 @@ #!/bin/bash -release="release-1.14" +release="release-1.15" file="run_function.proto" gh api -H "Accept: application/vnd.github.raw+json" "/repos/crossplane/crossplane/contents/apis/apiextensions/fn/proto/v1beta1/${file}?ref=${release}" > $file diff --git a/crossplane-protobuf-model/src/main/proto/run_function.proto b/crossplane-protobuf-model/src/main/proto/run_function.proto index 6a0937c..7dc0df5 100644 --- a/crossplane-protobuf-model/src/main/proto/run_function.proto +++ b/crossplane-protobuf-model/src/main/proto/run_function.proto @@ -62,6 +62,19 @@ message RunFunctionRequest { // and that context will be passed to subsequent Functions. Crossplane // discards all context returned by the last Function in the pipeline. optional google.protobuf.Struct context = 5; + + // Optional extra resources that the Function required. + // Note that extra resources is a map to Resources, plural. + // The map key corresponds to the key in a RunFunctionResponse's + // extra_resources field. If a Function requested extra resources that + // did not exist, Crossplane sets the map key to an empty Resources message to + // indicate that it attempted to satisfy the request. + map extra_resources = 6; +} + +// Resources represents the state of several Crossplane resources. +message Resources { + repeated Resource items = 1; } // A RunFunctionResponse contains the result of a Composition Function run. @@ -89,6 +102,9 @@ message RunFunctionResponse { // Optional context to be passed to the next Function in the pipeline as part // of the RunFunctionRequest. Dropped on the last function in the pipeline. optional google.protobuf.Struct context = 4; + + // Requirements that must be satisfied for this Function to run successfully. + Requirements requirements = 5; } // RequestMeta contains metadata pertaining to a RunFunctionRequest. @@ -98,6 +114,29 @@ message RequestMeta { string tag = 1; } +// Requirements that must be satisfied for a Function to run successfully. +message Requirements { + // Extra resources that this Function requires. + // The map key uniquely identifies the group of resources. + map extra_resources = 1; +} + +// ResourceSelector selects a group of resources, either by name or by label. +message ResourceSelector { + string api_version = 1; + string kind = 2; + + oneof match { + string match_name = 3; + MatchLabels match_labels = 4; + } +} + +// MatchLabels defines a set of labels to match resources against. +message MatchLabels { + map labels = 1; +} + // ResponseMeta contains metadata pertaining to a RunFunctionResponse. message ResponseMeta { // An opaque string identifying the content of the request. Must match the