v1

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: May 22, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package v1 contains core API types used by most Crossplane resources. +kubebuilder:object:generate=true

Index

Constants

View Source
const (
	// ResolvePolicyAlways is a resolve option.
	// When the ResolvePolicy is set to ResolvePolicyAlways the reference will
	// be tried to resolve for every reconcile loop.
	ResolvePolicyAlways ResolvePolicy = "Always"

	// ResolutionPolicyRequired is a resolution option.
	// When the ResolutionPolicy is set to ResolutionPolicyRequired the execution
	// could not continue even if the reference cannot be resolved.
	ResolutionPolicyRequired ResolutionPolicy = "Required"

	// ResolutionPolicyOptional is a resolution option.
	// When the ReferenceResolutionPolicy is set to ReferencePolicyOptional the
	// execution could continue even if the reference cannot be resolved.
	ResolutionPolicyOptional ResolutionPolicy = "Optional"
)
View Source
const (
	// ResourceCredentialsSecretEndpointKey is the key inside a connection secret for the connection endpoint
	ResourceCredentialsSecretEndpointKey = "endpoint"
	// ResourceCredentialsSecretPortKey is the key inside a connection secret for the connection port
	ResourceCredentialsSecretPortKey = "port"
	// ResourceCredentialsSecretUserKey is the key inside a connection secret for the connection user
	ResourceCredentialsSecretUserKey = "username"
	// ResourceCredentialsSecretPasswordKey is the key inside a connection secret for the connection password
	ResourceCredentialsSecretPasswordKey = "password"
	// ResourceCredentialsSecretCAKey is the key inside a connection secret for the server CA certificate
	ResourceCredentialsSecretCAKey = "clusterCA"
	// ResourceCredentialsSecretClientCertKey is the key inside a connection secret for the client certificate
	ResourceCredentialsSecretClientCertKey = "clientCert"
	// ResourceCredentialsSecretClientKeyKey is the key inside a connection secret for the client key
	ResourceCredentialsSecretClientKeyKey = "clientKey"
	// ResourceCredentialsSecretTokenKey is the key inside a connection secret for the bearer token value
	ResourceCredentialsSecretTokenKey = "token"
	// ResourceCredentialsSecretKubeconfigKey is the key inside a connection secret for the raw kubeconfig yaml
	ResourceCredentialsSecretKubeconfigKey = "kubeconfig"
)
View Source
const (
	// LabelKeyOwnerUID is the UID of the owner resource of a connection secret.
	// Kubernetes provides owner/controller references to track ownership of
	// resources including secrets, however, this would only work for in cluster
	// k8s secrets. We opted to use a label for this purpose to be consistent
	// across Secret Store implementations and expect all to support
	// setting/getting labels.
	LabelKeyOwnerUID = "secret.crossplane.io/owner-uid"
)
View Source
const LabelKeyProviderName = "crossplane.io/provider-config"

LabelKeyProviderName is added to ProviderConfigUsages to relate them to their ProviderConfig.

Variables

This section is empty.

Functions

This section is empty.

Types

type CommonCredentialSelectors

type CommonCredentialSelectors struct {
	// Fs is a reference to a filesystem location that contains credentials that
	// must be used to connect to the provider.
	// +optional
	Fs *FsSelector `json:"fs,omitempty"`

	// Env is a reference to an environment variable that contains credentials
	// that must be used to connect to the provider.
	// +optional
	Env *EnvSelector `json:"env,omitempty"`

	// A SecretRef is a reference to a secret key that contains the credentials
	// that must be used to connect to the provider.
	// +optional
	SecretRef *SecretKeySelector `json:"secretRef,omitempty"`
}

CommonCredentialSelectors provides common selectors for extracting credentials.

func (*CommonCredentialSelectors) DeepCopy

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

func (*CommonCredentialSelectors) DeepCopyInto

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

type CompositeDeletePolicy

type CompositeDeletePolicy string

A CompositeDeletePolicy determines how the composite resource should be deleted when the corresponding claim is deleted. +kubebuilder:validation:Enum=Background;Foreground

const (
	// CompositeDeleteBackground means the composite resource will be deleted using
	// the Background Propagation Policy when the claim is deleted.
	CompositeDeleteBackground CompositeDeletePolicy = "Background"

	// CompositeDeleteForeground means the composite resource will be deleted using
	// the Foreground Propagation Policy when the claim is deleted.
	CompositeDeleteForeground CompositeDeletePolicy = "Foreground"
)

type Condition

