v1

package
v1.17.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2024 License: Apache-2.0 Imports: 17 Imported by: 61

Documentation

Overview

Package v1 contains API types that extend the Crossplane API. +kubebuilder:object:generate=true +groupName=apiextensions.crossplane.io +versionName=v1

Index

Constants

View Source
const (
	// LabelCompositionName is the name of the Composition used to create
	// this CompositionRevision.
	LabelCompositionName = "crossplane.io/composition-name"

	// LabelCompositionHash is a hash of the Composition label, annotation
	// and spec used to create this CompositionRevision. Used to identify
	// identical revisions.
	LabelCompositionHash = "crossplane.io/composition-hash"
)
View Source
const (
	// CompositionValidatingWebhookPath is the path for the Composition's validating webhook, should be kept in sync with the annotation above.
	CompositionValidatingWebhookPath = "/validate-apiextensions-crossplane-io-v1-composition"
	// SchemaAwareCompositionValidationModeAnnotation is the annotation that can be used to specify the schema-aware validation mode for a Composition.
	SchemaAwareCompositionValidationModeAnnotation = "crossplane.io/composition-schema-aware-validation-mode"
)
View Source
const (
	// A TypeEstablished XRD has created the CRD for its composite resource and
	// started a controller to reconcile instances of said resource.
	TypeEstablished xpv1.ConditionType = "Established"

	// A TypeOffered XRD has created the CRD for its composite resource claim
	// and started a controller to reconcile instances of said claim.
	TypeOffered xpv1.ConditionType = "Offered"
)

Condition types.

View Source
const (
	ReasonWatchingComposite xpv1.ConditionReason = "WatchingCompositeResource"
	ReasonWatchingClaim     xpv1.ConditionReason = "WatchingCompositeResourceClaim"

	ReasonTerminatingComposite xpv1.ConditionReason = "TerminatingCompositeResource"
	ReasonTerminatingClaim     xpv1.ConditionReason = "TerminatingCompositeResourceClaim"
)

Reasons a resource is or is not established or offered.

View Source
const (
	Group   = "apiextensions.crossplane.io"
	Version = "v1"
)

Package type metadata.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects.
	SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}

	// AddToScheme adds all registered types to scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	CompositeResourceDefinitionKind             = reflect.TypeOf(CompositeResourceDefinition{}).Name()
	CompositeResourceDefinitionGroupKind        = schema.GroupKind{Group: Group, Kind: CompositeResourceDefinitionKind}.String()
	CompositeResourceDefinitionKindAPIVersion   = CompositeResourceDefinitionKind + "." + SchemeGroupVersion.String()
	CompositeResourceDefinitionGroupVersionKind = SchemeGroupVersion.WithKind(CompositeResourceDefinitionKind)
)

CompositeResourceDefinition type metadata.

View Source
var (
	CompositionKind             = reflect.TypeOf(Composition{}).Name()
	CompositionGroupKind        = schema.GroupKind{Group: Group, Kind: CompositionKind}.String()
	CompositionKindAPIVersion   = CompositionKind + "." + SchemeGroupVersion.String()
	CompositionGroupVersionKind = SchemeGroupVersion.WithKind(CompositionKind)
)

Composition type metadata.

View Source
var (
	CompositionRevisionKind             = reflect.TypeOf(CompositionRevision{}).Name()
	CompositionRevisionGroupKind        = schema.GroupKind{Group: Group, Kind: CompositionRevisionKind}.String()
	CompositionRevisionKindAPIVersion   = CompositionRevisionKind + "." + SchemeGroupVersion.String()
	CompositionRevisionGroupVersionKind = SchemeGroupVersion.WithKind(CompositionRevisionKind)
)

CompositionRevision type metadata.

Functions

func ConvertRawExtension added in v1.11.0

func ConvertRawExtension(in runtime.RawExtension) runtime.RawExtension

ConvertRawExtension 'converts' a RawExtension by producing a deepcopy. This is necessary because goverter can't convert an embedded runtime.Object.

func ConvertResourceQuantity added in v1.11.0

func ConvertResourceQuantity(in *resource.Quantity) *resource.Quantity

ConvertResourceQuantity 'converts' a Quantity by producing a deepcopy. This is necessary because goverter can't convert a Quantity's unexported fields.

func TerminatingClaim

func TerminatingClaim() xpv1.Condition

TerminatingClaim indicates that Crossplane is terminating the controller and removing the definition of a composite resource claim.

func TerminatingComposite

func TerminatingComposite() xpv1.Condition

TerminatingComposite indicates that Crossplane is terminating the controller for and removing the definition of a composite resource.

func WatchingClaim

func WatchingClaim() xpv1.Condition

WatchingClaim indicates that Crossplane has defined and is watching for a new kind of composite resource claim.

func WatchingComposite

func WatchingComposite() xpv1.Condition

WatchingComposite indicates that Crossplane has defined and is watching for a new kind of composite resource.

Types

type Combine added in v1.3.0

type Combine struct {
	// Variables are the list of variables whose values will be retrieved and
	// combined.
	// +kubebuilder:validation:MinItems=1
	Variables []CombineVariable `json:"variables"`

	// Strategy defines the strategy to use to combine the input variable values.
	// Currently only string is supported.
	// +kubebuilder:validation:Enum=string
	Strategy CombineStrategy `json:"strategy"`

	// String declares that input variables should be combined into a single
	// string, using the relevant settings for formatting purposes.
	// +optional
	String *StringCombine `json:"string,omitempty"`
}

A Combine configures a patch that combines more than one input field into a single output field.

func (*Combine) DeepCopy added in v1.3.0

func (in *Combine) DeepCopy() *Combine

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Combine.

func (*Combine) DeepCopyInto added in v1.3.0

func (in *Combine) DeepCopyInto(out *Combine)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CombineStrategy added in v1.3.0

type CombineStrategy string

A CombineStrategy determines what strategy will be applied to combine variables.

const (
	CombineStrategyString CombineStrategy = "string"
)

CombineStrategy strategy definitions.

type CombineVariable added in v1.3.0

type CombineVariable struct {
	// FromFieldPath is the path of the field on the source whose value is
	// to be used as input.
	FromFieldPath string `json:"fromFieldPath"`
}

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.

func (*CombineVariable) DeepCopy added in v1.3.0

func (in *CombineVariable) DeepCopy() *CombineVariable

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CombineVariable.

func (*CombineVariable) DeepCopyInto added in v1.3.0

func (in *CombineVariable) DeepCopyInto(out *CombineVariable)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ComposedTemplate

type ComposedTemplate struct {

	// 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.
	// +optional
	Name *string `json:"name,omitempty"`

	// Base is the target resource that the patches will be applied on.
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:EmbeddedResource
	Base runtime.RawExtension `json:"base"`

	// Patches will be applied as overlay to the base resource.
	// +optional
	Patches []Patch `json:"patches,omitempty"`

	// ConnectionDetails lists the propagation secret keys from this target
	// resource to the composition instance connection secret.
	// +optional
	ConnectionDetails []ConnectionDetail `json:"connectionDetails,omitempty"`

	// 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".
	// +optional
	// +kubebuilder:default={{type:"MatchCondition",matchCondition:{type:"Ready",status:"True"}}}
	ReadinessChecks []ReadinessCheck `json:"readinessChecks,omitempty"`
}

ComposedTemplate is used to provide information about how the composed resource should be processed.

func (*ComposedTemplate) DeepCopy

func (in *ComposedTemplate) DeepCopy() *ComposedTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComposedTemplate.

func (*ComposedTemplate) DeepCopyInto

func (in *ComposedTemplate) DeepCopyInto(out *ComposedTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ComposedTemplate) GetName added in v1.12.0

func (ct *ComposedTemplate) GetName() string

GetName returns the name of the composed template or an empty string if it is nil.

type CompositeResourceDefinition

type CompositeResourceDefinition struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   CompositeResourceDefinitionSpec   `json:"spec,omitempty"`
	Status CompositeResourceDefinitionStatus `json:"status,omitempty"`
}

A CompositeResourceDefinition defines the schema for a new custom Kubernetes API.

