Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the olm v1alpha1 API group +kubebuilder:object:generate=true +groupName=olm.operatorframework.io
Index ¶
- Constants
- Variables
- type BundleMetadata
- type CRDUpgradeSafetyPolicy
- type CRDUpgradeSafetyPreflightConfig
- type CatalogSource
- type ClusterExtension
- type ClusterExtensionInstallConfig
- type ClusterExtensionInstallStatus
- type ClusterExtensionList
- type ClusterExtensionSpec
- type ClusterExtensionStatus
- type PreflightConfig
- type ServiceAccountReference
- type SourceConfig
- type UpgradeConstraintPolicy
Constants ¶
const ( // TODO(user): add more Types, here and into init() TypeInstalled = "Installed" TypeProgressing = "Progressing" // TypeDeprecated is a rollup condition that is present when // any of the deprecated conditions are present. TypeDeprecated = "Deprecated" TypePackageDeprecated = "PackageDeprecated" TypeChannelDeprecated = "ChannelDeprecated" TypeBundleDeprecated = "BundleDeprecated" ReasonSucceeded = "Succeeded" ReasonDeprecated = "Deprecated" ReasonFailed = "Failed" ReasonBlocked = "Blocked" ReasonRetrying = "Retrying" CRDUpgradeSafetyPolicyEnabled CRDUpgradeSafetyPolicy = "Enabled" CRDUpgradeSafetyPolicyDisabled CRDUpgradeSafetyPolicy = "Disabled" )
const SourceTypeCatalog = "Catalog"
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "olm.operatorframework.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
var ClusterExtensionKind = "ClusterExtension"
Functions ¶
This section is empty.
Types ¶
type BundleMetadata ¶ added in v0.10.0
type BundleMetadata struct {
// name is a required field and is a reference
// to the name of a bundle
Name string `json:"name"`
// version is a required field and is a reference
// to the version that this bundle represents
Version string `json:"version"`
}
func (*BundleMetadata) DeepCopy ¶ added in v0.10.0
func (in *BundleMetadata) DeepCopy() *BundleMetadata
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BundleMetadata.
func (*BundleMetadata) DeepCopyInto ¶ added in v0.10.0
func (in *BundleMetadata) DeepCopyInto(out *BundleMetadata)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CRDUpgradeSafetyPolicy ¶ added in v0.14.0
type CRDUpgradeSafetyPolicy string
type CRDUpgradeSafetyPreflightConfig ¶ added in v0.11.0
type CRDUpgradeSafetyPreflightConfig struct {
// policy is used to configure the state of the CRD Upgrade Safety pre-flight check.
//
// This field is required when the spec.install.preflight.crdUpgradeSafety field is
// specified.
//
// Allowed values are ["Enabled", "Disabled"]. The default value is "Enabled".
//
// When set to "Disabled", the CRD Upgrade Safety pre-flight check will be skipped
// when performing an upgrade operation. This should be used with caution as
// unintended consequences such as data loss can occur.
//
// When set to "Enabled", the CRD Upgrade Safety pre-flight check will be run when
// performing an upgrade operation.
//
//+kubebuilder:validation:Enum:="Enabled";"Disabled"
//+kubebuilder:default:=Enabled
Policy CRDUpgradeSafetyPolicy `json:"policy"`
}
CRDUpgradeSafetyPreflightConfig is the configuration for CRD upgrade safety preflight check.
func (*CRDUpgradeSafetyPreflightConfig) DeepCopy ¶ added in v0.11.0
func (in *CRDUpgradeSafetyPreflightConfig) DeepCopy() *CRDUpgradeSafetyPreflightConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CRDUpgradeSafetyPreflightConfig.
func (*CRDUpgradeSafetyPreflightConfig) DeepCopyInto ¶ added in v0.11.0
func (in *CRDUpgradeSafetyPreflightConfig) DeepCopyInto(out *CRDUpgradeSafetyPreflightConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CatalogSource ¶ added in v0.14.0
type CatalogSource struct {
// packageName is a reference to the name of the package to be installed
// and is used to filter the content from catalogs.
//
// This field is required, immutable and follows the DNS subdomain name
// standard as defined in [RFC 1123]. This means that valid entries:
// - Contain no more than 253 characters
// - Contain only lowercase alphanumeric characters, '-', or '.'
// - Start with an alphanumeric character
// - End with an alphanumeric character
//
// Some examples of valid values are:
// - some-package
// - 123-package
// - 1-package-2
// - somepackage
//
// Some examples of invalid values are:
// - -some-package
// - some-package-
// - thisisareallylongpackagenamethatisgreaterthanthemaximumlength
// - some.package
//
// [RFC 1123]: https://tools.ietf.org/html/rfc1123
//
//+kubebuilder:validation:MaxLength:=253
//+kubebuilder:validation:Pattern:=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="packageName is immutable"
PackageName string `json:"packageName"`
// version is an optional semver constraint (a specific version or range of versions). When unspecified, the latest version available will be installed.
//
// Acceptable version ranges are no longer than 64 characters.
// Version ranges are composed of comma- or space-delimited values and one or
// more comparison operators, known as comparison strings. Additional
// comparison strings can be added using the OR operator (||).
//
// # Range Comparisons
//
// To specify a version range, you can use a comparison string like ">=3.0,
// <3.6". When specifying a range, automatic updates will occur within that
// range. The example comparison string means "install any version greater than
// or equal to 3.0.0 but less than 3.6.0.". It also states intent that if any
// upgrades are available within the version range after initial installation,
// those upgrades should be automatically performed.
//
// # Pinned Versions
//
// To specify an exact version to install you can use a version range that
// "pins" to a specific version. When pinning to a specific version, no
// automatic updates will occur. An example of a pinned version range is
// "0.6.0", which means "only install version 0.6.0 and never
// upgrade from this version".
//
// # Basic Comparison Operators
//
// The basic comparison operators and their meanings are:
// - "=", equal (not aliased to an operator)
// - "!=", not equal
// - "<", less than
// - ">", greater than
// - ">=", greater than OR equal to
// - "<=", less than OR equal to
//
// # Wildcard Comparisons
//
// You can use the "x", "X", and "*" characters as wildcard characters in all
// comparison operations. Some examples of using the wildcard characters:
// - "1.2.x", "1.2.X", and "1.2.*" is equivalent to ">=1.2.0, < 1.3.0"
// - ">= 1.2.x", ">= 1.2.X", and ">= 1.2.*" is equivalent to ">= 1.2.0"
// - "<= 2.x", "<= 2.X", and "<= 2.*" is equivalent to "< 3"
// - "x", "X", and "*" is equivalent to ">= 0.0.0"
//
// # Patch Release Comparisons
//
// When you want to specify a minor version up to the next major version you
// can use the "~" character to perform patch comparisons. Some examples:
// - "~1.2.3" is equivalent to ">=1.2.3, <1.3.0"
// - "~1" and "~1.x" is equivalent to ">=1, <2"
// - "~2.3" is equivalent to ">=2.3, <2.4"
// - "~1.2.x" is equivalent to ">=1.2.0, <1.3.0"
//
// # Major Release Comparisons
//
// You can use the "^" character to make major release comparisons after a
// stable 1.0.0 version is published. If there is no stable version published, // minor versions define the stability level. Some examples:
// - "^1.2.3" is equivalent to ">=1.2.3, <2.0.0"
// - "^1.2.x" is equivalent to ">=1.2.0, <2.0.0"
// - "^2.3" is equivalent to ">=2.3, <3"
// - "^2.x" is equivalent to ">=2.0.0, <3"
// - "^0.2.3" is equivalent to ">=0.2.3, <0.3.0"
// - "^0.2" is equivalent to ">=0.2.0, <0.3.0"
// - "^0.0.3" is equvalent to ">=0.0.3, <0.0.4"
// - "^0.0" is equivalent to ">=0.0.0, <0.1.0"
// - "^0" is equivalent to ">=0.0.0, <1.0.0"
//
// # OR Comparisons
// You can use the "||" character to represent an OR operation in the version
// range. Some examples:
// - ">=1.2.3, <2.0.0 || >3.0.0"
// - "^0 || ^3 || ^5"
//
// For more information on semver, please see https://semver.org/
//
//+kubebuilder:validation:MaxLength:=64
//+kubebuilder:validation:Pattern=`^(\s*(=||!=|>|<|>=|=>|<=|=<|~|~>|\^)\s*(v?(0|[1-9]\d*|[x|X|\*])(\.(0|[1-9]\d*|x|X|\*]))?(\.(0|[1-9]\d*|x|X|\*))?(-([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?(\+([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?)\s*)((?:\s+|,\s*|\s*\|\|\s*)(=||!=|>|<|>=|=>|<=|=<|~|~>|\^)\s*(v?(0|[1-9]\d*|x|X|\*])(\.(0|[1-9]\d*|x|X|\*))?(\.(0|[1-9]\d*|x|X|\*]))?(-([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?(\+([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?)\s*)*$`
//+optional
Version string `json:"version,omitempty"`
// channels is an optional reference to a set of channels belonging to
// the package specified in the packageName field.
//
// A "channel" is a package author defined stream of updates for an extension.
//
// When specified, it is used to constrain the set of installable bundles and
// the automated upgrade path. This constraint is an AND operation with the
// version field. For example:
// - Given channel is set to "foo"
// - Given version is set to ">=1.0.0, <1.5.0"
// - Only bundles that exist in channel "foo" AND satisfy the version range comparison will be considered installable
// - Automatic upgrades will be constrained to upgrade edges defined by the selected channel
//
// When unspecified, upgrade edges across all channels will be used to identify valid automatic upgrade paths.
//
// This field follows the DNS subdomain name standard as defined in [RFC
// 1123]. This means that valid entries:
// - Contain no more than 253 characters
// - Contain only lowercase alphanumeric characters, '-', or '.'
// - Start with an alphanumeric character
// - End with an alphanumeric character
//
// Some examples of valid values are:
// - 1.1.x
// - alpha
// - stable
// - stable-v1
// - v1-stable
// - dev-preview
// - preview
// - community
//
// Some examples of invalid values are:
// - -some-channel
// - some-channel-
// - thisisareallylongchannelnamethatisgreaterthanthemaximumlength
// - original_40
// - --default-channel
//
// [RFC 1123]: https://tools.ietf.org/html/rfc1123
//
//+kubebuilder:validation:items:MaxLength:=253
//+kubebuilder:validation:items:Pattern:=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
//+optional
Channels []string `json:"channels,omitempty"`
// selector is an optional field that can be used
// to filter the set of ClusterCatalogs used in the bundle
// selection process.
//
// When unspecified, all ClusterCatalogs will be used in
// the bundle selection process.
//
//+optional
Selector metav1.LabelSelector `json:"selector,omitempty"`
// upgradeConstraintPolicy is an optional field that controls whether
// the upgrade path(s) defined in the catalog are enforced for the package
// referenced in the packageName field.
//
// Allowed values are: ["CatalogProvided", "SelfCertified"].
//
// When this field is set to "CatalogProvided", automatic upgrades will only occur
// when upgrade constraints specified by the package author are met.
//
// When this field is set to "SelfCertified", the upgrade constraints specified by
// the package author are ignored. This allows for upgrades and downgrades to
// any version of the package. This is considered a dangerous operation as it
// can lead to unknown and potentially disastrous outcomes, such as data
// loss. It is assumed that users have independently verified changes when
// using this option.
//
// If unspecified, the default value is "CatalogProvided".
//
//+kubebuilder:validation:Enum:=CatalogProvided;SelfCertified
//+kubebuilder:default:=CatalogProvided
//+optional
UpgradeConstraintPolicy UpgradeConstraintPolicy `json:"upgradeConstraintPolicy,omitempty"`
}
CatalogSource defines the required fields for catalog source.
func (*CatalogSource) DeepCopy ¶ added in v0.14.0
func (in *CatalogSource) DeepCopy() *CatalogSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CatalogSource.
func (*CatalogSource) DeepCopyInto ¶ added in v0.14.0
func (in *CatalogSource) DeepCopyInto(out *CatalogSource)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterExtension ¶ added in v0.9.0
type ClusterExtension struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec ClusterExtensionSpec `json:"spec,omitempty"`
Status ClusterExtensionStatus `json:"status,omitempty"`
}
ClusterExtension is the Schema for the clusterextensions API
func (*ClusterExtension) DeepCopy ¶ added in v0.9.0
func (in *ClusterExtension) DeepCopy() *ClusterExtension
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExtension.
func (*ClusterExtension) DeepCopyInto ¶ added in v0.9.0
func (in *ClusterExtension) DeepCopyInto(out *ClusterExtension)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterExtension) DeepCopyObject ¶ added in v0.9.0
func (in *ClusterExtension) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterExtensionInstallConfig ¶ added in v0.15.0
type ClusterExtensionInstallConfig struct {
// namespace is a reference to the Namespace in which the bundle of
// content for the package referenced in the packageName field will be applied.
// The bundle may contain cluster-scoped resources or resources that are
// applied to other Namespaces. This Namespace is expected to exist.
//
// namespace is required, immutable, and follows the DNS label standard
// as defined in [RFC 1123]. This means that valid values:
// - Contain no more than 63 characters
// - Contain only lowercase alphanumeric characters or '-'
// - Start with an alphanumeric character
// - End with an alphanumeric character
//
// Some examples of valid values are:
// - some-namespace
// - 123-namespace
// - 1-namespace-2
// - somenamespace
//
// Some examples of invalid values are:
// - -some-namespace
// - some-namespace-
// - thisisareallylongnamespacenamethatisgreaterthanthemaximumlength
// - some.namespace
//
// [RFC 1123]: https://tools.ietf.org/html/rfc1123
//
//+kubebuilder:validation:Pattern:=^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
//+kubebuilder:validation:MaxLength:=63
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="namespace is immutable"
Namespace string `json:"namespace"`
// serviceAccount is a required reference to a ServiceAccount that exists
// in the installNamespace. The provided ServiceAccount is used to install and
// manage the content for the package specified in the packageName field.
//
// In order to successfully install and manage the content for the package,
// the ServiceAccount provided via this field should be configured with the
// appropriate permissions to perform the necessary operations on all the
// resources that are included in the bundle of content being applied.
ServiceAccount ServiceAccountReference `json:"serviceAccount"`
// preflight is an optional field that can be used to configure the preflight checks run before installation or upgrade of the content for the package specified in the packageName field.
//
// When specified, it overrides the default configuration of the preflight checks that are required to execute successfully during an install/upgrade operation.
//
// When not specified, the default configuration for each preflight check will be used.
//
//+optional
Preflight *PreflightConfig `json:"preflight,omitempty"`
}
ClusterExtensionInstallConfig is a union which selects the clusterExtension installation config. ClusterExtensionInstallConfig requires the namespace and serviceAccount which should be used for the installation of packages. +union
func (*ClusterExtensionInstallConfig) DeepCopy ¶ added in v0.15.0
func (in *ClusterExtensionInstallConfig) DeepCopy() *ClusterExtensionInstallConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExtensionInstallConfig.
func (*ClusterExtensionInstallConfig) DeepCopyInto ¶ added in v0.15.0
func (in *ClusterExtensionInstallConfig) DeepCopyInto(out *ClusterExtensionInstallConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterExtensionInstallStatus ¶ added in v0.15.0
type ClusterExtensionInstallStatus struct {
// bundle is a representation of the currently installed bundle.
//
// A "bundle" is a versioned set of content that represents the resources that
// need to be applied to a cluster to install a package.
Bundle BundleMetadata `json:"bundle"`
}
func (*ClusterExtensionInstallStatus) DeepCopy ¶ added in v0.15.0
func (in *ClusterExtensionInstallStatus) DeepCopy() *ClusterExtensionInstallStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExtensionInstallStatus.
func (*ClusterExtensionInstallStatus) DeepCopyInto ¶ added in v0.15.0
func (in *ClusterExtensionInstallStatus) DeepCopyInto(out *ClusterExtensionInstallStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterExtensionList ¶ added in v0.9.0
type ClusterExtensionList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ClusterExtension `json:"items"`
}
ClusterExtensionList contains a list of ClusterExtension
func (*ClusterExtensionList) DeepCopy ¶ added in v0.9.0
func (in *ClusterExtensionList) DeepCopy() *ClusterExtensionList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExtensionList.
func (*ClusterExtensionList) DeepCopyInto ¶ added in v0.9.0
func (in *ClusterExtensionList) DeepCopyInto(out *ClusterExtensionList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterExtensionList) DeepCopyObject ¶ added in v0.9.0
func (in *ClusterExtensionList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterExtensionSpec ¶ added in v0.9.0
type ClusterExtensionSpec struct {
// source is a required field which selects the installation source of content
// for this ClusterExtension. Selection is performed by setting the sourceType.
//
// Catalog is currently the only implemented sourceType, and setting the
// sourcetype to "Catalog" requires the catalog field to also be defined.
//
// Below is a minimal example of a source definition (in yaml):
//
// source:
// sourceType: Catalog
// catalog:
// packageName: example-package
//
Source SourceConfig `json:"source"`
// install is a required field used to configure the installation options
// for the ClusterExtension such as the installation namespace,
// the service account and the pre-flight check configuration.
//
// Below is a minimal example of an installation definition (in yaml):
// install:
// namespace: example-namespace
// serviceAccount:
// name: example-sa
Install ClusterExtensionInstallConfig `json:"install"`
}
ClusterExtensionSpec defines the desired state of ClusterExtension
func (*ClusterExtensionSpec) DeepCopy ¶ added in v0.9.0
func (in *ClusterExtensionSpec) DeepCopy() *ClusterExtensionSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExtensionSpec.
func (*ClusterExtensionSpec) DeepCopyInto ¶ added in v0.9.0
func (in *ClusterExtensionSpec) DeepCopyInto(out *ClusterExtensionSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterExtensionStatus ¶ added in v0.9.0
type ClusterExtensionStatus struct {
Install *ClusterExtensionInstallStatus `json:"install,omitempty"`
// conditions is a representation of the current state for this ClusterExtension.
// The status is represented by a set of "conditions".
//
// Each condition is generally structured in the following format:
// - Type: a string representation of the condition type. More or less the condition "name".
// - Status: a string representation of the state of the condition. Can be one of ["True", "False", "Unknown"].
// - Reason: a string representation of the reason for the current state of the condition. Typically useful for building automation around particular Type+Reason combinations.
// - Message: a human readable message that further elaborates on the state of the condition
//
// The global set of condition types are:
// - "Installed", represents whether or not the a bundle has been installed for this ClusterExtension
// - "Progressing", represents whether or not the ClusterExtension is progressing towards a new state
//
// When the ClusterExtension is sourced from a catalog, the following conditions are also possible:
// - "Deprecated", represents an aggregation of the PackageDeprecated, ChannelDeprecated, and BundleDeprecated condition types
// - "PackageDeprecated", represents whether or not the package specified in the spec.source.catalog.packageName field has been deprecated
// - "ChannelDeprecated", represents whether or not any channel specified in spec.source.catalog.channels has been deprecated
// - "BundleDeprecated", represents whether or not the installed bundle is deprecated
//
// The current set of reasons are:
// - "Succeeded", this reason is set on the "Installed" and "Progressing" conditions when initial installation and progressing to a new state is successful
// - "Failed", this reason is set on the "Installed" condition when an error has occurred while performing the initial installation.
// - "Blocked", this reason is set on the "Progressing" condition when the ClusterExtension controller has encountered an error that requires manual intervention for recovery
// - "Retrying", this reason is set on the "Progressing" condition when the ClusterExtension controller has encountered an error that could be resolved on subsequent reconciliation attempts
// - "Deprecated", this reason is set on the "Deprecated", "PackageDeprecated", "ChannelDeprecated", and "BundleDeprecated" conditions to signal that the installed package has been deprecated at the particular scope
//
//
// +patchMergeKey=type
// +patchStrategy=merge
// +listType=map
// +listMapKey=type
Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}
ClusterExtensionStatus defines the observed state of ClusterExtension.
func (*ClusterExtensionStatus) DeepCopy ¶ added in v0.9.0
func (in *ClusterExtensionStatus) DeepCopy() *ClusterExtensionStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterExtensionStatus.
func (*ClusterExtensionStatus) DeepCopyInto ¶ added in v0.9.0
func (in *ClusterExtensionStatus) DeepCopyInto(out *ClusterExtensionStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PreflightConfig ¶ added in v0.11.0
type PreflightConfig struct {
// crdUpgradeSafety is used to configure the CRD Upgrade Safety pre-flight
// checks that run prior to upgrades of installed content.
//
// The CRD Upgrade Safety pre-flight check safeguards from unintended
// consequences of upgrading a CRD, such as data loss.
//
// This field is required if the spec.install.preflight field is specified.
CRDUpgradeSafety *CRDUpgradeSafetyPreflightConfig `json:"crdUpgradeSafety"`
}
PreflightConfig holds the configuration for the preflight checks. If used, at least one preflight check must be non-nil. +kubebuilder:validation:XValidation:rule="has(self.crdUpgradeSafety)",message="at least one of [crdUpgradeSafety] are required when preflight is specified"
func (*PreflightConfig) DeepCopy ¶ added in v0.11.0
func (in *PreflightConfig) DeepCopy() *PreflightConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreflightConfig.
func (*PreflightConfig) DeepCopyInto ¶ added in v0.11.0
func (in *PreflightConfig) DeepCopyInto(out *PreflightConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ServiceAccountReference ¶ added in v0.12.0
type ServiceAccountReference struct {
// name is a required, immutable reference to the name of the ServiceAccount
// to be used for installation and management of the content for the package
// specified in the packageName field.
//
// This ServiceAccount is expected to exist in the installNamespace.
//
// This field follows the DNS subdomain name standard as defined in [RFC
// 1123]. This means that valid values:
// - Contain no more than 253 characters
// - Contain only lowercase alphanumeric characters, '-', or '.'
// - Start with an alphanumeric character
// - End with an alphanumeric character
//
// Some examples of valid values are:
// - some-serviceaccount
// - 123-serviceaccount
// - 1-serviceaccount-2
// - someserviceaccount
// - some.serviceaccount
//
// Some examples of invalid values are:
// - -some-serviceaccount
// - some-serviceaccount-
//
// [RFC 1123]: https://tools.ietf.org/html/rfc1123
//
//+kubebuilder:validation:MaxLength:=253
//+kubebuilder:validation:Pattern:=^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="name is immutable"
Name string `json:"name"`
}
ServiceAccountReference references a serviceAccount.
func (*ServiceAccountReference) DeepCopy ¶ added in v0.12.0
func (in *ServiceAccountReference) DeepCopy() *ServiceAccountReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountReference.
func (*ServiceAccountReference) DeepCopyInto ¶ added in v0.12.0
func (in *ServiceAccountReference) DeepCopyInto(out *ServiceAccountReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SourceConfig ¶ added in v0.14.0
type SourceConfig struct {
// sourceType is a required reference to the type of install source.
//
// Allowed values are ["Catalog"]
//
// When this field is set to "Catalog", information for determining the appropriate
// bundle of content to install will be fetched from ClusterCatalog resources existing
// on the cluster. When using the Catalog sourceType, the catalog field must also be set.
//
// +unionDiscriminator
// +kubebuilder:validation:Enum:="Catalog"
SourceType string `json:"sourceType"`
// catalog is used to configure how information is sourced from a catalog. This field must be defined when sourceType is set to "Catalog",
// and must be the only field defined for this sourceType.
//
// +optional.
Catalog *CatalogSource `json:"catalog,omitempty"`
}
SourceConfig is a discriminated union which selects the installation source. +union +kubebuilder:validation:XValidation:rule="self.sourceType == 'Catalog' && has(self.catalog)",message="sourceType Catalog requires catalog field"
func (*SourceConfig) DeepCopy ¶ added in v0.14.0
func (in *SourceConfig) DeepCopy() *SourceConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceConfig.
func (*SourceConfig) DeepCopyInto ¶ added in v0.14.0
func (in *SourceConfig) DeepCopyInto(out *SourceConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UpgradeConstraintPolicy ¶ added in v0.7.0
type UpgradeConstraintPolicy string
const ( // The extension will only upgrade if the new version satisfies // the upgrade constraints set by the package author. UpgradeConstraintPolicyCatalogProvided UpgradeConstraintPolicy = "CatalogProvided" // Unsafe option which allows an extension to be // upgraded or downgraded to any available version of the package and // ignore the upgrade path designed by package authors. // This assumes that users independently verify the outcome of the changes. // Use with caution as this can lead to unknown and potentially // disastrous results such as data loss. UpgradeConstraintPolicySelfCertified UpgradeConstraintPolicy = "SelfCertified" )