type Condition struct {
	// Type of this condition. At most one of each condition type may apply to
	// a resource at any point in time.
	Type ConditionType `json:"type"`

	// Status of this condition; is it currently True, False, or Unknown?
	Status corev1.ConditionStatus `json:"status"`

	// LastTransitionTime is the last time this condition transitioned from one
	// status to another.
	LastTransitionTime metav1.Time `json:"lastTransitionTime"`

	// A Reason for this condition's last transition from one status to another.
	Reason ConditionReason `json:"reason"`

	// A Message containing details about this condition's last transition from
	// one status to another, if any.
	// +optional
	Message string `json:"message,omitempty"`
}

A Condition that may apply to a resource.

func Available

func Available() Condition

Available returns a condition that indicates the resource is currently observed to be available for use.

func Creating

func Creating() Condition

Creating returns a condition that indicates the resource is currently being created.

func Deleting

func Deleting() Condition

Deleting returns a condition that indicates the resource is currently being deleted.

func ReconcileError

func ReconcileError(err error) Condition

ReconcileError returns a condition indicating that Crossplane encountered an error while reconciling the resource. This could mean Crossplane was unable to update the resource to reflect its desired state, or that Crossplane was unable to determine the current actual state of the resource.

func ReconcilePaused

func ReconcilePaused() Condition

ReconcilePaused returns a condition that indicates reconciliation on the managed resource is paused via the pause annotation.

func ReconcileSuccess

func ReconcileSuccess() Condition

ReconcileSuccess returns a condition indicating that Crossplane successfully completed the most recent reconciliation of the resource.

func Unavailable

func Unavailable() Condition

Unavailable returns a condition that indicates the resource is not currently available for use. Unavailable should be set only when Crossplane expects the resource to be available but knows it is not, for example because its API reports it is unhealthy.

func (*Condition) DeepCopy

func (in *Condition) DeepCopy() *Condition

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

func (*Condition) DeepCopyInto

func (in *Condition) DeepCopyInto(out *Condition)

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

func (Condition) Equal

func (c Condition) Equal(other Condition) bool

Equal returns true if the condition is identical to the supplied condition, ignoring the LastTransitionTime.

func (Condition) WithMessage

func (c Condition) WithMessage(msg string) Condition

WithMessage returns a condition by adding the provided message to existing condition.

type ConditionReason

type ConditionReason string

A ConditionReason represents the reason a resource is in a condition.

const (
	ReasonAvailable   ConditionReason = "Available"
	ReasonUnavailable ConditionReason = "Unavailable"
	ReasonCreating    ConditionReason = "Creating"
	ReasonDeleting    ConditionReason = "Deleting"
)

Reasons a resource is or is not ready.

const (
	ReasonReconcileSuccess ConditionReason = "ReconcileSuccess"
	ReasonReconcileError   ConditionReason = "ReconcileError"
	ReasonReconcilePaused  ConditionReason = "ReconcilePaused"
)

Reasons a resource is or is not synced.

type ConditionType

type ConditionType string

A ConditionType represents a condition a resource could be in.

const (
	// TypeReady resources are believed to be ready to handle work.
	TypeReady ConditionType = "Ready"

	// TypeSynced resources are believed to be in sync with the
	// Kubernetes resources that manage their lifecycle.
	TypeSynced ConditionType = "Synced"
)

Condition types.

type ConditionedStatus

type ConditionedStatus struct {
	// Conditions of the resource.
	// +optional
	Conditions []Condition `json:"conditions,omitempty"`
}

A ConditionedStatus reflects the observed status of a resource. Only one condition of each type may exist.

func NewConditionedStatus

func NewConditionedStatus(c ...Condition) *ConditionedStatus

NewConditionedStatus returns a stat with the supplied conditions set.

func (*ConditionedStatus) DeepCopy

func (in *ConditionedStatus) DeepCopy() *ConditionedStatus

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

func (*ConditionedStatus) DeepCopyInto

func (in *ConditionedStatus) DeepCopyInto(out *ConditionedStatus)

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

func (*ConditionedStatus) Equal

func (s *ConditionedStatus) Equal(other *ConditionedStatus) bool

Equal returns true if the status is identical to the supplied status, ignoring the LastTransitionTimes and order of statuses.

func (*ConditionedStatus) GetCondition

func (s *ConditionedStatus) GetCondition(ct ConditionType) Condition

GetCondition returns the condition for the given ConditionType if exists, otherwise returns nil

func (*ConditionedStatus) SetConditions