Read the Crossplane documentation for [more information about CustomResourceDefinitions](https://docs.crossplane.io/latest/concepts/composite-resource-definitions). +kubebuilder:printcolumn:name="ESTABLISHED",type="string",JSONPath=".status.conditions[?(@.type=='Established')].status" +kubebuilder:printcolumn:name="OFFERED",type="string",JSONPath=".status.conditions[?(@.type=='Offered')].status" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories=crossplane,shortName=xrd;xrds

func (*CompositeResourceDefinition) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositeResourceDefinition.

func (*CompositeResourceDefinition) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CompositeResourceDefinition) DeepCopyObject

func (in *CompositeResourceDefinition) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (CompositeResourceDefinition) GetClaimGroupVersionKind

func (c CompositeResourceDefinition) GetClaimGroupVersionKind() schema.GroupVersionKind

GetClaimGroupVersionKind returns the schema.GroupVersionKind of the CRD for the composite resource claim this CompositeResourceDefinition defines. An empty GroupVersionKind is returned if the CompositeResourceDefinition does not offer a claim.

func (CompositeResourceDefinition) GetCompositeGroupVersionKind

func (c CompositeResourceDefinition) GetCompositeGroupVersionKind() schema.GroupVersionKind

GetCompositeGroupVersionKind returns the schema.GroupVersionKind of the CRD for the composite resource this CompositeResourceDefinition defines.

func (*CompositeResourceDefinition) GetConnectionSecretKeys

func (c *CompositeResourceDefinition) GetConnectionSecretKeys() []string

GetConnectionSecretKeys returns the set of allowed keys to filter the connection secret.

func (CompositeResourceDefinition) OffersClaim

func (c CompositeResourceDefinition) OffersClaim() bool

OffersClaim is true when a CompositeResourceDefinition offers a claim for the composite resource it defines.

func (*CompositeResourceDefinition) Validate added in v1.14.0

func (c *CompositeResourceDefinition) Validate() (warns []string, errs field.ErrorList)

Validate checks that the supplied CompositeResourceDefinition spec is logically valid.

func (*CompositeResourceDefinition) ValidateUpdate added in v1.7.0

func (c *CompositeResourceDefinition) ValidateUpdate(old *CompositeResourceDefinition) (warns []string, errs field.ErrorList)

ValidateUpdate checks that the supplied CompositeResourceDefinition update is valid w.r.t. the old one.

type CompositeResourceDefinitionControllerStatus

type CompositeResourceDefinitionControllerStatus struct {
	// 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.
	CompositeResourceTypeRef TypeReference `json:"compositeResourceType,omitempty"`

	// 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.
	CompositeResourceClaimTypeRef TypeReference `json:"compositeResourceClaimType,omitempty"`
}

CompositeResourceDefinitionControllerStatus shows the observed state of the controllers that power the definition.

func (*CompositeResourceDefinitionControllerStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositeResourceDefinitionControllerStatus.

func (*CompositeResourceDefinitionControllerStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CompositeResourceDefinitionList

type CompositeResourceDefinitionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CompositeResourceDefinition `json:"items"`
}

CompositeResourceDefinitionList contains a list of CompositeResourceDefinitions.

func (*CompositeResourceDefinitionList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositeResourceDefinitionList.

func (*CompositeResourceDefinitionList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CompositeResourceDefinitionList) DeepCopyObject

func (in *CompositeResourceDefinitionList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CompositeResourceDefinitionSpec

type CompositeResourceDefinitionSpec struct {
	// 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>`).
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Group string `json:"group"`

	// Names specifies the resource and kind names of the defined composite
	// resource.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	Names extv1.CustomResourceDefinitionNames `json:"names"`

	// 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.
	// +optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	ClaimNames *extv1.CustomResourceDefinitionNames `json:"claimNames,omitempty"`

	// 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.
	// +optional
	ConnectionSecretKeys []string `json:"connectionSecretKeys,omitempty"`

	// DefaultCompositeDeletePolicy is the policy used when deleting the Composite
	// that is associated with the Claim if no policy has been specified.
	// +optional
	// +kubebuilder:default=Background
	DefaultCompositeDeletePolicy *xpv1.CompositeDeletePolicy `json:"defaultCompositeDeletePolicy,omitempty"`

	// DefaultCompositionRef refers to the Composition resource that will be used
	// in case no composition selector is given.
	// +optional
	DefaultCompositionRef *CompositionReference `json:"defaultCompositionRef,omitempty"`

	// EnforcedCompositionRef refers to the Composition resource that will be used
	// by all composite instances whose schema is defined by this definition.
	// +optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	EnforcedCompositionRef *CompositionReference `json:"enforcedCompositionRef,omitempty"`

	// 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.
	// +optional
	// +kubebuilder:default=Automatic
	DefaultCompositionUpdatePolicy *xpv1.UpdatePolicy `json:"defaultCompositionUpdatePolicy,omitempty"`

	// 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.
	Versions []CompositeResourceDefinitionVersion `json:"versions"`

	// Conversion defines all conversion settings for the defined Composite resource.
	// +optional
	Conversion *extv1.CustomResourceConversion `json:"conversion,omitempty"`

	// Metadata specifies the desired metadata for the defined composite resource and claim CRD's.
	// +optional
	Metadata *CompositeResourceDefinitionSpecMetadata `json:"metadata,omitempty"`
}

CompositeResourceDefinitionSpec specifies the desired state of the definition.

func (*CompositeResourceDefinitionSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositeResourceDefinitionSpec.

func (*CompositeResourceDefinitionSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CompositeResourceDefinitionSpecMetadata added in v1.13.0

type CompositeResourceDefinitionSpecMetadata struct {
	// 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`.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`

	// 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
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

CompositeResourceDefinitionSpecMetadata specifies the desired metadata of the defined composite resource and claim CRD's.

func (*CompositeResourceDefinitionSpecMetadata) DeepCopy added in v1.13.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositeResourceDefinitionSpecMetadata.

func (*CompositeResourceDefinitionSpecMetadata) DeepCopyInto added in v1.13.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CompositeResourceDefinitionStatus

type CompositeResourceDefinitionStatus struct {
	xpv1.ConditionedStatus `json:",inline"`

	// Controllers represents the status of the controllers that power this
	// composite resource definition.
	Controllers CompositeResourceDefinitionControllerStatus `json:"controllers,omitempty"`
}

CompositeResourceDefinitionStatus shows the observed state of the definition.

func (*CompositeResourceDefinitionStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositeResourceDefinitionStatus.

func (*CompositeResourceDefinitionStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CompositeResourceDefinitionVersion

type CompositeResourceDefinitionVersion struct {
	// Name of this version, e.g. “v1”, “v2beta1”, etc. Composite resources are
	// served under this version at `/apis/<group>/<version>/...` if `served` is
	// true.
	Name string `json:"name"`

	// 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.
	Referenceable bool `json:"referenceable"`

	// Served specifies that this version should be served via REST APIs.
	Served bool `json:"served"`

	// The deprecated field specifies that this version is deprecated and should
	// not be used.
	// +optional
	Deprecated *bool `json:"deprecated,omitempty"`

	// DeprecationWarning specifies the message that should be shown to the user
	// when using this version.
	// +optional
	// +kubebuilder:validation:MaxLength=256
	DeprecationWarning *string `json:"deprecationWarning,omitempty"`

	// 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.
	// +optional
	Schema *CompositeResourceValidation `json:"schema,omitempty"`

	// 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
	// +optional
	AdditionalPrinterColumns []extv1.CustomResourceColumnDefinition `json:"additionalPrinterColumns,omitempty"`
}

CompositeResourceDefinitionVersion describes a version of an XR.

func (*CompositeResourceDefinitionVersion) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositeResourceDefinitionVersion.

func (*CompositeResourceDefinitionVersion) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CompositeResourceValidation

type CompositeResourceValidation struct {
	// OpenAPIV3Schema is the OpenAPI v3 schema to use for validation and
	// pruning.
	// +kubebuilder:pruning:PreserveUnknownFields
	OpenAPIV3Schema runtime.RawExtension `json:"openAPIV3Schema,omitempty"` //nolint:tagliatelle // False positive. Linter thinks it should be Apiv3, not APIV3.
}

CompositeResourceValidation is a list of validation methods for a composite resource.

func (*CompositeResourceValidation) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositeResourceValidation.

func (*CompositeResourceValidation) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Composition

type Composition struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec CompositionSpec `json:"spec,omitempty"`
}

A Composition defines a collection of managed resources or functions that Crossplane uses to create and manage new composite resources.

Read the Crossplane documentation for [more information about Compositions](https://docs.crossplane.io/latest/concepts/compositions). +kubebuilder:printcolumn:name="XR-KIND",type="string",JSONPath=".spec.compositeTypeRef.kind" +kubebuilder:printcolumn:name="XR-APIVERSION",type="string",JSONPath=".spec.compositeTypeRef.apiVersion" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:scope=Cluster,categories=crossplane,shortName=comp

func (*Composition) DeepCopy

func (in *Composition) DeepCopy() *Composition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Composition.

func (*Composition) DeepCopyInto

func (in *Composition) DeepCopyInto(out *Composition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Composition) DeepCopyObject

func (in *Composition) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Composition) GetSchemaAwareValidationMode added in v1.14.0

func (c *Composition) GetSchemaAwareValidationMode() (CompositionValidationMode, error)

GetSchemaAwareValidationMode returns the schema-aware validation mode set for the Composition.

func (Composition) Hash added in v1.11.0

func (c Composition) Hash() string

Hash of the Composition.

func (*Composition) Validate added in v1.12.0

func (c *Composition) Validate() (warns []string, errs field.ErrorList)

Validate performs logical validation of a Composition.

type CompositionList

type CompositionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Composition `json:"items"`
}

CompositionList contains a list of Compositions.

func (*CompositionList) DeepCopy

func (in *CompositionList) DeepCopy() *CompositionList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositionList.

func (*CompositionList) DeepCopyInto

func (in *CompositionList) DeepCopyInto(out *CompositionList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CompositionList) DeepCopyObject

func (in *CompositionList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CompositionMode added in v1.14.0

type CompositionMode string

A CompositionMode determines what mode of Composition is used.

const (
	// CompositionModeResources 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.
	CompositionModeResources CompositionMode = "Resources"

	// CompositionModePipeline 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.
	//
	// THIS IS A BETA FEATURE. It is not honored if the relevant Crossplane
	// feature flag is disabled.
	CompositionModePipeline CompositionMode = "Pipeline"
)

type CompositionReference added in v1.10.0

type CompositionReference struct {
	// Name of the Composition.
	Name string `json:"name"`
}

A CompositionReference references a Composition.

func (*CompositionReference) DeepCopy added in v1.10.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositionReference.

func (*CompositionReference) DeepCopyInto added in v1.10.0

func (in *CompositionReference) DeepCopyInto(out *CompositionReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CompositionRevision added in v1.12.0

type CompositionRevision struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   CompositionRevisionSpec   `json:"spec,omitempty"`
	Status CompositionRevisionStatus `json:"status,omitempty"`
}

A CompositionRevision represents a revision of a Composition. Crossplane creates new revisions when there are changes to the Composition.

Crossplane creates and manages CompositionRevisions. Don't directly edit CompositionRevisions. +kubebuilder:printcolumn:name="REVISION",type="string",JSONPath=".spec.revision" +kubebuilder:printcolumn:name="XR-KIND",type="string",JSONPath=".spec.compositeTypeRef.kind" +kubebuilder:printcolumn:name="XR-APIVERSION",type="string",JSONPath=".spec.compositeTypeRef.apiVersion" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:resource:scope=Cluster,categories=crossplane,shortName=comprev +kubebuilder:subresource:status

func LatestRevision added in v1.11.0

func LatestRevision(c *Composition, revs []CompositionRevision) *CompositionRevision

LatestRevision returns the latest revision of the supplied composition. We use a hash of the labels, the annotations, and the spec to decide to create a new revision. If we revert back to an older state, we increase the existing revision's revision number.

func (*CompositionRevision) DeepCopy added in v1.12.0

func (in *CompositionRevision) DeepCopy() *CompositionRevision

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositionRevision.

func (*CompositionRevision) DeepCopyInto added in v1.12.0

func (in *CompositionRevision) DeepCopyInto(out *CompositionRevision)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CompositionRevision) DeepCopyObject added in v1.12.0

func (in *CompositionRevision) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CompositionRevisionList added in v1.12.0

type CompositionRevisionList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []CompositionRevision `json:"items"`
}

CompositionRevisionList contains a list of CompositionRevisions.

func (*CompositionRevisionList) DeepCopy added in v1.12.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositionRevisionList.

func (*CompositionRevisionList) DeepCopyInto added in v1.12.0

func (in *CompositionRevisionList) DeepCopyInto(out *CompositionRevisionList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*CompositionRevisionList) DeepCopyObject added in v1.12.0

func (in *CompositionRevisionList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type CompositionRevisionSpec added in v1.12.0

type CompositionRevisionSpec struct {
	// CompositeTypeRef specifies the type of composite resource that this
	// composition is compatible with.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	CompositeTypeRef TypeReference `json:"compositeTypeRef"`

	// Mode controls what type or "mode" of Composition will be used.
	//
	// "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.
	//
	// "Resources" 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.
	//
	// All Compositions should use Pipeline mode. Resources mode is deprecated.
	// Resources mode won't be removed in Crossplane 1.x, and will remain the
	// default to avoid breaking legacy Compositions. However, it's no longer
	// accepting new features, and only accepting security related bug fixes.
	//
	// +optional
	// +kubebuilder:validation:Enum=Resources;Pipeline
	// +kubebuilder:default=Resources
	Mode *CompositionMode `json:"mode,omitempty"`

	// 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.
	//
	// Deprecated: Use Composition Functions instead.
	//
	// +optional
	PatchSets []PatchSet `json:"patchSets,omitempty"`

	// 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.
	// +optional
	Environment *EnvironmentConfiguration `json:"environment,omitempty"`

	// 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.
	//
	// Deprecated: Use Composition Functions instead.
	//
	// +optional
	Resources []ComposedTemplate `json:"resources,omitempty"`

	// 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.
	// +optional
	// +listType=map
	// +listMapKey=step
	Pipeline []PipelineStep `json:"pipeline,omitempty"`

	// 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.
	// +optional
	WriteConnectionSecretsToNamespace *string `json:"writeConnectionSecretsToNamespace,omitempty"`

	// 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.
	// +optional
	// +kubebuilder:default={"name": "default"}
	PublishConnectionDetailsWithStoreConfigRef *StoreConfigReference `json:"publishConnectionDetailsWithStoreConfigRef,omitempty"`

	// Revision number. Newer revisions have larger numbers.
	//
	// This number can change. When a Composition transitions from state A
	// -> B -> A there will be only two CompositionRevisions. Crossplane will
	// edit the original CompositionRevision to change its revision number from
	// 0 to 2.
	Revision int64 `json:"revision"`
}

CompositionRevisionSpec specifies the desired state of the composition revision.

func (*CompositionRevisionSpec) DeepCopy added in v1.12.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositionRevisionSpec.

func (*CompositionRevisionSpec) DeepCopyInto added in v1.12.0

func (in *CompositionRevisionSpec) DeepCopyInto(out *CompositionRevisionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CompositionRevisionStatus added in v1.12.0

type CompositionRevisionStatus struct {
	xpv1.ConditionedStatus `json:",inline"`
}

CompositionRevisionStatus shows the observed state of the composition revision.

func (*CompositionRevisionStatus) DeepCopy added in v1.12.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositionRevisionStatus.

func (*CompositionRevisionStatus) DeepCopyInto added in v1.12.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CompositionSpec

type CompositionSpec struct {
	// CompositeTypeRef specifies the type of composite resource that this
	// composition is compatible with.
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	CompositeTypeRef TypeReference `json:"compositeTypeRef"`

	// Mode controls what type or "mode" of Composition will be used.
	//
	// "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.
	//
	// "Resources" 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.
	//
	// All Compositions should use Pipeline mode. Resources mode is deprecated.
	// Resources mode won't be removed in Crossplane 1.x, and will remain the
	// default to avoid breaking legacy Compositions. However, it's no longer
	// accepting new features, and only accepting security related bug fixes.
	//
	// +optional
	// +kubebuilder:validation:Enum=Resources;Pipeline
	// +kubebuilder:default=Resources
	Mode *CompositionMode `json:"mode,omitempty"`

	// 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.
	//
	// Deprecated: Use Composition Functions instead.
	//
	// +optional
	PatchSets []PatchSet `json:"patchSets,omitempty"`

	// 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.
	// +optional
	Environment *EnvironmentConfiguration `json:"environment,omitempty"`

	// 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.
	//
	// Deprecated: Use Composition Functions instead.
	//
	// +optional
	Resources []ComposedTemplate `json:"resources,omitempty"`

	// 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.
	// +optional
	// +listType=map
	// +listMapKey=step
	Pipeline []PipelineStep `json:"pipeline,omitempty"`

	// 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.
	// +optional
	WriteConnectionSecretsToNamespace *string `json:"writeConnectionSecretsToNamespace,omitempty"`

	// 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.
	// +optional
	// +kubebuilder:default={"name": "default"}
	PublishConnectionDetailsWithStoreConfigRef *StoreConfigReference `json:"publishConnectionDetailsWithStoreConfigRef,omitempty"`
}

CompositionSpec specifies desired state of a composition.

func (*CompositionSpec) DeepCopy

func (in *CompositionSpec) DeepCopy() *CompositionSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CompositionSpec.

func (*CompositionSpec) DeepCopyInto

func (in *CompositionSpec) DeepCopyInto(out *CompositionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CompositionValidationMode added in v1.12.0

type CompositionValidationMode string

CompositionValidationMode is the validation mode for a Composition.

var (
	// DefaultSchemaAwareCompositionValidationMode is the default validation mode for Compositions.
	DefaultSchemaAwareCompositionValidationMode = SchemaAwareCompositionValidationModeWarn
	// SchemaAwareCompositionValidationModeWarn means only warnings will be
	// returned in case of errors during schema-aware validation, both for missing CRDs or any schema related error.
	SchemaAwareCompositionValidationModeWarn CompositionValidationMode = "warn"
	// SchemaAwareCompositionValidationModeLoose means that Compositions will be validated loosely, so no errors will be returned
	// in case of missing referenced resources, e.g. Managed Resources or Composite Resources.
	SchemaAwareCompositionValidationModeLoose CompositionValidationMode = "loose"
	// SchemaAwareCompositionValidationModeStrict means that Compositions will
	// be validated strictly, so errors will be returned in case of errors
	// during schema-aware validation or for missing resources' CRDs.
	SchemaAwareCompositionValidationModeStrict CompositionValidationMode = "strict"
)

type ConnectionDetail

type ConnectionDetail struct {
	// 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.
	// +optional
	Name *string `json:"name,omitempty"`

	// 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
	// +optional
	// +kubebuilder:validation:Enum=FromConnectionSecretKey;FromFieldPath;FromValue
	Type *ConnectionDetailType `json:"type,omitempty"`

	// FromConnectionSecretKey is the key that will be used to fetch the value
	// from the composed resource's connection secret.
	// +optional
	FromConnectionSecretKey *string `json:"fromConnectionSecretKey,omitempty"`

	// 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.
	// +optional
	FromFieldPath *string `json:"fromFieldPath,omitempty"`

	// 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.
	// +optional
	Value *string `json:"value,omitempty"`
}

ConnectionDetail includes the information about the propagation of the connection information from one secret to another.

func (*ConnectionDetail) DeepCopy

func (in *ConnectionDetail) DeepCopy() *ConnectionDetail

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionDetail.

func (*ConnectionDetail) DeepCopyInto

func (in *ConnectionDetail) DeepCopyInto(out *ConnectionDetail)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConnectionDetailType added in v1.1.0

type ConnectionDetailType string

A ConnectionDetailType is a type of connection detail.

const (
	ConnectionDetailTypeUnknown                 ConnectionDetailType = "Unknown"
	ConnectionDetailTypeFromConnectionSecretKey ConnectionDetailType = "FromConnectionSecretKey"
	ConnectionDetailTypeFromFieldPath           ConnectionDetailType = "FromFieldPath"
	ConnectionDetailTypeFromValue               ConnectionDetailType = "FromValue"
)

ConnectionDetailType types.

type ConvertTransform

type ConvertTransform struct {
	// ToType is the type of the output of this transform.
	// +kubebuilder:validation:Enum=string;int;int64;bool;float64;object;array
	ToType TransformIOType `json:"toType"`

	// 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.
	//
	// If this property is null, the default conversion is applied.
	//
	// +kubebuilder:validation:Enum=none;quantity;json
	// +kubebuilder:validation:Default=none
	Format *ConvertTransformFormat `json:"format,omitempty"`
}

A ConvertTransform converts the input into a new object whose type is supplied.

func (*ConvertTransform) DeepCopy

func (in *ConvertTransform) DeepCopy() *ConvertTransform

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConvertTransform.

func (*ConvertTransform) DeepCopyInto

func (in *ConvertTransform) DeepCopyInto(out *ConvertTransform)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ConvertTransform) GetFormat added in v1.12.0

GetFormat returns the format of the transform.

func (ConvertTransform) Validate added in v1.12.0

func (t ConvertTransform) Validate() *field.Error

Validate returns an error if the ConvertTransform is invalid.

type ConvertTransformFormat added in v1.11.0

type ConvertTransformFormat string

ConvertTransformFormat defines the expected format of an input value of a conversion transform.

const (
	ConvertTransformFormatNone     ConvertTransformFormat = "none"
	ConvertTransformFormatQuantity ConvertTransformFormat = "quantity"
	ConvertTransformFormatJSON     ConvertTransformFormat = "json"
)

Possible ConvertTransformFormat values.

func (ConvertTransformFormat) IsValid added in v1.12.0

func (c ConvertTransformFormat) IsValid() bool

IsValid returns true if the format is valid.

type EnvironmentConfiguration added in v1.11.0

type EnvironmentConfiguration struct {
	// 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.
	DefaultData map[string]extv1.JSON `json:"defaultData,omitempty"`

	// 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.
	// +optional
	EnvironmentConfigs []EnvironmentSource `json:"environmentConfigs,omitempty"`

	// Patches is a list of environment patches that are executed before a
	// composition's resources are composed.
	Patches []EnvironmentPatch `json:"patches,omitempty"`

	// Policy represents the Resolve and Resolution policies which apply to
	// all EnvironmentSourceReferences in EnvironmentConfigs list.
	// +optional
	Policy *xpv1.Policy `json:"policy,omitempty"`
}

An EnvironmentConfiguration specifies the environment for rendering composed resources.

func (*EnvironmentConfiguration) DeepCopy added in v1.11.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentConfiguration.

func (*EnvironmentConfiguration) DeepCopyInto added in v1.11.0

func (in *EnvironmentConfiguration) DeepCopyInto(out *EnvironmentConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EnvironmentConfiguration) IsRequired added in v1.13.0

func (e *EnvironmentConfiguration) IsRequired() bool

IsRequired specifies whether EnvironmentConfiguration is required or not.

func (*EnvironmentConfiguration) ShouldResolve added in v1.13.0

func (e *EnvironmentConfiguration) ShouldResolve(currentRefs []corev1.ObjectReference) bool

ShouldResolve specifies whether EnvironmentConfiguration should be resolved or not.

func (*EnvironmentConfiguration) Validate added in v1.13.0

Validate the EnvironmentConfiguration.

type EnvironmentPatch added in v1.11.0

type EnvironmentPatch struct {
	// Type sets the patching behaviour to be used. Each patch type may require
	// its own fields to be set on the Patch object.
	// +optional
	// +kubebuilder:validation:Enum=FromCompositeFieldPath;ToCompositeFieldPath;CombineFromComposite;CombineToComposite
	// +kubebuilder:default=FromCompositeFieldPath
	Type PatchType `json:"type,omitempty"`

	// 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.
	// +optional
	FromFieldPath *string `json:"fromFieldPath,omitempty"`

	// Combine is the patch configuration for a CombineFromComposite or
	// CombineToComposite patch.
	// +optional
	Combine *Combine `json:"combine,omitempty"`

	// 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.
	// +optional
	ToFieldPath *string `json:"toFieldPath,omitempty"`

	// Transforms are the list of functions that are used as a FIFO pipe for the
	// input to be transformed.
	// +optional
	Transforms []Transform `json:"transforms,omitempty"`

	// Policy configures the specifics of patching behaviour.
	// +optional
	Policy *PatchPolicy `json:"policy,omitempty"`
}

EnvironmentPatch is a patch for a Composition environment.

func (*EnvironmentPatch) DeepCopy added in v1.11.0

func (in *EnvironmentPatch) DeepCopy() *EnvironmentPatch

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentPatch.

func (*EnvironmentPatch) DeepCopyInto added in v1.11.0

func (in *EnvironmentPatch) DeepCopyInto(out *EnvironmentPatch)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EnvironmentPatch) ToPatch added in v1.13.0

func (e *EnvironmentPatch) ToPatch() *Patch

ToPatch converts the EnvironmentPatch to a Patch.

func (*EnvironmentPatch) Validate added in v1.13.0

func (e *EnvironmentPatch) Validate() *field.Error

Validate validates the EnvironmentPatch.

type EnvironmentSource added in v1.11.0

type EnvironmentSource struct {
	// Type specifies the way the EnvironmentConfig is selected.
	// Default is `Reference`
	// +optional
	// +kubebuilder:validation:Enum=Reference;Selector
	// +kubebuilder:default=Reference
	Type EnvironmentSourceType `json:"type,omitempty"`

	// Ref is a named reference to a single EnvironmentConfig.
	// Either Ref or Selector is required.
	// +optional
	Ref *EnvironmentSourceReference `json:"ref,omitempty"`

	// Selector selects EnvironmentConfig(s) via labels.
	// +optional
	Selector *EnvironmentSourceSelector `json:"selector,omitempty"`
}

EnvironmentSource selects a EnvironmentConfig resource.

func (*EnvironmentSource) DeepCopy added in v1.11.0

func (in *EnvironmentSource) DeepCopy() *EnvironmentSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentSource.

func (*EnvironmentSource) DeepCopyInto added in v1.11.0

func (in *EnvironmentSource) DeepCopyInto(out *EnvironmentSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EnvironmentSource) Validate added in v1.13.0

func (e *EnvironmentSource) Validate() *field.Error

Validate the EnvironmentSource.

type EnvironmentSourceReference added in v1.11.0

type EnvironmentSourceReference struct {
	// The name of the object.
	Name string `json:"name"`
}

An EnvironmentSourceReference references an EnvironmentConfig by it's name.

func (*EnvironmentSourceReference) DeepCopy added in v1.11.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentSourceReference.

func (*EnvironmentSourceReference) DeepCopyInto added in v1.11.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EnvironmentSourceReference) Validate added in v1.13.0

func (e *EnvironmentSourceReference) Validate() *field.Error

Validate the EnvironmentSourceReference.

type EnvironmentSourceSelector added in v1.11.0

type EnvironmentSourceSelector struct {
	// Mode specifies retrieval strategy: "Single" or "Multiple".
	// +kubebuilder:validation:Enum=Single;Multiple
	// +kubebuilder:default=Single
	Mode EnvironmentSourceSelectorModeType `json:"mode,omitempty"`

	// MaxMatch specifies the number of extracted EnvironmentConfigs in Multiple mode, extracts all if nil.
	MaxMatch *uint64 `json:"maxMatch,omitempty"`

	// MinMatch specifies the required minimum of extracted EnvironmentConfigs in Multiple mode.
	MinMatch *uint64 `json:"minMatch,omitempty"`

	// SortByFieldPath is the path to the field based on which list of EnvironmentConfigs is alphabetically sorted.
	// +kubebuilder:default="metadata.name"
	SortByFieldPath string `json:"sortByFieldPath,omitempty"`

	// MatchLabels ensures an object with matching labels is selected.
	MatchLabels []EnvironmentSourceSelectorLabelMatcher `json:"matchLabels,omitempty"`
}

An EnvironmentSourceSelector selects an EnvironmentConfig via labels.

func (*EnvironmentSourceSelector) DeepCopy added in v1.11.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentSourceSelector.

func (*EnvironmentSourceSelector) DeepCopyInto added in v1.11.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EnvironmentSourceSelector) Validate added in v1.13.0

func (e *EnvironmentSourceSelector) Validate() *field.Error

Validate logically validates the EnvironmentSourceSelector.

type EnvironmentSourceSelectorLabelMatcher added in v1.11.0

type EnvironmentSourceSelectorLabelMatcher struct {
	// Type specifies where the value for a label comes from.
	// +optional
	// +kubebuilder:validation:Enum=FromCompositeFieldPath;Value
	// +kubebuilder:default=FromCompositeFieldPath
	Type EnvironmentSourceSelectorLabelMatcherType `json:"type,omitempty"`

	// Key of the label to match.
	Key string `json:"key"`

	// ValueFromFieldPath specifies the field path to look for the label value.
	ValueFromFieldPath *string `json:"valueFromFieldPath,omitempty"`

	// 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.
	// +kubebuilder:validation:Enum=Optional;Required
	// +kubebuilder:default=Required
	FromFieldPathPolicy *FromFieldPathPolicy `json:"fromFieldPathPolicy,omitempty"`

	// Value specifies a literal label value.
	Value *string `json:"value,omitempty"`
}

An EnvironmentSourceSelectorLabelMatcher acts like a k8s label selector but can draw the label value from a different path.

func (*EnvironmentSourceSelectorLabelMatcher) DeepCopy added in v1.11.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentSourceSelectorLabelMatcher.

func (*EnvironmentSourceSelectorLabelMatcher) DeepCopyInto added in v1.11.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EnvironmentSourceSelectorLabelMatcher) FromFieldPathIsOptional added in v1.14.0

func (e *EnvironmentSourceSelectorLabelMatcher) FromFieldPathIsOptional() bool

FromFieldPathIsOptional returns true if the FromFieldPathPolicy is set to Optional.

func (*EnvironmentSourceSelectorLabelMatcher) GetType added in v1.13.0

GetType returns the type of the label matcher, returning the default if not set.

func (*EnvironmentSourceSelectorLabelMatcher) Validate added in v1.13.0

Validate logically validate the EnvironmentSourceSelectorLabelMatcher.

type EnvironmentSourceSelectorLabelMatcherType added in v1.11.0

type EnvironmentSourceSelectorLabelMatcherType string

EnvironmentSourceSelectorLabelMatcherType specifies where the value for a label comes from.

const (
	// EnvironmentSourceSelectorLabelMatcherTypeFromCompositeFieldPath extracts
	// the label value from a composite fieldpath.
	EnvironmentSourceSelectorLabelMatcherTypeFromCompositeFieldPath EnvironmentSourceSelectorLabelMatcherType = "FromCompositeFieldPath"
	// EnvironmentSourceSelectorLabelMatcherTypeValue uses a literal as label
	// value.
	EnvironmentSourceSelectorLabelMatcherTypeValue EnvironmentSourceSelectorLabelMatcherType = "Value"
)

type EnvironmentSourceSelectorModeType added in v1.13.0

type EnvironmentSourceSelectorModeType string

EnvironmentSourceSelectorModeType specifies amount of retrieved EnvironmentConfigs with matching label.

const (
	// EnvironmentSourceSelectorSingleMode extracts only first EnvironmentConfig from the sorted list.
	EnvironmentSourceSelectorSingleMode EnvironmentSourceSelectorModeType = "Single"

	// EnvironmentSourceSelectorMultiMode extracts multiple EnvironmentConfigs from the sorted list.
	EnvironmentSourceSelectorMultiMode EnvironmentSourceSelectorModeType = "Multiple"
)

type EnvironmentSourceType added in v1.11.0

type EnvironmentSourceType string

EnvironmentSourceType specifies the way the EnvironmentConfig is selected.

const (
	// EnvironmentSourceTypeReference by name.
	EnvironmentSourceTypeReference EnvironmentSourceType = "Reference"
	// EnvironmentSourceTypeSelector by labels.
	EnvironmentSourceTypeSelector EnvironmentSourceType = "Selector"
)

type FromFieldPathPolicy added in v1.1.0

type FromFieldPathPolicy string

A FromFieldPathPolicy determines how to patch from a field path.

const (
	FromFieldPathPolicyOptional FromFieldPathPolicy = "Optional"
	FromFieldPathPolicyRequired FromFieldPathPolicy = "Required"
)

FromFieldPath patch policies.

type FunctionCredentials added in v1.16.0

type FunctionCredentials struct {
	// Name of this set of credentials.
	Name string `json:"name"`

	// Source of the function credentials.
	// +kubebuilder:validation:Enum=None;Secret
	Source FunctionCredentialsSource `json:"source"`

	// A SecretRef is a reference to a secret containing credentials that should
	// be supplied to the function.
	// +optional
	SecretRef *xpv1.SecretReference `json:"secretRef,omitempty"`
}

FunctionCredentials are optional credentials that a Composition Function needs to run.

func (*FunctionCredentials) DeepCopy added in v1.16.0

func (in *FunctionCredentials) DeepCopy() *FunctionCredentials

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FunctionCredentials.

func (*FunctionCredentials) DeepCopyInto added in v1.16.0

func (in *FunctionCredentials) DeepCopyInto(out *FunctionCredentials)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FunctionCredentialsSource added in v1.16.0

type FunctionCredentialsSource string

A FunctionCredentialsSource is a source from which Composition Function credentials may be acquired.

const (
	// FunctionCredentialsSourceNone indicates that a function does not require
	// credentials.
	FunctionCredentialsSourceNone FunctionCredentialsSource = "None"

	// FunctionCredentialsSourceSecret indicates that a function should acquire
	// credentials from a secret.
	FunctionCredentialsSourceSecret FunctionCredentialsSource = "Secret"
)

type FunctionReference added in v1.14.0

type FunctionReference struct {
	// Name of the referenced Function.
	Name string `json:"name"`
}

A FunctionReference references a Composition Function that may be used in a Composition pipeline.

func (*FunctionReference) DeepCopy added in v1.14.0

func (in *FunctionReference) DeepCopy() *FunctionReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FunctionReference.

func (*FunctionReference) DeepCopyInto added in v1.14.0

func (in *FunctionReference) DeepCopyInto(out *FunctionReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GeneratedRevisionSpecConverter added in v1.11.0

type GeneratedRevisionSpecConverter struct{}

func (*GeneratedRevisionSpecConverter) DeepCopy added in v1.11.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GeneratedRevisionSpecConverter.

func (*GeneratedRevisionSpecConverter) DeepCopyInto added in v1.11.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GeneratedRevisionSpecConverter) FromRevisionSpec added in v1.11.0

func (*GeneratedRevisionSpecConverter) ToRevisionSpec added in v1.11.0

type MapTransform

type MapTransform struct {
	// Pairs is the map that will be used for transform.
	// +optional
	Pairs map[string]extv1.JSON `json:",inline"`
}

MapTransform returns a value for the input from the given map.

func (*MapTransform) DeepCopy

func (in *MapTransform) DeepCopy() *MapTransform

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MapTransform.

func (*MapTransform) DeepCopyInto

func (in *MapTransform) DeepCopyInto(out *MapTransform)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MapTransform) MarshalJSON

func (m *MapTransform) MarshalJSON() ([]byte, error)

MarshalJSON from this MapTransform.

func (*MapTransform) UnmarshalJSON

func (m *MapTransform) UnmarshalJSON(b []byte) error

UnmarshalJSON into this MapTransform.

func (*MapTransform) Validate added in v1.12.0

func (m *MapTransform) Validate() *field.Error

Validate checks this MapTransform is valid.

type MatchConditionReadinessCheck added in v1.13.0

type MatchConditionReadinessCheck struct {
	// Type indicates the type of condition you'd like to use.
	// +kubebuilder:default="Ready"
	Type xpv1.ConditionType `json:"type"`

	// Status is the status of the condition you'd like to match.
	// +kubebuilder:default="True"
	Status corev1.ConditionStatus `json:"status"`
}

MatchConditionReadinessCheck is used to indicate how to tell whether a resource is ready for consumption.

func (*MatchConditionReadinessCheck) DeepCopy added in v1.13.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchConditionReadinessCheck.

func (*MatchConditionReadinessCheck) DeepCopyInto added in v1.13.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MatchConditionReadinessCheck) Validate added in v1.13.0

func (m *MatchConditionReadinessCheck) Validate() *field.Error

Validate checks if the match condition is logically valid.

type MatchFallbackTo added in v1.12.0

type MatchFallbackTo string

MatchFallbackTo defines how a match operation will fallback.

const (
	MatchFallbackToTypeValue MatchFallbackTo = "Value"
	MatchFallbackToTypeInput MatchFallbackTo = "Input"
)

Valid MatchFallbackTo.

type MatchTransform added in v1.11.0

type MatchTransform struct {
	// 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.
	Patterns []MatchTransformPattern `json:"patterns,omitempty"`

	// The fallback value that should be returned by the transform if now pattern
	// matches.
	FallbackValue extv1.JSON `json:"fallbackValue,omitempty"`
	// Determines to what value the transform should fallback if no pattern matches.
	// +optional
	// +kubebuilder:validation:Enum=Value;Input
	// +kubebuilder:default=Value
	FallbackTo MatchFallbackTo `json:"fallbackTo,omitempty"`
}

MatchTransform is a more complex version of a map transform that matches a list of patterns.

func (*MatchTransform) DeepCopy added in v1.11.0

func (in *MatchTransform) DeepCopy() *MatchTransform

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchTransform.

func (*MatchTransform) DeepCopyInto added in v1.11.0

func (in *MatchTransform) DeepCopyInto(out *MatchTransform)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MatchTransform) Validate added in v1.12.0

