Merge branch 'release/1.15' into release/1.14
This commit is contained in:
commit
943608417e
|
@ -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/<group>/<version>/.../<plural>`.
|
||||
Must match the name of the CustomResourceDefinition (in the
|
||||
form `<names.plural>.<group>`). Must be all lowercase.
|
||||
Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`).
|
||||
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 <shortname>`. 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 <shortname>`.
|
||||
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/<group>/...`.
|
||||
Must match the name of the XRD (in the form `<names.plural>.<group>`).
|
||||
description: |-
|
||||
Group specifies the API group of the defined composite resource.
|
||||
Composite resources are served under `/apis/<group>/...`. Must match the
|
||||
name of the XRD (in the form `<names.plural>.<group>`).
|
||||
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/<group>/<version>/.../<plural>`.
|
||||
Must match the name of the CustomResourceDefinition (in the
|
||||
form `<names.plural>.<group>`). Must be all lowercase.
|
||||
Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`).
|
||||
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 <shortname>`. 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 <shortname>`.
|
||||
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/<group>/<version>/...`
|
||||
if `served` is true.
|
||||
description: |-
|
||||
Name of this version, e.g. “v1”, “v2beta1”, etc. Composite resources are
|
||||
served under this version at `/apis/<group>/<version>/...` 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.
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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<String, Resources> extraResourcesMap, State desiredState) {
|
||||
|
||||
// * @param extraResourcesMap A map of any extra resources requested
|
||||
// *
|
||||
// * @param credentialsMap A map of credentials sent as input
|
||||
// Map<String, Resources> extraResourcesMap,
|
||||
//
|
||||
// Map<String, Credentials> credentialsMap
|
||||
}
|
||||
|
|
|
@ -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<String, Object> desiredResources,
|
||||
Map<String, ResourceSelector> resourceSelectors,
|
||||
List<Result> results) {
|
||||
|
||||
// @param resourceSelectors Map of the resource selectors for any extra resources
|
||||
// Map<String, ResourceSelector> resourceSelectors,
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
/**
|
||||
* Create an empty response with all fields initiated
|
||||
*/
|
||||
public CrossplaneFunctionResponse() {
|
||||
this(new HashMap<>(), new ArrayList<>());
|
||||
this(new HashMap<>(), new HashMap<>(), new ArrayList<>());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 <T> Optional<T> getExtraResource(Map<String, Resources> extraResources, String resourceName, Class<T> clazz) {
|
||||
return getExtraResources(extraResources, resourceName, 1, clazz).get(0);
|
||||
}
|
||||
|
@ -54,5 +65,5 @@ public class CrossplaneExtraResourcesService {
|
|||
return Map.of(resourceName, resourceSelector);
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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<string, Resources> 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<string, ResourceSelector> 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<string, string> labels = 1;
|
||||
}
|
||||
|
||||
// ResponseMeta contains metadata pertaining to a RunFunctionResponse.
|
||||
message ResponseMeta {
|
||||
// An opaque string identifying the content of the request. Must match the
|
||||
|
|
Loading…
Reference in New Issue