func (s *ConditionedStatus) SetConditions(c ...Condition)

SetConditions sets the supplied conditions, replacing any existing conditions of the same type. This is a no-op if all supplied conditions are identical, ignoring the last transition time, to those already set.

type Config

type Config struct {
	// APIVersion of the referenced config.
	APIVersion string `json:"apiVersion"`
	// Kind of the referenced config.
	Kind string `json:"kind"`
	// Name of the referenced config.
	Name string `json:"name"`
}

Config contains store config reference info.

func (*Config) DeepCopy

func (in *Config) DeepCopy() *Config

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

func (*Config) DeepCopyInto

func (in *Config) DeepCopyInto(out *Config)

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

type ConnectionSecretMetadata

type ConnectionSecretMetadata struct {
	// Labels are the labels/tags to be added to connection secret.
	// - For Kubernetes secrets, this will be used as "metadata.labels".
	// - It is up to Secret Store implementation for others store types.
	// +optional
	Labels map[string]string `json:"labels,omitempty"`
	// Annotations are the annotations to be added to connection secret.
	// - For Kubernetes secrets, this will be used as "metadata.annotations".
	// - It is up to Secret Store implementation for others store types.
	// +optional
	Annotations map[string]string `json:"annotations,omitempty"`
	// Type is the SecretType for the connection secret.
	// - Only valid for Kubernetes Secret Stores.
	// +optional
	Type *corev1.SecretType `json:"type,omitempty"`
}

ConnectionSecretMetadata represents metadata of a connection secret. Labels are used to track ownership of connection secrets and has to be supported for any secret store implementation.

func (*ConnectionSecretMetadata) DeepCopy

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

func (*ConnectionSecretMetadata) DeepCopyInto

func (in *ConnectionSecretMetadata) DeepCopyInto(out *ConnectionSecretMetadata)

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

func (*ConnectionSecretMetadata) GetOwnerUID

func (in *ConnectionSecretMetadata) GetOwnerUID() string

GetOwnerUID gets owner object uid.

func (*ConnectionSecretMetadata) SetOwnerUID

func (in *ConnectionSecretMetadata) SetOwnerUID(uid types.UID)

SetOwnerUID sets owner object uid label.

type CredentialsSource

type CredentialsSource string

A CredentialsSource is a source from which provider credentials may be acquired.

const (
	// CredentialsSourceNone indicates that a provider does not require
	// credentials.
	CredentialsSourceNone CredentialsSource = "None"

	// CredentialsSourceSecret indicates that a provider should acquire
	// credentials from a secret.
	CredentialsSourceSecret CredentialsSource = "Secret"

	// CredentialsSourceInjectedIdentity indicates that a provider should use
	// credentials via its (pod's) identity; i.e. via IRSA for AWS,
	// Workload Identity for GCP, Pod Identity for Azure, or in-cluster
	// authentication for the Kubernetes API.
	CredentialsSourceInjectedIdentity CredentialsSource = "InjectedIdentity"

	// CredentialsSourceEnvironment indicates that a provider should acquire
	// credentials from an environment variable.
	CredentialsSourceEnvironment CredentialsSource = "Environment"

	// CredentialsSourceFilesystem indicates that a provider should acquire
	// credentials from the filesystem.
	CredentialsSourceFilesystem CredentialsSource = "Filesystem"
)

type DeletionPolicy

type DeletionPolicy string

A DeletionPolicy determines what should happen to the underlying external resource when a managed resource is deleted. +kubebuilder:validation:Enum=Orphan;Delete

const (
	// DeletionOrphan means the external resource will be orphaned when its
	// managed resource is deleted.
	DeletionOrphan DeletionPolicy = "Orphan"

	// DeletionDelete means both the  external resource will be deleted when its
	// managed resource is deleted.
	DeletionDelete DeletionPolicy = "Delete"
)

type EnvSelector

type EnvSelector struct {
	// Name is the name of an environment variable.
	Name string `json:"name"`
}

EnvSelector selects an environment variable.

func (*EnvSelector) DeepCopy

func (in *EnvSelector) DeepCopy() *EnvSelector

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

func (*EnvSelector) DeepCopyInto

func (in *EnvSelector) DeepCopyInto(out *EnvSelector)

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

type FsSelector

type FsSelector struct {
	// Path is a filesystem path.
	Path string `json:"path"`
}

FsSelector selects a filesystem location.

func (*FsSelector) DeepCopy

func (in *FsSelector) DeepCopy() *FsSelector

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