func (m *MatchTransform) Validate() *field.Error

Validate checks this MatchTransform is valid.

type MatchTransformPattern added in v1.11.0

type MatchTransformPattern struct {
	// 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.
	//
	// +kubebuilder:validation:Enum=literal;regexp
	// +kubebuilder:default=literal
	Type MatchTransformPatternType `json:"type"`

	// Literal exactly matches the input string (case sensitive).
	// Is required if `type` is `literal`.
	Literal *string `json:"literal,omitempty"`

	// Regexp to match against the input string.
	// Is required if `type` is `regexp`.
	Regexp *string `json:"regexp,omitempty"`

	// The value that is used as result of the transform if the pattern matches.
	Result extv1.JSON `json:"result"`
}

MatchTransformPattern is a transform that returns the value that matches a pattern.

func (*MatchTransformPattern) DeepCopy added in v1.11.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchTransformPattern.

func (*MatchTransformPattern) DeepCopyInto added in v1.11.0

func (in *MatchTransformPattern) DeepCopyInto(out *MatchTransformPattern)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MatchTransformPattern) Validate added in v1.12.0

func (m *MatchTransformPattern) Validate() *field.Error

Validate checks this MatchTransformPattern is valid.

type MatchTransformPatternType added in v1.11.0

type MatchTransformPatternType string

MatchTransformPatternType defines the type of a MatchTransformPattern.

const (
	MatchTransformPatternTypeLiteral MatchTransformPatternType = "literal"
	MatchTransformPatternTypeRegexp  MatchTransformPatternType = "regexp"
)

Valid MatchTransformPatternTypes.

type MathTransform

type MathTransform struct {
	// Type of the math transform to be run.
	// +optional
	// +kubebuilder:validation:Enum=Multiply;ClampMin;ClampMax
	// +kubebuilder:default=Multiply
	Type MathTransformType `json:"type,omitempty"`

	// Multiply the value.
	// +optional
	Multiply *int64 `json:"multiply,omitempty"`
	// ClampMin makes sure that the value is not smaller than the given value.
	// +optional
	ClampMin *int64 `json:"clampMin,omitempty"`
	// ClampMax makes sure that the value is not bigger than the given value.
	// +optional
	ClampMax *int64 `json:"clampMax,omitempty"`
}

MathTransform conducts mathematical operations on the input with the given configuration in its properties.

func (*MathTransform) DeepCopy

func (in *MathTransform) DeepCopy() *MathTransform

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MathTransform.

func (*MathTransform) DeepCopyInto

func (in *MathTransform) DeepCopyInto(out *MathTransform)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MathTransform) GetType added in v1.12.0