func (*FsSelector) DeepCopyInto

func (in *FsSelector) DeepCopyInto(out *FsSelector)

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

type KubernetesAuthConfig

type KubernetesAuthConfig struct {
	// Source of the credentials.
	// +kubebuilder:validation:Enum=None;Secret;Environment;Filesystem
	Source CredentialsSource `json:"source"`

	// CommonCredentialSelectors provides common selectors for extracting
	// credentials.
	CommonCredentialSelectors `json:",inline"`
}

KubernetesAuthConfig required to authenticate to a K8s API. It expects a "kubeconfig" file to be provided.

func (*KubernetesAuthConfig) DeepCopy

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

func (*KubernetesAuthConfig) DeepCopyInto

func (in *KubernetesAuthConfig) DeepCopyInto(out *KubernetesAuthConfig)

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

type KubernetesSecretStoreConfig

type KubernetesSecretStoreConfig struct {
	// Credentials used to connect to the Kubernetes API.
	Auth KubernetesAuthConfig `json:"auth"`
}

KubernetesSecretStoreConfig represents the required configuration for a Kubernetes secret store.

func (*KubernetesSecretStoreConfig) DeepCopy

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

func (*KubernetesSecretStoreConfig) DeepCopyInto

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

type LocalSecretReference

type LocalSecretReference struct {
	// Name of the secret.
	Name string `json:"name"`
}

A LocalSecretReference is a reference to a secret in the same namespace as the referencer.

func (*LocalSecretReference) DeepCopy

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

func (*LocalSecretReference) DeepCopyInto

func (in *LocalSecretReference) DeepCopyInto(out *LocalSecretReference)

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

type ManagementPolicy

type ManagementPolicy string

A ManagementPolicy determines how should Crossplane controllers manage an external resource. +kubebuilder:validation:Enum=FullControl;ObserveOnly;OrphanOnDelete

const (
	// ManagementFullControl means the external resource is fully controlled
	// by Crossplane controllers, including its deletion.
	ManagementFullControl ManagementPolicy = "FullControl"

	// ManagementObserveOnly means the external resource will only be observed
	// by Crossplane controllers, but not modified or deleted.
	ManagementObserveOnly ManagementPolicy = "ObserveOnly"

	// ManagementOrphanOnDelete means the external resource will be orphaned
	// when its managed resource is deleted.
	ManagementOrphanOnDelete ManagementPolicy = "OrphanOnDelete"
)

type MergeOptions

type MergeOptions struct {
	// Specifies that already existing values in a merged map should be preserved
	// +optional
	KeepMapValues *bool `json:"keepMapValues,omitempty"`
	// Specifies that already existing elements in a merged slice should be preserved
	// +optional
	AppendSlice *bool `json:"appendSlice,omitempty"`
}

MergeOptions Specifies merge options on a field path

func (*MergeOptions) DeepCopy

func (in *MergeOptions) DeepCopy() *MergeOptions

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

func (*MergeOptions) DeepCopyInto

func (in *MergeOptions) DeepCopyInto(out *MergeOptions)

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

func (*MergeOptions) IsAppendSlice

func (mo *MergeOptions) IsAppendSlice() bool

IsAppendSlice returns true if mo.AppendSlice is set to true

func (*MergeOptions) MergoConfiguration

func (mo *MergeOptions) MergoConfiguration() []func(*mergo.Config)

MergoConfiguration the default behavior is to replace maps and slices

type PluginStoreConfig

type PluginStoreConfig struct {
	// Endpoint is the endpoint of the gRPC server.
	Endpoint string `json:"endpoint,omitempty"`
	// ConfigRef contains store config reference info.
	ConfigRef Config `json:"configRef,omitempty"`
}

PluginStoreConfig represents configuration of an External Secret Store.

func (*PluginStoreConfig) DeepCopy

func (in *PluginStoreConfig) DeepCopy() *PluginStoreConfig

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

func (*PluginStoreConfig) DeepCopyInto

func (in *PluginStoreConfig) DeepCopyInto(out *PluginStoreConfig)

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

type Policy

type Policy struct {
	// Resolve specifies when this reference should be resolved. The default
	// is 'IfNotPresent', which will attempt to resolve the reference only when
	// the corresponding field is not present. Use 'Always' to resolve the
	// reference on every reconcile.
	// +optional
	// +kubebuilder:validation:Enum=Always;IfNotPresent
	Resolve *ResolvePolicy `json:"resolve,omitempty"`

	// Resolution specifies whether resolution of this reference is required.
	// The default is 'Required', which means the reconcile will fail if the
	// reference cannot be resolved. 'Optional' means this reference will be
	// a no-op if it cannot be resolved.
	// +optional
	// +kubebuilder:default=Required
	// +kubebuilder:validation:Enum=Required;Optional
	Resolution *ResolutionPolicy `json:"resolution,omitempty"`
}

Policy represents the Resolve and Resolution policies of Reference instance.

func (*Policy) DeepCopy

func (in *Policy) DeepCopy() *Policy

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

func (*Policy) DeepCopyInto

func (in *Policy) DeepCopyInto(out *Policy)

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

func (*Policy) IsResolutionPolicyOptional

func (p *Policy) IsResolutionPolicyOptional() bool

IsResolutionPolicyOptional checks whether the resolution policy of relevant reference is Optional.

func (*Policy) IsResolvePolicyAlways

func (p *Policy) IsResolvePolicyAlways() bool

IsResolvePolicyAlways checks whether the resolution policy of relevant reference is Always.

type ProviderConfigStatus

type ProviderConfigStatus struct {
	ConditionedStatus `json:",inline"`

	// Users of this provider configuration.
	Users int64 `json:"users,omitempty"`
}

A ProviderConfigStatus defines the observed status of a ProviderConfig.

func (*ProviderConfigStatus) DeepCopy

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

func (*ProviderConfigStatus) DeepCopyInto

func (in *ProviderConfigStatus) DeepCopyInto(out *ProviderConfigStatus)

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

type ProviderConfigUsage

type ProviderConfigUsage struct {
	// ProviderConfigReference to the provider config being used.
	ProviderConfigReference Reference `json:"providerConfigRef"`

	// ResourceReference to the managed resource using the provider config.
	ResourceReference TypedReference `json:"resourceRef"`
}

A ProviderConfigUsage is a record that a particular managed resource is using a particular provider configuration.

func (*ProviderConfigUsage) DeepCopy

func (in *ProviderConfigUsage) DeepCopy() *ProviderConfigUsage

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

func (*ProviderConfigUsage) DeepCopyInto

func (in *ProviderConfigUsage) DeepCopyInto(out *ProviderConfigUsage)

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

type PublishConnectionDetailsTo

type PublishConnectionDetailsTo struct {
	// Name is the name of the connection secret.
	Name string `json:"name"`

	// Metadata is the metadata for connection secret.
	// +optional
	Metadata *ConnectionSecretMetadata `json:"metadata,omitempty"`

	// SecretStoreConfigRef specifies which secret store config should be used
	// for this ConnectionSecret.
	// +optional
	// +kubebuilder:default={"name": "default"}
	SecretStoreConfigRef *Reference `json:"configRef,omitempty"`
}

PublishConnectionDetailsTo represents configuration of a connection secret.

func (*PublishConnectionDetailsTo) DeepCopy

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

func (*PublishConnectionDetailsTo) DeepCopyInto

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

type Reference

type Reference struct {
	// Name of the referenced object.
	Name string `json:"name"`

	// Policies for referencing.
	// +optional
	Policy *Policy `json:"policy,omitempty"`
}

A Reference to a named object.

func (*Reference) DeepCopy

func (in *Reference) DeepCopy() *Reference

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

func (*Reference) DeepCopyInto

func (in *Reference) DeepCopyInto(out *Reference)

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

type ResolutionPolicy

type ResolutionPolicy string

ResolutionPolicy is a type for resolution policy.

type ResolvePolicy

type ResolvePolicy string

ResolvePolicy is a type for resolve policy.

type ResourceSpec