func (m *MathTransform) GetType() MathTransformType

GetType returns the type of the math transform, returning the default if not specified.

func (*MathTransform) Validate added in v1.12.0

func (m *MathTransform) Validate() *field.Error

Validate checks this MathTransform is valid.

type MathTransformType added in v1.12.0

type MathTransformType string

MathTransformType conducts mathematical operations.

const (
	MathTransformTypeMultiply MathTransformType = "Multiply" // Default
	MathTransformTypeClampMin MathTransformType = "ClampMin"
	MathTransformTypeClampMax MathTransformType = "ClampMax"
)

Accepted MathTransformType.

type Patch

type Patch struct {
	// Type sets the patching behaviour to be used. Each patch type may require
	// its own fields to be set on the Patch object.
	// +optional
	// +kubebuilder:validation:Enum=FromCompositeFieldPath;FromEnvironmentFieldPath;PatchSet;ToCompositeFieldPath;ToEnvironmentFieldPath;CombineFromEnvironment;CombineFromComposite;CombineToComposite;CombineToEnvironment
	// +kubebuilder:default=FromCompositeFieldPath
	Type PatchType `json:"type,omitempty"`

	// 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.
	// +optional
	FromFieldPath *string `json:"fromFieldPath,omitempty"`

	// Combine is the patch configuration for a CombineFromComposite,
	// CombineFromEnvironment, CombineToComposite or CombineToEnvironment patch.
	// +optional
	Combine *Combine `json:"combine,omitempty"`

	// 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.
	// +optional
	ToFieldPath *string `json:"toFieldPath,omitempty"`

	// PatchSetName to include patches from. Required when type is PatchSet.
	// +optional
	PatchSetName *string `json:"patchSetName,omitempty"`

	// Transforms are the list of functions that are used as a FIFO pipe for the
	// input to be transformed.
	// +optional
	Transforms []Transform `json:"transforms,omitempty"`

	// Policy configures the specifics of patching behaviour.
	// +optional
	Policy *PatchPolicy `json:"policy,omitempty"`
}

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.