type ResourceSpec struct {
	// WriteConnectionSecretToReference specifies the namespace and name of a
	// Secret to which any connection details for this managed resource should
	// be written. Connection details frequently include the endpoint, username,
	// and password required to connect to the managed resource.
	// This field is planned to be replaced in a future release in favor of
	// PublishConnectionDetailsTo. Currently, both could be set independently
	// and connection details would be published to both without affecting
	// each other.
	// +optional
	WriteConnectionSecretToReference *SecretReference `json:"writeConnectionSecretToRef,omitempty"`

	// PublishConnectionDetailsTo specifies the connection secret config which
	// contains a name, metadata and a reference to secret store config to
	// which any connection details for this managed resource should be written.
	// Connection details frequently include the endpoint, username,
	// and password required to connect to the managed resource.
	// +optional
	PublishConnectionDetailsTo *PublishConnectionDetailsTo `json:"publishConnectionDetailsTo,omitempty"`

	// ProviderConfigReference specifies how the provider that will be used to
	// create, observe, update, and delete this managed resource should be
	// configured.
	// +kubebuilder:default={"name": "default"}
	ProviderConfigReference *Reference `json:"providerConfigRef,omitempty"`

	// ProviderReference specifies the provider that will be used to create,
	// observe, update, and delete this managed resource.
	// Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`
	ProviderReference *Reference `json:"providerRef,omitempty"`

	// 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.
	// ManagementPolicy specifies the level of control Crossplane has over the
	// managed external resource.
	// This field is planned to replace the DeletionPolicy field in a future
	// release. Currently, both could be set independently and non-default
	// values would be honored if the feature flag is enabled.
	// See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
	// +optional
	// +kubebuilder:default=FullControl
	ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"`

	// DeletionPolicy specifies what will happen to the underlying external
	// when this managed resource is deleted - either "Delete" or "Orphan" the
	// external resource.
	// This field is planned to be deprecated in favor of the ManagementPolicy
	// field in a future release. Currently, both could be set independently and
	// non-default values would be honored if the feature flag is enabled.
	// See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
	// +optional
	// +kubebuilder:default=Delete
	DeletionPolicy DeletionPolicy `json:"deletionPolicy,omitempty"`
}

A ResourceSpec defines the desired state of a managed resource.

func (*ResourceSpec) DeepCopy

func (in *ResourceSpec) DeepCopy() *ResourceSpec

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

func (*ResourceSpec) DeepCopyInto

func (in *ResourceSpec) DeepCopyInto(out *ResourceSpec)

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

type ResourceStatus

type ResourceStatus struct {
	ConditionedStatus `json:",inline"`
}

ResourceStatus represents the observed state of a managed resource.

func (*ResourceStatus) DeepCopy

func (in *ResourceStatus) DeepCopy() *ResourceStatus

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

func (*ResourceStatus) DeepCopyInto

func (in *ResourceStatus) DeepCopyInto(out *ResourceStatus)

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

type SecretKeySelector

type SecretKeySelector struct {
	SecretReference `json:",inline"`

	// The key to select.
	Key string `json:"key"`
}

A SecretKeySelector is a reference to a secret key in an arbitrary namespace.

func (*SecretKeySelector) DeepCopy

func (in *SecretKeySelector) DeepCopy() *SecretKeySelector

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

func (*SecretKeySelector) DeepCopyInto

func (in *SecretKeySelector) DeepCopyInto(out *SecretKeySelector)

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

type SecretReference

type SecretReference struct {
	// Name of the secret.
	Name string `json:"name"`

	// Namespace of the secret.
	Namespace string `json:"namespace"`
}

A SecretReference is a reference to a secret in an arbitrary namespace.

func (*SecretReference) DeepCopy

func (in *SecretReference) DeepCopy() *SecretReference

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

func (*SecretReference) DeepCopyInto

func (in *SecretReference) DeepCopyInto(out *SecretReference)

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

type SecretStoreConfig

type SecretStoreConfig struct {
	// Type configures which secret store to be used. Only the configuration
	// block for this store will be used and others will be ignored if provided.
	// Default is Kubernetes.
	// +optional
	// +kubebuilder:default=Kubernetes
	Type *SecretStoreType `json:"type,omitempty"`

	// DefaultScope used for scoping secrets for "cluster-scoped" resources.
	// If store type is "Kubernetes", this would mean the default namespace to
	// store connection secrets for cluster scoped resources.
	// In case of "Vault", this would be used as the default parent path.
	// Typically, should be set as Crossplane installation namespace.
	DefaultScope string `json:"defaultScope"`

	// Kubernetes configures a Kubernetes secret store.
	// If the "type" is "Kubernetes" but no config provided, in cluster config
	// will be used.
	// +optional
	Kubernetes *KubernetesSecretStoreConfig `json:"kubernetes,omitempty"`

	// Vault configures a Vault secret store.
	// Deprecated: This API is scheduled to be removed in a future release.
	// Vault should be used as a plugin going forward. See
	// https://github.com/crossplane-contrib/ess-plugin-vault for more information.
	// +optional
	Vault *VaultSecretStoreConfig `json:"vault,omitempty"`

	// Plugin configures External secret store as a plugin.
	// +optional
	Plugin *PluginStoreConfig `json:"plugin,omitempty"`
}

SecretStoreConfig represents configuration of a Secret Store.

func (*SecretStoreConfig) DeepCopy

func (in *SecretStoreConfig) DeepCopy() *SecretStoreConfig

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

func (*SecretStoreConfig) DeepCopyInto

func (in *SecretStoreConfig) DeepCopyInto(out *SecretStoreConfig)

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

type SecretStoreType

type SecretStoreType string

SecretStoreType represents a secret store type. +kubebuilder:validation:Enum=Kubernetes;Vault;Plugin

const (
	// SecretStoreKubernetes indicates that secret store type is
	// Kubernetes. In other words, connection secrets will be stored as K8s
	// Secrets.
	SecretStoreKubernetes SecretStoreType = "Kubernetes"

	// SecretStoreVault indicates that secret store type is Vault.
	SecretStoreVault SecretStoreType = "Vault"

	// SecretStorePlugin indicates that secret store type is Plugin and will be used with external secret stores.
	SecretStorePlugin SecretStoreType = "Plugin"
)

type Selector

type Selector struct {
	// MatchLabels ensures an object with matching labels is selected.
	MatchLabels map[string]string `json:"matchLabels,omitempty"`

	// MatchControllerRef ensures an object with the same controller reference
	// as the selecting object is selected.
	MatchControllerRef *bool `json:"matchControllerRef,omitempty"`

	// Policies for selection.
	// +optional
	Policy *Policy `json:"policy,omitempty"`
}

A Selector selects an object.

func (*Selector) DeepCopy

func (in *Selector) DeepCopy() *Selector

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

func (*Selector) DeepCopyInto

func (in *Selector) DeepCopyInto(out *Selector)

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

type TargetSpec

type TargetSpec struct {
	// WriteConnectionSecretToReference specifies the name of a Secret, in the
	// same namespace as this target, to which any connection details for this
	// target should be written or already exist. Connection secrets referenced
	// by a target should contain information for connecting to a resource that
	// allows for scheduling of workloads.
	// +optional
	WriteConnectionSecretToReference *LocalSecretReference `json:"connectionSecretRef,omitempty"`

	// A ResourceReference specifies an existing managed resource, in any
	// namespace, which this target should attempt to propagate a connection
	// secret from.
	// +optional
	ResourceReference *corev1.ObjectReference `json:"clusterRef,omitempty"`
}

A TargetSpec defines the common fields of objects used for exposing infrastructure to workloads that can be scheduled to.

Deprecated.

func (*TargetSpec) DeepCopy

func (in *TargetSpec) DeepCopy() *TargetSpec

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

func (*TargetSpec) DeepCopyInto

func (in *TargetSpec) DeepCopyInto(out *TargetSpec)

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

type TargetStatus

type TargetStatus struct {
	ConditionedStatus `json:",inline"`
}

A TargetStatus defines the observed status a target.

Deprecated.

func (*TargetStatus) DeepCopy

func (in *TargetStatus) DeepCopy() *TargetStatus

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

func (*TargetStatus) DeepCopyInto

func (in *TargetStatus) DeepCopyInto(out *TargetStatus)

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

type TypedReference

type TypedReference struct {
	// APIVersion of the referenced object.
	APIVersion string `json:"apiVersion"`

	// Kind of the referenced object.
	Kind string `json:"kind"`

	// Name of the referenced object.
	Name string `json:"name"`

	// UID of the referenced object.
	// +optional
	UID types.UID `json:"uid,omitempty"`
}

A TypedReference refers to an object by Name, Kind, and APIVersion. It is commonly used to reference cluster-scoped objects or objects where the namespace is already known.

func (*TypedReference) DeepCopy

func (in *TypedReference) DeepCopy() *TypedReference

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

func (*TypedReference) DeepCopyInto

func (in *TypedReference) DeepCopyInto(out *TypedReference)

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

func (*TypedReference) GetObjectKind

func (obj *TypedReference) GetObjectKind() schema.ObjectKind

GetObjectKind get the ObjectKind of a TypedReference.

func (*TypedReference) GroupVersionKind

func (obj *TypedReference) GroupVersionKind() schema.GroupVersionKind

GroupVersionKind gets the GroupVersionKind of a TypedReference.

func (*TypedReference) SetGroupVersionKind

func (obj *TypedReference) SetGroupVersionKind(gvk schema.GroupVersionKind)

SetGroupVersionKind sets the Kind and APIVersion of a TypedReference.

type UpdatePolicy

type UpdatePolicy string

An UpdatePolicy determines how something should be updated - either automatically (without human intervention) or manually. +kubebuilder:validation:Enum=Automatic;Manual

const (
	// UpdateAutomatic means the resource should be updated automatically,
	// without any human intervention.
	UpdateAutomatic UpdatePolicy = "Automatic"

	// UpdateManual means the resource requires human intervention to
	// update.
	UpdateManual UpdatePolicy = "Manual"
)

type VaultAuthConfig

type VaultAuthConfig struct {
	// Method configures which auth method will be used.
	Method VaultAuthMethod `json:"method"`
	// Token configures Token Auth for Vault.
	// +optional
	Token *VaultAuthTokenConfig `json:"token,omitempty"`
}

VaultAuthConfig required to authenticate to a Vault API.

func (*VaultAuthConfig) DeepCopy

func (in *VaultAuthConfig) DeepCopy() *VaultAuthConfig

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

func (*VaultAuthConfig) DeepCopyInto

func (in *VaultAuthConfig) DeepCopyInto(out *VaultAuthConfig)

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

type VaultAuthMethod

type VaultAuthMethod string

VaultAuthMethod represent a Vault authentication method. https://www.vaultproject.io/docs/auth

const (
	// VaultAuthToken indicates that "Token Auth" will be used to
	// authenticate to Vault.
	// https://www.vaultproject.io/docs/auth/token
	VaultAuthToken VaultAuthMethod = "Token"
)

type VaultAuthTokenConfig

type VaultAuthTokenConfig struct {
	// Source of the credentials.
	// +kubebuilder:validation:Enum=None;Secret;Environment;Filesystem
	Source CredentialsSource `json:"source"`

	// CommonCredentialSelectors provides common selectors for extracting
	// credentials.
	CommonCredentialSelectors `json:",inline"`
}

VaultAuthTokenConfig represents configuration for Vault Token Auth Method. https://www.vaultproject.io/docs/auth/token

func (*VaultAuthTokenConfig) DeepCopy

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

func (*VaultAuthTokenConfig) DeepCopyInto

func (in *VaultAuthTokenConfig) DeepCopyInto(out *VaultAuthTokenConfig)

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

type VaultCABundleConfig

type VaultCABundleConfig struct {
	// Source of the credentials.
	// +kubebuilder:validation:Enum=None;Secret;Environment;Filesystem
	Source CredentialsSource `json:"source"`

	// CommonCredentialSelectors provides common selectors for extracting
	// credentials.
	CommonCredentialSelectors `json:",inline"`
}

VaultCABundleConfig represents configuration for configuring a CA bundle.

func (*VaultCABundleConfig) DeepCopy

func (in *VaultCABundleConfig) DeepCopy() *VaultCABundleConfig

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

func (*VaultCABundleConfig) DeepCopyInto

func (in *VaultCABundleConfig) DeepCopyInto(out *VaultCABundleConfig)

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

type VaultKVVersion

type VaultKVVersion string

VaultKVVersion represent API version of the Vault KV engine https://www.vaultproject.io/docs/secrets/kv

const (
	// VaultKVVersionV1 indicates that Secret API is KV Secrets Engine Version 1
	// https://www.vaultproject.io/docs/secrets/kv/kv-v1
	VaultKVVersionV1 VaultKVVersion = "v1"

	// VaultKVVersionV2 indicates that Secret API is KV Secrets Engine Version 2
	// https://www.vaultproject.io/docs/secrets/kv/kv-v2
	VaultKVVersionV2 VaultKVVersion = "v2"
)

type VaultSecretStoreConfig

type VaultSecretStoreConfig struct {
	// Server is the url of the Vault server, e.g. "https://vault.acme.org"
	Server string `json:"server"`

	// MountPath is the mount path of the KV secrets engine.
	MountPath string `json:"mountPath"`

	// Version of the KV Secrets engine of Vault.
	// https://www.vaultproject.io/docs/secrets/kv
	// +optional
	// +kubebuilder:default=v2
	Version *VaultKVVersion `json:"version,omitempty"`

	// CABundle configures CA bundle for Vault Server.
	// +optional
	CABundle *VaultCABundleConfig `json:"caBundle,omitempty"`

	// Auth configures an authentication method for Vault.
	Auth VaultAuthConfig `json:"auth"`
}

VaultSecretStoreConfig represents the required configuration for a Vault secret store.

func (*VaultSecretStoreConfig) DeepCopy

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

func (*VaultSecretStoreConfig) DeepCopyInto

func (in *VaultSecretStoreConfig) DeepCopyInto(out *VaultSecretStoreConfig)

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