func (*Patch) DeepCopy

func (in *Patch) DeepCopy() *Patch

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Patch.

func (*Patch) DeepCopyInto

func (in *Patch) DeepCopyInto(out *Patch)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Patch) GetFromFieldPath added in v1.12.0

func (p *Patch) GetFromFieldPath() string

GetFromFieldPath returns the FromFieldPath for this Patch, or an empty string if it is nil.

func (*Patch) GetToFieldPath added in v1.12.0

func (p *Patch) GetToFieldPath() string

GetToFieldPath returns the ToFieldPath for this Patch, or an empty string if it is nil.

func (*Patch) GetType added in v1.12.0

func (p *Patch) GetType() PatchType

GetType returns the patch type. If the type is not set, it returns the default type.

func (*Patch) Validate added in v1.12.0

func (p *Patch) Validate() *field.Error

Validate the Patch object.

type PatchPolicy added in v1.1.0

type PatchPolicy struct {
	// 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.
	// +kubebuilder:validation:Enum=Optional;Required
	// +optional
	FromFieldPath *FromFieldPathPolicy `json:"fromFieldPath,omitempty"`
	MergeOptions  *xpv1.MergeOptions   `json:"mergeOptions,omitempty"`
}

A PatchPolicy configures the specifics of patching behaviour.

func (*PatchPolicy) DeepCopy added in v1.1.0

func (in *PatchPolicy) DeepCopy() *PatchPolicy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PatchPolicy.

func (*PatchPolicy) DeepCopyInto added in v1.1.0

func (in *PatchPolicy) DeepCopyInto(out *PatchPolicy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PatchPolicy) GetFromFieldPathPolicy added in v1.12.0

func (pp *PatchPolicy) GetFromFieldPathPolicy() FromFieldPathPolicy

GetFromFieldPathPolicy returns the FromFieldPathPolicy for this PatchPolicy, defaulting to FromFieldPathPolicyOptional if not specified.

type PatchSet

type PatchSet struct {
	// Name of this PatchSet.
	Name string `json:"name"`

	// Patches will be applied as an overlay to the base resource.
	Patches []Patch `json:"patches"`
}

A PatchSet is a set of patches that can be reused from all resources within a Composition.

func (*PatchSet) DeepCopy

func (in *PatchSet) DeepCopy() *PatchSet

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PatchSet.

func (*PatchSet) DeepCopyInto

func (in *PatchSet) DeepCopyInto(out *PatchSet)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PatchType

type PatchType string

A PatchType is a type of patch.

const (
	PatchTypeFromCompositeFieldPath   PatchType = "FromCompositeFieldPath" // Default
	PatchTypeFromEnvironmentFieldPath PatchType = "FromEnvironmentFieldPath"
	PatchTypePatchSet                 PatchType = "PatchSet"
	PatchTypeToCompositeFieldPath     PatchType = "ToCompositeFieldPath"
	PatchTypeToEnvironmentFieldPath   PatchType = "ToEnvironmentFieldPath"
	PatchTypeCombineFromEnvironment   PatchType = "CombineFromEnvironment"
	PatchTypeCombineFromComposite     PatchType = "CombineFromComposite"
	PatchTypeCombineToComposite       PatchType = "CombineToComposite"
	PatchTypeCombineToEnvironment     PatchType = "CombineToEnvironment"
)

Patch types.

type PipelineStep added in v1.14.0

type PipelineStep struct {
	// Step name. Must be unique within its Pipeline.
	Step string `json:"step"`

	// FunctionRef is a reference to the Composition Function this step should
	// execute.
	FunctionRef FunctionReference `json:"functionRef"`

	// 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.
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	// +kubebuilder:validation:EmbeddedResource
	Input *runtime.RawExtension `json:"input,omitempty"`

	// Credentials are optional credentials that the Composition Function needs.
	// +optional
	// +listType=map
	// +listMapKey=name
	Credentials []FunctionCredentials `json:"credentials,omitempty"`
}

A PipelineStep in a Composition Function pipeline.

func (*PipelineStep) DeepCopy added in v1.14.0

func (in *PipelineStep) DeepCopy() *PipelineStep

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PipelineStep.

func (*PipelineStep) DeepCopyInto added in v1.14.0

func (in *PipelineStep) DeepCopyInto(out *PipelineStep)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReadinessCheck

type ReadinessCheck struct {

	// Type indicates the type of probe you'd like to use.
	// +kubebuilder:validation:Enum="MatchString";"MatchInteger";"NonEmpty";"MatchCondition";"MatchTrue";"MatchFalse";"None"
	Type ReadinessCheckType `json:"type"`

	// FieldPath shows the path of the field whose value will be used.
	// +optional
	FieldPath string `json:"fieldPath,omitempty"`

	// MatchString is the value you'd like to match if you're using "MatchString" type.
	// +optional
	MatchString string `json:"matchString,omitempty"`

	// MatchInt is the value you'd like to match if you're using "MatchInt" type.
	// +optional
	MatchInteger int64 `json:"matchInteger,omitempty"`

	// MatchCondition specifies the condition you'd like to match if you're using "MatchCondition" type.
	// +optional
	MatchCondition *MatchConditionReadinessCheck `json:"matchCondition,omitempty"`
}

ReadinessCheck is used to indicate how to tell whether a resource is ready for consumption.

func (*ReadinessCheck) DeepCopy

func (in *ReadinessCheck) DeepCopy() *ReadinessCheck

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadinessCheck.

func (*ReadinessCheck) DeepCopyInto

func (in *ReadinessCheck) DeepCopyInto(out *ReadinessCheck)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ReadinessCheck) Validate added in v1.12.0

func (r *ReadinessCheck) Validate() *field.Error

Validate checks if the readiness check is logically valid.

type ReadinessCheckType added in v1.1.0

type ReadinessCheckType string

ReadinessCheckType is used for readiness check types.

const (
	ReadinessCheckTypeNonEmpty       ReadinessCheckType = "NonEmpty"
	ReadinessCheckTypeMatchString    ReadinessCheckType = "MatchString"
	ReadinessCheckTypeMatchInteger   ReadinessCheckType = "MatchInteger"
	ReadinessCheckTypeMatchTrue      ReadinessCheckType = "MatchTrue"
	ReadinessCheckTypeMatchFalse     ReadinessCheckType = "MatchFalse"
	ReadinessCheckTypeMatchCondition ReadinessCheckType = "MatchCondition"
	ReadinessCheckTypeNone           ReadinessCheckType = "None"
)

The possible values for readiness check type.

func (*ReadinessCheckType) IsValid added in v1.12.0

func (t *ReadinessCheckType) IsValid() bool

IsValid returns nil if the readiness check type is valid, or an error otherwise.

type RevisionSpecConverter added in v1.11.0

type RevisionSpecConverter interface {
	// goverter:ignore Revision
	ToRevisionSpec(in CompositionSpec) CompositionRevisionSpec
	FromRevisionSpec(in CompositionRevisionSpec) CompositionSpec
}

A RevisionSpecConverter converts a CompositionSpec to the equivalent CompositionRevisionSpec.

goverter:converter goverter:name GeneratedRevisionSpecConverter goverter:extend ConvertRawExtension ConvertResourceQuantity goverter:output:file ./zz_generated.conversion.go goverter:output:package github.com/crossplane/crossplane/apis/apiextensions/v1 +k8s:deepcopy-gen=false

type StoreConfigReference added in v1.10.0

type StoreConfigReference struct {
	// Name of the referenced StoreConfig.
	Name string `json:"name"`
}

A StoreConfigReference references a secret store config that may be used to write connection details.

func (*StoreConfigReference) DeepCopy added in v1.10.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StoreConfigReference.

func (*StoreConfigReference) DeepCopyInto added in v1.10.0

func (in *StoreConfigReference) DeepCopyInto(out *StoreConfigReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StringCombine added in v1.3.0

type StringCombine struct {
	// Format the input using a Go format string. See
	// https://golang.org/pkg/fmt/ for details.
	Format string `json:"fmt"`
}

A StringCombine combines multiple input values into a single string.

func (*StringCombine) DeepCopy added in v1.3.0

func (in *StringCombine) DeepCopy() *StringCombine

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringCombine.

func (*StringCombine) DeepCopyInto added in v1.3.0

func (in *StringCombine) DeepCopyInto(out *StringCombine)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StringConversionType added in v1.5.0

type StringConversionType string

StringConversionType converts a string.

const (
	StringConversionTypeToUpper    StringConversionType = "ToUpper"
	StringConversionTypeToLower    StringConversionType = "ToLower"
	StringConversionTypeToJSON     StringConversionType = "ToJson"
	StringConversionTypeToBase64   StringConversionType = "ToBase64"
	StringConversionTypeFromBase64 StringConversionType = "FromBase64"
	StringConversionTypeToSHA1     StringConversionType = "ToSha1"
	StringConversionTypeToSHA256   StringConversionType = "ToSha256"
	StringConversionTypeToSHA512   StringConversionType = "ToSha512"
	StringConversionTypeToAdler32  StringConversionType = "ToAdler32"
)

Accepted StringConversionTypes.

type StringTransform

type StringTransform struct {
	// Type of the string transform to be run.
	// +optional
	// +kubebuilder:validation:Enum=Format;Convert;TrimPrefix;TrimSuffix;Regexp;Join
	// +kubebuilder:default=Format
	Type StringTransformType `json:"type,omitempty"`

	// Format the input using a Go format string. See
	// https://golang.org/pkg/fmt/ for details.
	// +optional
	Format *string `json:"fmt,omitempty"`

	// 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.
	// +optional
	// +kubebuilder:validation:Enum=ToUpper;ToLower;ToBase64;FromBase64;ToJson;ToSha1;ToSha256;ToSha512;ToAdler32
	Convert *StringConversionType `json:"convert,omitempty"`

	// Trim the prefix or suffix from the input
	// +optional
	Trim *string `json:"trim,omitempty"`

	// Extract a match from the input using a regular expression.
	// +optional
	Regexp *StringTransformRegexp `json:"regexp,omitempty"`

	// Join defines parameters to join a slice of values to a string.
	// +optional
	Join *StringTransformJoin `json:"join,omitempty"`
}

A StringTransform returns a string given the supplied input.

func (*StringTransform) DeepCopy

func (in *StringTransform) DeepCopy() *StringTransform

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringTransform.

func (*StringTransform) DeepCopyInto

func (in *StringTransform) DeepCopyInto(out *StringTransform)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*StringTransform) Validate added in v1.12.0

func (s *StringTransform) Validate() *field.Error

Validate checks this StringTransform is valid.

type StringTransformJoin added in v1.15.0

type StringTransformJoin struct {
	// Separator defines the character that should separate the values from each
	// other in the joined string.
	Separator string `json:"separator"`
}

StringTransformJoin defines parameters to join a slice of values to a string.

func (*StringTransformJoin) DeepCopy added in v1.15.0

func (in *StringTransformJoin) DeepCopy() *StringTransformJoin

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringTransformJoin.

func (*StringTransformJoin) DeepCopyInto added in v1.15.0

func (in *StringTransformJoin) DeepCopyInto(out *StringTransformJoin)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StringTransformRegexp added in v1.9.0

type StringTransformRegexp struct {
	// Match string. May optionally include submatches, aka capture groups.
	// See https://pkg.go.dev/regexp/ for details.
	Match string `json:"match"`

	// Group number to match. 0 (the default) matches the entire expression.
	// +optional
	Group *int `json:"group,omitempty"`
}

A StringTransformRegexp extracts a match from the input using a regular expression.

func (*StringTransformRegexp) DeepCopy added in v1.9.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringTransformRegexp.

func (*StringTransformRegexp) DeepCopyInto added in v1.9.0

func (in *StringTransformRegexp) DeepCopyInto(out *StringTransformRegexp)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StringTransformType added in v1.5.0

type StringTransformType string

StringTransformType transforms a string.

const (
	StringTransformTypeFormat     StringTransformType = "Format" // Default
	StringTransformTypeConvert    StringTransformType = "Convert"
	StringTransformTypeTrimPrefix StringTransformType = "TrimPrefix"
	StringTransformTypeTrimSuffix StringTransformType = "TrimSuffix"
	StringTransformTypeRegexp     StringTransformType = "Regexp"
	StringTransformTypeJoin       StringTransformType = "Join"
)

Accepted StringTransformTypes.

type Transform

type Transform struct {
	// Type of the transform to be run.
	// +kubebuilder:validation:Enum=map;match;math;string;convert
	Type TransformType `json:"type"`

	// Math is used to transform the input via mathematical operations such as
	// multiplication.
	// +optional
	Math *MathTransform `json:"math,omitempty"`

	// Map uses the input as a key in the given map and returns the value.
	// +optional
	Map *MapTransform `json:"map,omitempty"`

	// Match is a more complex version of Map that matches a list of patterns.
	// +optional
	Match *MatchTransform `json:"match,omitempty"`

	// 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.
	// +optional
	String *StringTransform `json:"string,omitempty"`

	// Convert is used to cast the input into the given output type.
	// +optional
	Convert *ConvertTransform `json:"convert,omitempty"`
}

Transform is a unit of process whose input is transformed into an output with the supplied configuration.

func (*Transform) DeepCopy

func (in *Transform) DeepCopy() *Transform

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Transform.

func (*Transform) DeepCopyInto

func (in *Transform) DeepCopyInto(out *Transform)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Transform) GetOutputType added in v1.12.0

func (t *Transform) GetOutputType() (*TransformIOType, error)

GetOutputType returns the output type of the transform. It returns an error if the transform type is unknown. It returns nil if the output type is not known.

func (*Transform) Validate added in v1.12.0

func (t *Transform) Validate() *field.Error

Validate this Transform is valid.

type TransformIOType added in v1.12.0

type TransformIOType string

TransformIOType defines the type of a ConvertTransform.

const (
	TransformIOTypeString  TransformIOType = "string"
	TransformIOTypeBool    TransformIOType = "bool"
	TransformIOTypeInt     TransformIOType = "int"
	TransformIOTypeInt64   TransformIOType = "int64"
	TransformIOTypeFloat64 TransformIOType = "float64"

	TransformIOTypeObject TransformIOType = "object"
	TransformIOTypeArray  TransformIOType = "array"
)

The list of supported Transform input and output types.

func (TransformIOType) IsValid added in v1.12.0

func (c TransformIOType) IsValid() bool

IsValid checks if the given TransformIOType is valid.

type TransformType

type TransformType string

TransformType is type of the transform function to be chosen.

const (
	ErrFmtConvertFormatPairNotSupported = "conversion from %s to %s is not supported with format %s"

	TransformTypeMap     TransformType = "map"
	TransformTypeMatch   TransformType = "match"
	TransformTypeMath    TransformType = "math"
	TransformTypeString  TransformType = "string"
	TransformTypeConvert TransformType = "convert"
)

Accepted TransformTypes.

type TypeReference

type TypeReference struct {
	// APIVersion of the type.
	APIVersion string `json:"apiVersion"`

	// Kind of the type.
	Kind string `json:"kind"`
}

TypeReference is used to refer to a type for declaring compatibility.

func TypeReferenceTo

func TypeReferenceTo(gvk schema.GroupVersionKind) TypeReference

TypeReferenceTo returns a reference to the supplied GroupVersionKind.

func (*TypeReference) DeepCopy

func (in *TypeReference) DeepCopy() *TypeReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypeReference.

func (*TypeReference) DeepCopyInto

func (in *TypeReference) DeepCopyInto(out *TypeReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL