v1beta1

package
v0.0.0-...-2651a2a Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package v1beta1 is the v1beta1 version of the API. +groupName=cdi.kubevirt.io

Index

Constants

View Source
const (
	// AnnPrePopulated is a PVC annotation telling the datavolume controller that the PVC is already populated
	AnnPrePopulated = core.GroupName + "/storage.prePopulated"
	// AnnCheckStaticVolume checks if a statically allocated PV exists before creating the target PVC.
	// If so, PVC is still created but population is skipped
	AnnCheckStaticVolume = core.GroupName + "/storage.checkStaticVolume"
)
View Source
const (
	// RegistrySchemeDocker is docker scheme prefix
	RegistrySchemeDocker = "docker"
	// RegistrySchemeOci is oci-archive scheme prefix
	RegistrySchemeOci = "oci-archive"
)
View Source
const (
	// PhaseUnset represents a data volume with no current phase
	PhaseUnset DataVolumePhase = ""

	// Pending represents a data volume with a current phase of Pending
	Pending DataVolumePhase = "Pending"
	// PVCBound represents a data volume with a current phase of PVCBound
	PVCBound DataVolumePhase = "PVCBound"

	// ImportScheduled represents a data volume with a current phase of ImportScheduled
	ImportScheduled DataVolumePhase = "ImportScheduled"

	// ImportInProgress represents a data volume with a current phase of ImportInProgress
	ImportInProgress DataVolumePhase = "ImportInProgress"

	// CloneScheduled represents a data volume with a current phase of CloneScheduled
	CloneScheduled DataVolumePhase = "CloneScheduled"

	// CloneInProgress represents a data volume with a current phase of CloneInProgress
	CloneInProgress DataVolumePhase = "CloneInProgress"

	// SnapshotForSmartCloneInProgress represents a data volume with a current phase of SnapshotForSmartCloneInProgress
	SnapshotForSmartCloneInProgress DataVolumePhase = "SnapshotForSmartCloneInProgress"

	// CloneFromSnapshotSourceInProgress represents a data volume with a current phase of CloneFromSnapshotSourceInProgress
	CloneFromSnapshotSourceInProgress DataVolumePhase = "CloneFromSnapshotSourceInProgress"

	// SmartClonePVCInProgress represents a data volume with a current phase of SmartClonePVCInProgress
	SmartClonePVCInProgress DataVolumePhase = "SmartClonePVCInProgress"

	// CSICloneInProgress represents a data volume with a current phase of CSICloneInProgress
	CSICloneInProgress DataVolumePhase = "CSICloneInProgress"

	// ExpansionInProgress is the state when a PVC is expanded
	ExpansionInProgress DataVolumePhase = "ExpansionInProgress"

	// NamespaceTransferInProgress is the state when a PVC is transferred
	NamespaceTransferInProgress DataVolumePhase = "NamespaceTransferInProgress"

	// UploadScheduled represents a data volume with a current phase of UploadScheduled
	UploadScheduled DataVolumePhase = "UploadScheduled"

	// UploadReady represents a data volume with a current phase of UploadReady
	UploadReady DataVolumePhase = "UploadReady"

	// WaitForFirstConsumer represents a data volume with a current phase of WaitForFirstConsumer
	WaitForFirstConsumer DataVolumePhase = "WaitForFirstConsumer"
	// PendingPopulation represents a data volume which should be populated by
	// the CDI populators but haven't created the pvc' yet
	PendingPopulation DataVolumePhase = "PendingPopulation"

	// Succeeded represents a DataVolumePhase of Succeeded
	Succeeded DataVolumePhase = "Succeeded"
	// Failed represents a DataVolumePhase of Failed
	Failed DataVolumePhase = "Failed"
	// Unknown represents a DataVolumePhase of Unknown
	Unknown DataVolumePhase = "Unknown"
	// Paused represents a DataVolumePhase of Paused
	Paused DataVolumePhase = "Paused"

	// PrepClaimInProgress represents a data volume with a current phase of PrepClaimInProgress
	PrepClaimInProgress DataVolumePhase = "PrepClaimInProgress"
	// RebindInProgress represents a data volume with a current phase of RebindInProgress
	RebindInProgress DataVolumePhase = "RebindInProgress"

	// DataVolumeReady is the condition that indicates if the data volume is ready to be consumed.
	DataVolumeReady DataVolumeConditionType = "Ready"
	// DataVolumeBound is the condition that indicates if the underlying PVC is bound or not.
	DataVolumeBound DataVolumeConditionType = "Bound"
	// DataVolumeRunning is the condition that indicates if the import/upload/clone container is running.
	DataVolumeRunning DataVolumeConditionType = "Running"
)
View Source
const (
	// VolumeImportSourceRef is import source for DataSourceRef for PVC
	VolumeImportSourceRef = "VolumeImportSource"
	// VolumeUploadSourceRef is upload source for DataSourceRef for PVC
	VolumeUploadSourceRef = "VolumeUploadSource"
	// VolumeCloneSourceRef is smart clone source for DataSourceRef for PVC
	VolumeCloneSourceRef = "VolumeCloneSource"
)
View Source
const DataVolumeCloneSourceSubresource = "source"

DataVolumeCloneSourceSubresource is the subresource checked for permission to clone

View Source
const (
	// DataVolumeDataSource is DataSource source reference for DataVolume
	DataVolumeDataSource = "DataSource"
)
View Source
const PersistentVolumeFromStorageProfile corev1.PersistentVolumeMode = "FromStorageProfile"

PersistentVolumeFromStorageProfile means the volume mode will be auto selected by CDI according to a matching StorageProfile

Variables

View Source
var (
	// SchemeBuilder tbd
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	// AddToScheme tbd
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var CDIGroupVersionKind = schema.GroupVersionKind{Group: SchemeGroupVersion.Group, Version: SchemeGroupVersion.Version, Kind: "CDI"}

CDIGroupVersionKind group version kind

View Source
var ErrNoTokenOkay = errors.New("proceeding without token is okay under the circumstances")

ErrNoTokenOkay indicates proceeding without token is allowed This error should only be of interest to entities that give out DataVolume tokens

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: core.GroupName, Version: "v1beta1"}

SchemeGroupVersion is group version used to register these objects

View Source
var TLSProfiles = map[TLSProfileType]*TLSProfileSpec{
	TLSProfileOldType: {
		Ciphers: []string{
			"TLS_AES_128_GCM_SHA256",
			"TLS_AES_256_GCM_SHA384",
			"TLS_CHACHA20_POLY1305_SHA256",
			"ECDHE-ECDSA-AES128-GCM-SHA256",
			"ECDHE-RSA-AES128-GCM-SHA256",
			"ECDHE-ECDSA-AES256-GCM-SHA384",
			"ECDHE-RSA-AES256-GCM-SHA384",
			"ECDHE-ECDSA-CHACHA20-POLY1305",
			"ECDHE-RSA-CHACHA20-POLY1305",
			"DHE-RSA-AES128-GCM-SHA256",
			"DHE-RSA-AES256-GCM-SHA384",
			"DHE-RSA-CHACHA20-POLY1305",
			"ECDHE-ECDSA-AES128-SHA256",
			"ECDHE-RSA-AES128-SHA256",
			"ECDHE-ECDSA-AES128-SHA",
			"ECDHE-RSA-AES128-SHA",
			"ECDHE-ECDSA-AES256-SHA384",
			"ECDHE-RSA-AES256-SHA384",
			"ECDHE-ECDSA-AES256-SHA",
			"ECDHE-RSA-AES256-SHA",
			"DHE-RSA-AES128-SHA256",
			"DHE-RSA-AES256-SHA256",
			"AES128-GCM-SHA256",
			"AES256-GCM-SHA384",
			"AES128-SHA256",
			"AES256-SHA256",
			"AES128-SHA",
			"AES256-SHA",
			"DES-CBC3-SHA",
		},
		MinTLSVersion: VersionTLS10,
	},
	TLSProfileIntermediateType: {
		Ciphers: []string{
			"TLS_AES_128_GCM_SHA256",
			"TLS_AES_256_GCM_SHA384",
			"TLS_CHACHA20_POLY1305_SHA256",
			"ECDHE-ECDSA-AES128-GCM-SHA256",
			"ECDHE-RSA-AES128-GCM-SHA256",
			"ECDHE-ECDSA-AES256-GCM-SHA384",
			"ECDHE-RSA-AES256-GCM-SHA384",
			"ECDHE-ECDSA-CHACHA20-POLY1305",
			"ECDHE-RSA-CHACHA20-POLY1305",
			"DHE-RSA-AES128-GCM-SHA256",
			"DHE-RSA-AES256-GCM-SHA384",
		},
		MinTLSVersion: VersionTLS12,
	},
	TLSProfileModernType: {
		Ciphers: []string{
			"TLS_AES_128_GCM_SHA256",
			"TLS_AES_256_GCM_SHA384",
			"TLS_CHACHA20_POLY1305_SHA256",
		},
		MinTLSVersion: VersionTLS13,
	},
}

TLSProfiles Contains a map of TLSProfileType names to TLSProfileSpec.

NOTE: The caller needs to make sure to check that these constants are valid for their binary. Not all entries map to values for all binaries. In the case of ties, the kube-apiserver wins. Do not fail, just be sure to allowlist only and everything will be ok.

Functions

func CanServiceAccountClonePVC

func CanServiceAccountClonePVC(createSar createSarFunc, pvcNamespace, pvcName, saNamespace, saName string) (bool, string, error)

CanServiceAccountClonePVC checks if a ServiceAccount has "appropriate" permission to clone from the given PVC

func CanServiceAccountCloneSnapshot

func CanServiceAccountCloneSnapshot(createSar createSarFunc, pvcNamespace, pvcName, saNamespace, saName string) (bool, string, error)

CanServiceAccountCloneSnapshot checks if a ServiceAccount has "appropriate" permission to clone from the given snapshot

func CanUserClonePVC

func CanUserClonePVC(createSar createSarFunc, sourceNamespace, pvcName, targetNamespace string,
	userInfo authentication.UserInfo) (bool, string, error)

CanUserClonePVC checks if a user has "appropriate" permission to clone from the given PVC

func CanUserCloneSnapshot

func CanUserCloneSnapshot(createSar createSarFunc, sourceNamespace, pvcName, targetNamespace string,
	userInfo authentication.UserInfo) (bool, string, error)

CanUserCloneSnapshot checks if a user has "appropriate" permission to clone from the given snapshot

func IsPopulated

func IsPopulated(pvc *corev1.PersistentVolumeClaim, getDvFunc func(name, namespace string) (*DataVolume, error)) (bool, error)

IsPopulated indicates if the persistent volume passed in has been fully populated. It follow the following logic 1. If the PVC is not owned by a DataVolume, return true, we assume someone else has properly populated the image 2. If the PVC is owned by a DataVolume, look up the DV and check the phase, if phase succeeded return true 3. If the PVC is owned by a DataVolume, look up the DV and check the phase, if phase !succeeded return false

func IsSucceededOrPendingPopulation

func IsSucceededOrPendingPopulation(pvc *corev1.PersistentVolumeClaim, getDvFunc func(name, namespace string) (*DataVolume, error)) (bool, error)

IsSucceededOrPendingPopulation indicates if the persistent volume passed in has been fully populated or is waiting for a consumer. It follow the following logic 1. If the PVC is not owned by a DataVolume, return true, we assume someone else has properly populated the image 2. If the PVC is owned by a DataVolume, look up the DV and check the phase, if phase succeeded or pending population return true 3. If the PVC is owned by a DataVolume, look up the DV and check the phase, if phase !succeeded return false

func IsWaitForFirstConsumerBeforePopulating

func IsWaitForFirstConsumerBeforePopulating(pvc *corev1.PersistentVolumeClaim, getDvFunc func(name, namespace string) (*DataVolume, error)) (bool, error)

IsWaitForFirstConsumerBeforePopulating indicates if the persistent volume passed in is in ClaimPending state and waiting for first consumer. It follow the following logic 1. If the PVC is not owned by a DataVolume, return false, we can not assume it will be populated 2. If the PVC is owned by a DataVolume, look up the DV and check the phase, if phase WaitForFirstConsumer return true 3. If the PVC is owned by a DataVolume, look up the DV and check the phase, if phase !WaitForFirstConsumer return false

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type AuthorizationHelperProxy

type AuthorizationHelperProxy interface {
	CreateSar(*authorization.SubjectAccessReview) (*authorization.SubjectAccessReview, error)
	GetNamespace(string) (*corev1.Namespace, error)
	GetDataSource(string, string) (*DataSource, error)
}

AuthorizationHelperProxy proxies calls to APIs used for DV authorization

type CDI

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

	Spec CDISpec `json:"spec"`
	// +optional
	Status CDIStatus `json:"status"`
}

CDI is the CDI Operator CRD +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:storageversion +kubebuilder:resource:shortName=cdi;cdis,scope=Cluster +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase"

func (*CDI) DeepCopy

func (in *CDI) DeepCopy() *CDI

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

func (*CDI) DeepCopyInto

func (in *CDI) DeepCopyInto(out *CDI)

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

func (*CDI) DeepCopyObject

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

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

func (CDI) SwaggerDoc

func (CDI) SwaggerDoc() map[string]string

type CDICertConfig

type CDICertConfig struct {
	// CA configuration
	// CA certs are kept in the CA bundle as long as they are valid
	CA *CertConfig `json:"ca,omitempty"`

	// Server configuration
	// Certs are rotated and discarded
	Server *CertConfig `json:"server,omitempty"`

	// Client configuration
	// Certs are rotated and discarded
	Client *CertConfig `json:"client,omitempty"`
}

CDICertConfig has the CertConfigs for CDI

func (*CDICertConfig) DeepCopy

func (in *CDICertConfig) DeepCopy() *CDICertConfig

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

func (*CDICertConfig) DeepCopyInto

func (in *CDICertConfig) DeepCopyInto(out *CDICertConfig)

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

func (CDICertConfig) SwaggerDoc

func (CDICertConfig) SwaggerDoc() map[string]string

type CDICloneStrategy

type CDICloneStrategy string

CDICloneStrategy defines the preferred method for performing a CDI clone (override snapshot?)

const (
	// CloneStrategyHostAssisted specifies slower, host-assisted copy
	CloneStrategyHostAssisted CDICloneStrategy = "copy"

	// CloneStrategySnapshot specifies snapshot-based copying
	CloneStrategySnapshot CDICloneStrategy = "snapshot"

	// CloneStrategyCsiClone specifies csi volume clone based cloning
	CloneStrategyCsiClone CDICloneStrategy = "csi-clone"
)

type CDIConfig

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

	Spec   CDIConfigSpec   `json:"spec"`
	Status CDIConfigStatus `json:"status,omitempty"`
}

CDIConfig provides a user configuration for CDI +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:storageversion +kubebuilder:resource:scope=Cluster

func (*CDIConfig) DeepCopy

func (in *CDIConfig) DeepCopy() *CDIConfig

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

func (*CDIConfig) DeepCopyInto

func (in *CDIConfig) DeepCopyInto(out *CDIConfig)

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

func (*CDIConfig) DeepCopyObject

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

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

func (CDIConfig) SwaggerDoc

func (CDIConfig) SwaggerDoc() map[string]string

type CDIConfigList

type CDIConfigList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items provides a list of CDIConfigs
	Items []CDIConfig `json:"items"`
}

CDIConfigList provides the needed parameters to do request a list of CDIConfigs from the system +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*CDIConfigList) DeepCopy

func (in *CDIConfigList) DeepCopy() *CDIConfigList

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

func (*CDIConfigList) DeepCopyInto

func (in *CDIConfigList) DeepCopyInto(out *CDIConfigList)

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

func (*CDIConfigList) DeepCopyObject

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

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

func (CDIConfigList) SwaggerDoc

func (CDIConfigList) SwaggerDoc() map[string]string

type CDIConfigSpec

type CDIConfigSpec struct {
	// Override the URL used when uploading to a DataVolume
	UploadProxyURLOverride *string `json:"uploadProxyURLOverride,omitempty"`
	// ImportProxy contains importer pod proxy configuration.
	// +optional
	ImportProxy *ImportProxy `json:"importProxy,omitempty"`
	// Override the storage class to used for scratch space during transfer operations. The scratch space storage class is determined in the following order: 1. value of scratchSpaceStorageClass, if that doesn't exist, use the default storage class, if there is no default storage class, use the storage class of the DataVolume, if no storage class specified, use no storage class for scratch space
	ScratchSpaceStorageClass *string `json:"scratchSpaceStorageClass,omitempty"`
	// ResourceRequirements describes the compute resource requirements.
	PodResourceRequirements *corev1.ResourceRequirements `json:"podResourceRequirements,omitempty"`
	// FeatureGates are a list of specific enabled feature gates
	FeatureGates []string `json:"featureGates,omitempty"`
	// FilesystemOverhead describes the space reserved for overhead when using Filesystem volumes. A value is between 0 and 1, if not defined it is 0.055 (5.5% overhead)
	FilesystemOverhead *FilesystemOverhead `json:"filesystemOverhead,omitempty"`
	// Preallocation controls whether storage for DataVolumes should be allocated in advance.
	Preallocation *bool `json:"preallocation,omitempty"`
	// InsecureRegistries is a list of TLS disabled registries
	InsecureRegistries []string `json:"insecureRegistries,omitempty"`
	// DataVolumeTTLSeconds is the time in seconds after DataVolume completion it can be garbage collected. Disabled by default.
	// +optional
	DataVolumeTTLSeconds *int32 `json:"dataVolumeTTLSeconds,omitempty"`
	// TLSSecurityProfile is used by operators to apply cluster-wide TLS security settings to operands.
	TLSSecurityProfile *TLSSecurityProfile `json:"tlsSecurityProfile,omitempty"`
	// The imagePullSecrets used to pull the container images
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// LogVerbosity overrides the default verbosity level used to initialize loggers
	// +optional
	LogVerbosity *int32 `json:"logVerbosity,omitempty"`
}

CDIConfigSpec defines specification for user configuration

func (*CDIConfigSpec) DeepCopy

func (in *CDIConfigSpec) DeepCopy() *CDIConfigSpec

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

func (*CDIConfigSpec) DeepCopyInto

func (in *CDIConfigSpec) DeepCopyInto(out *CDIConfigSpec)

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

func (CDIConfigSpec) SwaggerDoc

func (CDIConfigSpec) SwaggerDoc() map[string]string

type CDIConfigStatus

type CDIConfigStatus struct {
	// The calculated upload proxy URL
	UploadProxyURL *string `json:"uploadProxyURL,omitempty"`
	// UploadProxyCA is the certificate authority of the upload proxy
	UploadProxyCA *string `json:"uploadProxyCA,omitempty"`
	// ImportProxy contains importer pod proxy configuration.
	// +optional
	ImportProxy *ImportProxy `json:"importProxy,omitempty"`
	// The calculated storage class to be used for scratch space
	ScratchSpaceStorageClass string `json:"scratchSpaceStorageClass,omitempty"`
	// ResourceRequirements describes the compute resource requirements.
	DefaultPodResourceRequirements *corev1.ResourceRequirements `json:"defaultPodResourceRequirements,omitempty"`
	// FilesystemOverhead describes the space reserved for overhead when using Filesystem volumes. A percentage value is between 0 and 1
	FilesystemOverhead *FilesystemOverhead `json:"filesystemOverhead,omitempty"`
	// Preallocation controls whether storage for DataVolumes should be allocated in advance.
	Preallocation bool `json:"preallocation,omitempty"`
	// The imagePullSecrets used to pull the container images
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
}

CDIConfigStatus provides the most recently observed status of the CDI Config resource

func (*CDIConfigStatus) DeepCopy

func (in *CDIConfigStatus) DeepCopy() *CDIConfigStatus

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

func (*CDIConfigStatus) DeepCopyInto

func (in *CDIConfigStatus) DeepCopyInto(out *CDIConfigStatus)

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

func (CDIConfigStatus) SwaggerDoc

func (CDIConfigStatus) SwaggerDoc() map[string]string

type CDIList

type CDIList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items provides a list of CDIs
	Items []CDI `json:"items"`
}

CDIList provides the needed parameters to do request a list of CDIs from the system +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*CDIList) DeepCopy

func (in *CDIList) DeepCopy() *CDIList

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

func (*CDIList) DeepCopyInto

func (in *CDIList) DeepCopyInto(out *CDIList)

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

func (*CDIList) DeepCopyObject

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

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

func (CDIList) SwaggerDoc

func (CDIList) SwaggerDoc() map[string]string

type CDIPhase

type CDIPhase string

CDIPhase is the current phase of the CDI deployment

type CDIPriorityClass

type CDIPriorityClass string

CDIPriorityClass defines the priority class of the CDI control plane.

type CDISpec

type CDISpec struct {
	// +kubebuilder:validation:Enum=Always;IfNotPresent;Never
	// PullPolicy describes a policy for if/when to pull a container image
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty" valid:"required"`
	// +kubebuilder:validation:Enum=RemoveWorkloads;BlockUninstallIfWorkloadsExist
	// CDIUninstallStrategy defines the state to leave CDI on uninstall
	UninstallStrategy *CDIUninstallStrategy `json:"uninstallStrategy,omitempty"`
	// Selectors and tolerations that should apply to cdi infrastructure components
	Infra ComponentConfig `json:"infra,omitempty"`
	// Restrict on which nodes CDI workload pods will be scheduled
	Workloads           sdkapi.NodePlacement `json:"workload,omitempty"`
	CustomizeComponents CustomizeComponents  `json:"customizeComponents,omitempty"`
	// Clone strategy override: should we use a host-assisted copy even if snapshots are available?
	// +kubebuilder:validation:Enum="copy";"snapshot";"csi-clone"
	CloneStrategyOverride *CDICloneStrategy `json:"cloneStrategyOverride,omitempty"`
	// CDIConfig at CDI level
	Config *CDIConfigSpec `json:"config,omitempty"`
	// certificate configuration
	CertConfig *CDICertConfig `json:"certConfig,omitempty"`
	// PriorityClass of the CDI control plane
	PriorityClass *CDIPriorityClass `json:"priorityClass,omitempty"`
}

CDISpec defines our specification for the CDI installation

func (*CDISpec) DeepCopy

func (in *CDISpec) DeepCopy() *CDISpec

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

func (*CDISpec) DeepCopyInto

func (in *CDISpec) DeepCopyInto(out *CDISpec)

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

func (CDISpec) SwaggerDoc

func (CDISpec) SwaggerDoc() map[string]string

type CDIStatus

type CDIStatus struct {
	sdkapi.Status `json:",inline"`
}

CDIStatus defines the status of the installation

func (*CDIStatus) DeepCopy

func (in *CDIStatus) DeepCopy() *CDIStatus

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

func (*CDIStatus) DeepCopyInto

func (in *CDIStatus) DeepCopyInto(out *CDIStatus)

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

func (CDIStatus) SwaggerDoc

func (CDIStatus) SwaggerDoc() map[string]string

type CDIUninstallStrategy

type CDIUninstallStrategy string

CDIUninstallStrategy defines the state to leave CDI on uninstall

const (
	// CDIUninstallStrategyRemoveWorkloads specifies clean uninstall
	CDIUninstallStrategyRemoveWorkloads CDIUninstallStrategy = "RemoveWorkloads"

	// CDIUninstallStrategyBlockUninstallIfWorkloadsExist "leaves stuff around"
	CDIUninstallStrategyBlockUninstallIfWorkloadsExist CDIUninstallStrategy = "BlockUninstallIfWorkloadsExist"
)

type CertConfig

type CertConfig struct {
	// The requested 'duration' (i.e. lifetime) of the Certificate.
	Duration *metav1.Duration `json:"duration,omitempty"`

	// The amount of time before the currently issued certificate's `notAfter`
	// time that we will begin to attempt to renew the certificate.
	RenewBefore *metav1.Duration `json:"renewBefore,omitempty"`
}

CertConfig contains the tunables for TLS certificates

func (*CertConfig) DeepCopy

func (in *CertConfig) DeepCopy() *CertConfig

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

func (*CertConfig) DeepCopyInto

func (in *CertConfig) DeepCopyInto(out *CertConfig)

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

func (CertConfig) SwaggerDoc

func (CertConfig) SwaggerDoc() map[string]string

type ClaimPropertySet

type ClaimPropertySet struct {
	// AccessModes contains the desired access modes the volume should have.
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
	// +kubebuilder:validation:MaxItems=4
	// +kubebuilder:validation:XValidation:rule="self.all(am, am in ['ReadWriteOnce', 'ReadOnlyMany', 'ReadWriteMany', 'ReadWriteOncePod'])", message="Illegal AccessMode"
	AccessModes []corev1.PersistentVolumeAccessMode `json:"accessModes"`
	// VolumeMode defines what type of volume is required by the claim.
	// Value of Filesystem is implied when not included in claim spec.
	// +kubebuilder:validation:Enum="Block";"Filesystem"
	VolumeMode *corev1.PersistentVolumeMode `json:"volumeMode"`
}

ClaimPropertySet is a set of properties applicable to PVC

func (*ClaimPropertySet) DeepCopy

func (in *ClaimPropertySet) DeepCopy() *ClaimPropertySet

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

func (*ClaimPropertySet) DeepCopyInto

func (in *ClaimPropertySet) DeepCopyInto(out *ClaimPropertySet)

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

func (ClaimPropertySet) SwaggerDoc

func (ClaimPropertySet) SwaggerDoc() map[string]string

type CloneAuthResponse

type CloneAuthResponse struct {
	Handler CloneSourceHandler
	Allowed bool
	Reason  string
}

CloneAuthResponse contains various response details regarding authorizing a datavolume +k8s:deepcopy-gen=false +k8s:openapi-gen=false

type CloneSourceHandler

type CloneSourceHandler struct {
	CloneType         cloneType
	TokenResource     metav1.GroupVersionResource
	UserCloneAuthFunc UserCloneAuthFunc
	SACloneAuthFunc   ServiceAccountCloneAuthFunc
	SourceName        string
	SourceNamespace   string
}

CloneSourceHandler is a helper around determining the correct way of authorizing a particular DataVolume +k8s:deepcopy-gen=false +k8s:openapi-gen=false

type ComponentConfig

type ComponentConfig struct {
	// NodePlacement describes scheduling configuration for specific CDI components
	sdkapi.NodePlacement `json:",inline"`
	// DeploymentReplicas set Replicas for cdi-deployment
	DeploymentReplicas *int32 `json:"deploymentReplicas,omitempty"`
	// ApiserverReplicas set Replicas for cdi-apiserver
	APIServerReplicas *int32 `json:"apiServerReplicas,omitempty"`
	// UploadproxyReplicas set Replicas for cdi-uploadproxy
	UploadProxyReplicas *int32 `json:"uploadProxyReplicas,omitempty"`
}

ComponentConfig defines the scheduling and replicas configuration for CDI components

func (*ComponentConfig) DeepCopy

func (in *ComponentConfig) DeepCopy() *ComponentConfig

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

func (*ComponentConfig) DeepCopyInto

func (in *ComponentConfig) DeepCopyInto(out *ComponentConfig)

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

func (ComponentConfig) SwaggerDoc

func (ComponentConfig) SwaggerDoc() map[string]string

type ConditionState

type ConditionState struct {
	Status             corev1.ConditionStatus `json:"status" description:"status of the condition, one of True, False, Unknown"`
	LastTransitionTime metav1.Time            `json:"lastTransitionTime,omitempty"`
	LastHeartbeatTime  metav1.Time            `json:"lastHeartbeatTime,omitempty"`
	Reason             string                 `json:"reason,omitempty" description:"reason for the condition's last transition"`
	Message            string                 `json:"message,omitempty" description:"human-readable message indicating details about last transition"`
}

ConditionState represents the state of a condition

func (*ConditionState) DeepCopy

func (in *ConditionState) DeepCopy() *ConditionState

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

func (*ConditionState) DeepCopyInto

func (in *ConditionState) DeepCopyInto(out *ConditionState)

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

func (ConditionState) SwaggerDoc

func (ConditionState) SwaggerDoc() map[string]string

type CustomTLSProfile

type CustomTLSProfile struct {
	TLSProfileSpec `json:",inline"`
}

CustomTLSProfile is a user-defined TLS security profile. Be extremely careful using a custom TLS profile as invalid configurations can be catastrophic.

func (*CustomTLSProfile) DeepCopy

func (in *CustomTLSProfile) DeepCopy() *CustomTLSProfile

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

func (*CustomTLSProfile) DeepCopyInto

func (in *CustomTLSProfile) DeepCopyInto(out *CustomTLSProfile)

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

type CustomizeComponents

type CustomizeComponents struct {
	// +listType=atomic
	Patches []CustomizeComponentsPatch `json:"patches,omitempty"`

	// Configure the value used for deployment and daemonset resources
	Flags *Flags `json:"flags,omitempty"`
}

CustomizeComponents defines patches for components deployed by the CDI operator.

func (*CustomizeComponents) DeepCopy

func (in *CustomizeComponents) DeepCopy() *CustomizeComponents

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

func (*CustomizeComponents) DeepCopyInto

func (in *CustomizeComponents) DeepCopyInto(out *CustomizeComponents)

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

func (CustomizeComponents) SwaggerDoc

func (CustomizeComponents) SwaggerDoc() map[string]string

type CustomizeComponentsPatch

type CustomizeComponentsPatch struct {
	// +kubebuilder:validation:MinLength=1
	ResourceName string `json:"resourceName"`
	// +kubebuilder:validation:MinLength=1
	ResourceType string    `json:"resourceType"`
	Patch        string    `json:"patch"`
	Type         PatchType `json:"type"`
}

CustomizeComponentsPatch defines a patch for some resource.

func (*CustomizeComponentsPatch) DeepCopy

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

func (*CustomizeComponentsPatch) DeepCopyInto

func (in *CustomizeComponentsPatch) DeepCopyInto(out *CustomizeComponentsPatch)

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

func (CustomizeComponentsPatch) SwaggerDoc

func (CustomizeComponentsPatch) SwaggerDoc() map[string]string

type DataImportCron

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

	Spec   DataImportCronSpec   `json:"spec"`
	Status DataImportCronStatus `json:"status,omitempty"`
}

DataImportCron defines a cron job for recurring polling/importing disk images as PVCs into a golden image namespace +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:storageversion +kubebuilder:resource:shortName=dic;dics,categories=all +kubebuilder:printcolumn:name="Format",type="string",JSONPath=".status.sourceFormat",description="The format in which created sources are saved"

func (*DataImportCron) DeepCopy

func (in *DataImportCron) DeepCopy() *DataImportCron

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

func (*DataImportCron) DeepCopyInto

func (in *DataImportCron) DeepCopyInto(out *DataImportCron)

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

func (*DataImportCron) DeepCopyObject

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

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

func (DataImportCron) SwaggerDoc

func (DataImportCron) SwaggerDoc() map[string]string

type DataImportCronCondition

type DataImportCronCondition struct {
	Type           DataImportCronConditionType `json:"type" description:"type of condition ie. Progressing, UpToDate"`
	ConditionState `json:",inline"`
}

DataImportCronCondition represents the state of a data import cron condition

func (*DataImportCronCondition) DeepCopy

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

func (*DataImportCronCondition) DeepCopyInto

func (in *DataImportCronCondition) DeepCopyInto(out *DataImportCronCondition)

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

func (DataImportCronCondition) SwaggerDoc

func (DataImportCronCondition) SwaggerDoc() map[string]string

type DataImportCronConditionType

type DataImportCronConditionType string

DataImportCronConditionType is the string representation of known condition types

const (
	// DataImportCronProgressing is the condition that indicates import is progressing
	DataImportCronProgressing DataImportCronConditionType = "Progressing"

	// DataImportCronUpToDate is the condition that indicates latest import is up to date
	DataImportCronUpToDate DataImportCronConditionType = "UpToDate"
)

type DataImportCronGarbageCollect

type DataImportCronGarbageCollect string

DataImportCronGarbageCollect represents the DataImportCron garbage collection mode

const (
	// DataImportCronGarbageCollectNever specifies that garbage collection is disabled
	DataImportCronGarbageCollectNever DataImportCronGarbageCollect = "Never"
	// DataImportCronGarbageCollectOutdated specifies that old PVCs should be cleaned up after a new PVC is imported
	DataImportCronGarbageCollectOutdated DataImportCronGarbageCollect = "Outdated"
)

type DataImportCronList

type DataImportCronList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items provides a list of DataImportCrons
	Items []DataImportCron `json:"items"`
}

DataImportCronList provides the needed parameters to do request a list of DataImportCrons from the system +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*DataImportCronList) DeepCopy

func (in *DataImportCronList) DeepCopy() *DataImportCronList

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

func (*DataImportCronList) DeepCopyInto

func (in *DataImportCronList) DeepCopyInto(out *DataImportCronList)

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

func (*DataImportCronList) DeepCopyObject

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

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

func (DataImportCronList) SwaggerDoc

func (DataImportCronList) SwaggerDoc() map[string]string

type DataImportCronRetentionPolicy

type DataImportCronRetentionPolicy string

DataImportCronRetentionPolicy represents the DataImportCron retention policy

const (
	// DataImportCronRetainNone specifies that the created DataVolumes and DataSources are deleted when their DataImportCron is deleted
	DataImportCronRetainNone DataImportCronRetentionPolicy = "None"
	// DataImportCronRetainAll specifies that the created DataVolumes and DataSources are retained when their DataImportCron is deleted
	DataImportCronRetainAll DataImportCronRetentionPolicy = "All"
)

type DataImportCronSourceFormat

type DataImportCronSourceFormat string

DataImportCronSourceFormat defines the format of the DataImportCron-created disk image sources

const (
	// DataImportCronSourceFormatSnapshot implies using a VolumeSnapshot as the resulting DataImportCron disk image source
	DataImportCronSourceFormatSnapshot DataImportCronSourceFormat = "snapshot"

	// DataImportCronSourceFormatPvc implies using a PVC as the resulting DataImportCron disk image source
	DataImportCronSourceFormatPvc DataImportCronSourceFormat = "pvc"
)

type DataImportCronSpec

type DataImportCronSpec struct {
	// Template specifies template for the DVs to be created
	Template DataVolume `json:"template"`
	// Schedule specifies in cron format when and how often to look for new imports
	Schedule string `json:"schedule"`
	// GarbageCollect specifies whether old PVCs should be cleaned up after a new PVC is imported.
	// Options are currently "Outdated" and "Never", defaults to "Outdated".
	// +optional
	GarbageCollect *DataImportCronGarbageCollect `json:"garbageCollect,omitempty"`
	// Number of import PVCs to keep when garbage collecting. Default is 3.
	// +optional
	ImportsToKeep *int32 `json:"importsToKeep,omitempty"`
	// ManagedDataSource specifies the name of the corresponding DataSource this cron will manage.
	// DataSource has to be in the same namespace.
	ManagedDataSource string `json:"managedDataSource"`
	// RetentionPolicy specifies whether the created DataVolumes and DataSources are retained when their DataImportCron is deleted. Default is RatainAll.
	// +optional
	RetentionPolicy *DataImportCronRetentionPolicy `json:"retentionPolicy,omitempty"`
}

DataImportCronSpec defines specification for DataImportCron

func (*DataImportCronSpec) DeepCopy

func (in *DataImportCronSpec) DeepCopy() *DataImportCronSpec

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

func (*DataImportCronSpec) DeepCopyInto

func (in *DataImportCronSpec) DeepCopyInto(out *DataImportCronSpec)

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

func (DataImportCronSpec) SwaggerDoc

func (DataImportCronSpec) SwaggerDoc() map[string]string

type DataImportCronStatus

type DataImportCronStatus struct {
	// CurrentImports are the imports in progress. Currently only a single import is supported.
	CurrentImports []ImportStatus `json:"currentImports,omitempty"`
	// LastImportedPVC is the last imported PVC
	LastImportedPVC *DataVolumeSourcePVC `json:"lastImportedPVC,omitempty"`
	// LastExecutionTimestamp is the time of the last polling
	LastExecutionTimestamp *metav1.Time `json:"lastExecutionTimestamp,omitempty"`
	// LastImportTimestamp is the time of the last import
	LastImportTimestamp *metav1.Time `json:"lastImportTimestamp,omitempty"`
	// SourceFormat defines the format of the DataImportCron-created disk image sources
	SourceFormat *DataImportCronSourceFormat `json:"sourceFormat,omitempty"`
	Conditions   []DataImportCronCondition   `json:"conditions,omitempty" optional:"true"`
}

DataImportCronStatus provides the most recently observed status of the DataImportCron

func (*DataImportCronStatus) DeepCopy

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

func (*DataImportCronStatus) DeepCopyInto

func (in *DataImportCronStatus) DeepCopyInto(out *DataImportCronStatus)

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

func (DataImportCronStatus) SwaggerDoc

func (DataImportCronStatus) SwaggerDoc() map[string]string

type DataSource

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

	Spec   DataSourceSpec   `json:"spec"`
	Status DataSourceStatus `json:"status,omitempty"`
}

DataSource references an import/clone source for a DataVolume +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:storageversion +kubebuilder:resource:shortName=das,categories=all

func (*DataSource) DeepCopy

func (in *DataSource) DeepCopy() *DataSource

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

func (*DataSource) DeepCopyInto

func (in *DataSource) DeepCopyInto(out *DataSource)

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

func (*DataSource) DeepCopyObject

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

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

func (DataSource) SwaggerDoc

func (DataSource) SwaggerDoc() map[string]string

type DataSourceCondition

type DataSourceCondition struct {
	Type           DataSourceConditionType `json:"type" description:"type of condition ie. Ready"`
	ConditionState `json:",inline"`
}

DataSourceCondition represents the state of a data source condition

func (*DataSourceCondition) DeepCopy

func (in *DataSourceCondition) DeepCopy() *DataSourceCondition

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

func (*DataSourceCondition) DeepCopyInto

func (in *DataSourceCondition) DeepCopyInto(out *DataSourceCondition)

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

func (DataSourceCondition) SwaggerDoc

func (DataSourceCondition) SwaggerDoc() map[string]string

type DataSourceConditionType

type DataSourceConditionType string

DataSourceConditionType is the string representation of known condition types

const (
	// DataSourceReady is the condition that indicates if the data source is ready to be consumed
	DataSourceReady DataSourceConditionType = "Ready"
)

type DataSourceList

type DataSourceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items provides a list of DataSources
	Items []DataSource `json:"items"`
}

DataSourceList provides the needed parameters to do request a list of Data Sources from the system +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*DataSourceList) DeepCopy

func (in *DataSourceList) DeepCopy() *DataSourceList

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

func (*DataSourceList) DeepCopyInto

func (in *DataSourceList) DeepCopyInto(out *DataSourceList)

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

func (*DataSourceList) DeepCopyObject

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

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

func (DataSourceList) SwaggerDoc

func (DataSourceList) SwaggerDoc() map[string]string

type DataSourceSource

type DataSourceSource struct {
	// +optional
	PVC *DataVolumeSourcePVC `json:"pvc,omitempty"`
	// +optional
	Snapshot *DataVolumeSourceSnapshot `json:"snapshot,omitempty"`
}

DataSourceSource represents the source for our DataSource

func (*DataSourceSource) DeepCopy

func (in *DataSourceSource) DeepCopy() *DataSourceSource

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

func (*DataSourceSource) DeepCopyInto

func (in *DataSourceSource) DeepCopyInto(out *DataSourceSource)

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

func (DataSourceSource) SwaggerDoc

func (DataSourceSource) SwaggerDoc() map[string]string

type DataSourceSpec

type DataSourceSpec struct {
	// Source is the source of the data referenced by the DataSource
	Source DataSourceSource `json:"source"`
}

DataSourceSpec defines specification for DataSource

func (*DataSourceSpec) DeepCopy

func (in *DataSourceSpec) DeepCopy() *DataSourceSpec

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

func (*DataSourceSpec) DeepCopyInto

func (in *DataSourceSpec) DeepCopyInto(out *DataSourceSpec)

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

func (DataSourceSpec) SwaggerDoc

func (DataSourceSpec) SwaggerDoc() map[string]string

type DataSourceStatus

type DataSourceStatus struct {
	// Source is the current source of the data referenced by the DataSource
	Source     DataSourceSource      `json:"source,omitempty"`
	Conditions []DataSourceCondition `json:"conditions,omitempty" optional:"true"`
}

DataSourceStatus provides the most recently observed status of the DataSource

func (*DataSourceStatus) DeepCopy

func (in *DataSourceStatus) DeepCopy() *DataSourceStatus

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

func (*DataSourceStatus) DeepCopyInto

func (in *DataSourceStatus) DeepCopyInto(out *DataSourceStatus)

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

func (DataSourceStatus) SwaggerDoc

func (DataSourceStatus) SwaggerDoc() map[string]string

type DataVolume

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

	Spec DataVolumeSpec `json:"spec"`
	// +optional
	Status DataVolumeStatus `json:"status,omitempty"`
}

DataVolume is an abstraction on top of PersistentVolumeClaims to allow easy population of those PersistentVolumeClaims with relation to VirtualMachines +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:storageversion +kubebuilder:resource:shortName=dv;dvs,categories=all +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="The phase the data volume is in" +kubebuilder:printcolumn:name="Progress",type="string",JSONPath=".status.progress",description="Transfer progress in percentage if known, N/A otherwise" +kubebuilder:printcolumn:name="Restarts",type="integer",JSONPath=".status.restartCount",description="The number of times the transfer has been restarted." +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*DataVolume) AuthorizeSA

func (dv *DataVolume) AuthorizeSA(requestNamespace, requestName string, proxy AuthorizationHelperProxy, saNamespace, saName string) (CloneAuthResponse, error)

AuthorizeSA indicates if the creating ServiceAccount is authorized to create the data volume For sources other than clone (import/upload/etc), this is a no-op

func (*DataVolume) AuthorizeUser

func (dv *DataVolume) AuthorizeUser(requestNamespace, requestName string, proxy AuthorizationHelperProxy, userInfo authentication.UserInfo) (CloneAuthResponse, error)

AuthorizeUser indicates if the creating user is authorized to create the data volume For sources other than clone (import/upload/etc), this is a no-op

func (*DataVolume) DeepCopy

func (in *DataVolume) DeepCopy() *DataVolume

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

func (*DataVolume) DeepCopyInto

func (in *DataVolume) DeepCopyInto(out *DataVolume)

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

func (*DataVolume) DeepCopyObject

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

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

func (DataVolume) SwaggerDoc

func (DataVolume) SwaggerDoc() map[string]string

type DataVolumeBlankImage

type DataVolumeBlankImage struct{}

DataVolumeBlankImage provides the parameters to create a new raw blank image for the PVC

func (*DataVolumeBlankImage) DeepCopy

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

func (*DataVolumeBlankImage) DeepCopyInto

func (in *DataVolumeBlankImage) DeepCopyInto(out *DataVolumeBlankImage)

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

func (DataVolumeBlankImage) SwaggerDoc

func (DataVolumeBlankImage) SwaggerDoc() map[string]string

type DataVolumeCheckpoint

type DataVolumeCheckpoint struct {
	// Previous is the identifier of the snapshot from the previous checkpoint.
	Previous string `json:"previous"`
	// Current is the identifier of the snapshot created for this checkpoint.
	Current string `json:"current"`
}

DataVolumeCheckpoint defines a stage in a warm migration.

func (*DataVolumeCheckpoint) DeepCopy

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

func (*DataVolumeCheckpoint) DeepCopyInto

func (in *DataVolumeCheckpoint) DeepCopyInto(out *DataVolumeCheckpoint)

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

func (DataVolumeCheckpoint) SwaggerDoc

func (DataVolumeCheckpoint) SwaggerDoc() map[string]string

type DataVolumeCondition

type DataVolumeCondition struct {
	Type               DataVolumeConditionType `json:"type" description:"type of condition ie. Ready|Bound|Running."`
	Status             corev1.ConditionStatus  `json:"status" description:"status of the condition, one of True, False, Unknown"`
	LastTransitionTime metav1.Time             `json:"lastTransitionTime,omitempty"`
	LastHeartbeatTime  metav1.Time             `json:"lastHeartbeatTime,omitempty"`
	Reason             string                  `json:"reason,omitempty" description:"reason for the condition's last transition"`
	Message            string                  `json:"message,omitempty" description:"human-readable message indicating details about last transition"`
}

DataVolumeCondition represents the state of a data volume condition.

func (*DataVolumeCondition) DeepCopy

func (in *DataVolumeCondition) DeepCopy() *DataVolumeCondition

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

func (*DataVolumeCondition) DeepCopyInto

func (in *DataVolumeCondition) DeepCopyInto(out *DataVolumeCondition)

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

func (DataVolumeCondition) SwaggerDoc

func (DataVolumeCondition) SwaggerDoc() map[string]string

type DataVolumeConditionType

type DataVolumeConditionType string

DataVolumeConditionType is the string representation of known condition types

type DataVolumeContentType

type DataVolumeContentType string

DataVolumeContentType represents the types of the imported data

const (
	// DataVolumeKubeVirt is the content-type of the imported file, defaults to kubevirt
	DataVolumeKubeVirt DataVolumeContentType = "kubevirt"
	// DataVolumeArchive is the content-type to specify if there is a need to extract the imported archive
	DataVolumeArchive DataVolumeContentType = "archive"
)

type DataVolumeList

type DataVolumeList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items provides a list of DataVolumes
	Items []DataVolume `json:"items"`
}

DataVolumeList provides the needed parameters to do request a list of Data Volumes from the system +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*DataVolumeList) DeepCopy

func (in *DataVolumeList) DeepCopy() *DataVolumeList

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

func (*DataVolumeList) DeepCopyInto

func (in *DataVolumeList) DeepCopyInto(out *DataVolumeList)

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

func (*DataVolumeList) DeepCopyObject

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

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

func (DataVolumeList) SwaggerDoc

func (DataVolumeList) SwaggerDoc() map[string]string

type DataVolumePhase

type DataVolumePhase string

DataVolumePhase is the current phase of the DataVolume

type DataVolumeProgress

type DataVolumeProgress string

DataVolumeProgress is the current progress of the DataVolume transfer operation. Value between 0 and 100 inclusive, N/A if not available

type DataVolumeSource

type DataVolumeSource struct {
	HTTP     *DataVolumeSourceHTTP     `json:"http,omitempty"`
	S3       *DataVolumeSourceS3       `json:"s3,omitempty"`
	GCS      *DataVolumeSourceGCS      `json:"gcs,omitempty"`
	Registry *DataVolumeSourceRegistry `json:"registry,omitempty"`
	PVC      *DataVolumeSourcePVC      `json:"pvc,omitempty"`
	Upload   *DataVolumeSourceUpload   `json:"upload,omitempty"`
	Blank    *DataVolumeBlankImage     `json:"blank,omitempty"`
	Imageio  *DataVolumeSourceImageIO  `json:"imageio,omitempty"`
	VDDK     *DataVolumeSourceVDDK     `json:"vddk,omitempty"`
	Snapshot *DataVolumeSourceSnapshot `json:"snapshot,omitempty"`
}

DataVolumeSource represents the source for our Data Volume, this can be HTTP, Imageio, S3, GCS, Registry or an existing PVC

func (*DataVolumeSource) DeepCopy

func (in *DataVolumeSource) DeepCopy() *DataVolumeSource

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

func (*DataVolumeSource) DeepCopyInto

func (in *DataVolumeSource) DeepCopyInto(out *DataVolumeSource)

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

func (DataVolumeSource) SwaggerDoc

func (DataVolumeSource) SwaggerDoc() map[string]string

type DataVolumeSourceGCS

type DataVolumeSourceGCS struct {
	//URL is the url of the GCS source
	URL string `json:"url"`
	//SecretRef provides the secret reference needed to access the GCS source
	SecretRef string `json:"secretRef,omitempty"`
}

DataVolumeSourceGCS provides the parameters to create a Data Volume from an GCS source

func (*DataVolumeSourceGCS) DeepCopy

func (in *DataVolumeSourceGCS) DeepCopy() *DataVolumeSourceGCS

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

func (*DataVolumeSourceGCS) DeepCopyInto

func (in *DataVolumeSourceGCS) DeepCopyInto(out *DataVolumeSourceGCS)

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

func (DataVolumeSourceGCS) SwaggerDoc

func (DataVolumeSourceGCS) SwaggerDoc() map[string]string

type DataVolumeSourceHTTP

type DataVolumeSourceHTTP struct {
	// URL is the URL of the http(s) endpoint
	URL string `json:"url"`
	// SecretRef A Secret reference, the secret should contain accessKeyId (user name) base64 encoded, and secretKey (password) also base64 encoded
	// +optional
	SecretRef string `json:"secretRef,omitempty"`
	// CertConfigMap is a configmap reference, containing a Certificate Authority(CA) public key, and a base64 encoded pem certificate
	// +optional
	CertConfigMap string `json:"certConfigMap,omitempty"`
	// ExtraHeaders is a list of strings containing extra headers to include with HTTP transfer requests
	// +optional
	ExtraHeaders []string `json:"extraHeaders,omitempty"`
	// SecretExtraHeaders is a list of Secret references, each containing an extra HTTP header that may include sensitive information
	// +optional
	SecretExtraHeaders []string `json:"secretExtraHeaders,omitempty"`
}

DataVolumeSourceHTTP can be either an http or https endpoint, with an optional basic auth user name and password, and an optional configmap containing additional CAs

func (*DataVolumeSourceHTTP) DeepCopy

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

func (*DataVolumeSourceHTTP) DeepCopyInto

func (in *DataVolumeSourceHTTP) DeepCopyInto(out *DataVolumeSourceHTTP)

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

func (DataVolumeSourceHTTP) SwaggerDoc

func (DataVolumeSourceHTTP) SwaggerDoc() map[string]string

type DataVolumeSourceImageIO

type DataVolumeSourceImageIO struct {
	//URL is the URL of the ovirt-engine
	URL string `json:"url"`
	// DiskID provides id of a disk to be imported
	DiskID string `json:"diskId"`
	//SecretRef provides the secret reference needed to access the ovirt-engine
	SecretRef string `json:"secretRef,omitempty"`
	//CertConfigMap provides a reference to the CA cert
	CertConfigMap string `json:"certConfigMap,omitempty"`
}

DataVolumeSourceImageIO provides the parameters to create a Data Volume from an imageio source

func (*DataVolumeSourceImageIO) DeepCopy

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

func (*DataVolumeSourceImageIO) DeepCopyInto

func (in *DataVolumeSourceImageIO) DeepCopyInto(out *DataVolumeSourceImageIO)

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

func (DataVolumeSourceImageIO) SwaggerDoc

func (DataVolumeSourceImageIO) SwaggerDoc() map[string]string

type DataVolumeSourcePVC

type DataVolumeSourcePVC struct {
	// The namespace of the source PVC
	Namespace string `json:"namespace"`
	// The name of the source PVC
	Name string `json:"name"`
}

DataVolumeSourcePVC provides the parameters to create a Data Volume from an existing PVC

func (*DataVolumeSourcePVC) DeepCopy

func (in *DataVolumeSourcePVC) DeepCopy() *DataVolumeSourcePVC

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

func (*DataVolumeSourcePVC) DeepCopyInto

func (in *DataVolumeSourcePVC) DeepCopyInto(out *DataVolumeSourcePVC)

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

func (DataVolumeSourcePVC) SwaggerDoc

func (DataVolumeSourcePVC) SwaggerDoc() map[string]string

type DataVolumeSourceRef

type DataVolumeSourceRef struct {
	// The kind of the source reference, currently only "DataSource" is supported
	Kind string `json:"kind"`
	// The namespace of the source reference, defaults to the DataVolume namespace
	// +optional
	Namespace *string `json:"namespace,omitempty"`
	// The name of the source reference
	Name string `json:"name"`
}

DataVolumeSourceRef defines an indirect reference to the source of data for the DataVolume

func (*DataVolumeSourceRef) DeepCopy

func (in *DataVolumeSourceRef) DeepCopy() *DataVolumeSourceRef

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

func (*DataVolumeSourceRef) DeepCopyInto

func (in *DataVolumeSourceRef) DeepCopyInto(out *DataVolumeSourceRef)

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

func (DataVolumeSourceRef) SwaggerDoc

func (DataVolumeSourceRef) SwaggerDoc() map[string]string

type DataVolumeSourceRegistry

type DataVolumeSourceRegistry struct {
	//URL is the url of the registry source (starting with the scheme: docker, oci-archive)
	// +optional
	URL *string `json:"url,omitempty"`
	//ImageStream is the name of image stream for import
	// +optional
	ImageStream *string `json:"imageStream,omitempty"`
	//PullMethod can be either "pod" (default import), or "node" (node docker cache based import)
	// +optional
	PullMethod *RegistryPullMethod `json:"pullMethod,omitempty"`
	//SecretRef provides the secret reference needed to access the Registry source
	// +optional
	SecretRef *string `json:"secretRef,omitempty"`
	//CertConfigMap provides a reference to the Registry certs
	// +optional
	CertConfigMap *string `json:"certConfigMap,omitempty"`
}

DataVolumeSourceRegistry provides the parameters to create a Data Volume from an registry source

func (*DataVolumeSourceRegistry) DeepCopy

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

func (*DataVolumeSourceRegistry) DeepCopyInto

func (in *DataVolumeSourceRegistry) DeepCopyInto(out *DataVolumeSourceRegistry)

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

func (DataVolumeSourceRegistry) SwaggerDoc

func (DataVolumeSourceRegistry) SwaggerDoc() map[string]string

type DataVolumeSourceS3

type DataVolumeSourceS3 struct {
	//URL is the url of the S3 source
	URL string `json:"url"`
	//SecretRef provides the secret reference needed to access the S3 source
	SecretRef string `json:"secretRef,omitempty"`
	// CertConfigMap is a configmap reference, containing a Certificate Authority(CA) public key, and a base64 encoded pem certificate
	// +optional
	CertConfigMap string `json:"certConfigMap,omitempty"`
}

DataVolumeSourceS3 provides the parameters to create a Data Volume from an S3 source

func (*DataVolumeSourceS3) DeepCopy

func (in *DataVolumeSourceS3) DeepCopy() *DataVolumeSourceS3

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

func (*DataVolumeSourceS3) DeepCopyInto

func (in *DataVolumeSourceS3) DeepCopyInto(out *DataVolumeSourceS3)

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

func (DataVolumeSourceS3) SwaggerDoc

func (DataVolumeSourceS3) SwaggerDoc() map[string]string

type DataVolumeSourceSnapshot

type DataVolumeSourceSnapshot struct {
	// The namespace of the source VolumeSnapshot
	Namespace string `json:"namespace"`
	// The name of the source VolumeSnapshot
	Name string `json:"name"`
}

DataVolumeSourceSnapshot provides the parameters to create a Data Volume from an existing VolumeSnapshot

func (*DataVolumeSourceSnapshot) DeepCopy

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

func (*DataVolumeSourceSnapshot) DeepCopyInto

func (in *DataVolumeSourceSnapshot) DeepCopyInto(out *DataVolumeSourceSnapshot)

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

func (DataVolumeSourceSnapshot) SwaggerDoc

func (DataVolumeSourceSnapshot) SwaggerDoc() map[string]string

type DataVolumeSourceUpload

type DataVolumeSourceUpload struct {
}

DataVolumeSourceUpload provides the parameters to create a Data Volume by uploading the source

func (*DataVolumeSourceUpload) DeepCopy

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

func (*DataVolumeSourceUpload) DeepCopyInto

func (in *DataVolumeSourceUpload) DeepCopyInto(out *DataVolumeSourceUpload)

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

func (DataVolumeSourceUpload) SwaggerDoc

func (DataVolumeSourceUpload) SwaggerDoc() map[string]string

type DataVolumeSourceVDDK

type DataVolumeSourceVDDK struct {
	// URL is the URL of the vCenter or ESXi host with the VM to migrate
	URL string `json:"url,omitempty"`
	// UUID is the UUID of the virtual machine that the backing file is attached to in vCenter/ESXi
	UUID string `json:"uuid,omitempty"`
	// BackingFile is the path to the virtual hard disk to migrate from vCenter/ESXi
	BackingFile string `json:"backingFile,omitempty"`
	// Thumbprint is the certificate thumbprint of the vCenter or ESXi host
	Thumbprint string `json:"thumbprint,omitempty"`
	// SecretRef provides a reference to a secret containing the username and password needed to access the vCenter or ESXi host
	SecretRef string `json:"secretRef,omitempty"`
	// InitImageURL is an optional URL to an image containing an extracted VDDK library, overrides v2v-vmware config map
	InitImageURL string `json:"initImageURL,omitempty"`
}

DataVolumeSourceVDDK provides the parameters to create a Data Volume from a Vmware source

func (*DataVolumeSourceVDDK) DeepCopy

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

func (*DataVolumeSourceVDDK) DeepCopyInto

func (in *DataVolumeSourceVDDK) DeepCopyInto(out *DataVolumeSourceVDDK)

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

func (DataVolumeSourceVDDK) SwaggerDoc

func (DataVolumeSourceVDDK) SwaggerDoc() map[string]string

type DataVolumeSpec

type DataVolumeSpec struct {
	//Source is the src of the data for the requested DataVolume
	// +optional
	Source *DataVolumeSource `json:"source,omitempty"`
	//SourceRef is an indirect reference to the source of data for the requested DataVolume
	// +optional
	SourceRef *DataVolumeSourceRef `json:"sourceRef,omitempty"`
	//PVC is the PVC specification
	PVC *corev1.PersistentVolumeClaimSpec `json:"pvc,omitempty"`
	// Storage is the requested storage specification
	Storage *StorageSpec `json:"storage,omitempty"`
	//PriorityClassName for Importer, Cloner and Uploader pod
	PriorityClassName string `json:"priorityClassName,omitempty"`
	//DataVolumeContentType options: "kubevirt", "archive"
	// +kubebuilder:validation:Enum="kubevirt";"archive"
	ContentType DataVolumeContentType `json:"contentType,omitempty"`
	// Checkpoints is a list of DataVolumeCheckpoints, representing stages in a multistage import.
	Checkpoints []DataVolumeCheckpoint `json:"checkpoints,omitempty"`
	// FinalCheckpoint indicates whether the current DataVolumeCheckpoint is the final checkpoint.
	FinalCheckpoint bool `json:"finalCheckpoint,omitempty"`
	// Preallocation controls whether storage for DataVolumes should be allocated in advance.
	Preallocation *bool `json:"preallocation,omitempty"`
}

DataVolumeSpec defines the DataVolume type specification

func (*DataVolumeSpec) DeepCopy

func (in *DataVolumeSpec) DeepCopy() *DataVolumeSpec

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

func (*DataVolumeSpec) DeepCopyInto

func (in *DataVolumeSpec) DeepCopyInto(out *DataVolumeSpec)

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

func (DataVolumeSpec) SwaggerDoc

func (DataVolumeSpec) SwaggerDoc() map[string]string

type DataVolumeStatus

type DataVolumeStatus struct {
	// ClaimName is the name of the underlying PVC used by the DataVolume.
	ClaimName string `json:"claimName,omitempty"`
	//Phase is the current phase of the data volume
	Phase    DataVolumePhase    `json:"phase,omitempty"`
	Progress DataVolumeProgress `json:"progress,omitempty"`
	// RestartCount is the number of times the pod populating the DataVolume has restarted
	RestartCount int32                 `json:"restartCount,omitempty"`
	Conditions   []DataVolumeCondition `json:"conditions,omitempty" optional:"true"`
}

DataVolumeStatus contains the current status of the DataVolume

func (*DataVolumeStatus) DeepCopy

func (in *DataVolumeStatus) DeepCopy() *DataVolumeStatus

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

func (*DataVolumeStatus) DeepCopyInto

func (in *DataVolumeStatus) DeepCopyInto(out *DataVolumeStatus)

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

func (DataVolumeStatus) SwaggerDoc

func (DataVolumeStatus) SwaggerDoc() map[string]string

type FilesystemOverhead

type FilesystemOverhead struct {
	// Global is how much space of a Filesystem volume should be reserved for overhead. This value is used unless overridden by a more specific value (per storageClass)
	Global Percent `json:"global,omitempty"`
	// StorageClass specifies how much space of a Filesystem volume should be reserved for safety. The keys are the storageClass and the values are the overhead. This value overrides the global value
	StorageClass map[string]Percent `json:"storageClass,omitempty"`
}

FilesystemOverhead defines the reserved size for PVCs with VolumeMode: Filesystem

func (*FilesystemOverhead) DeepCopy

func (in *FilesystemOverhead) DeepCopy() *FilesystemOverhead

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

func (*FilesystemOverhead) DeepCopyInto

func (in *FilesystemOverhead) DeepCopyInto(out *FilesystemOverhead)

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

func (FilesystemOverhead) SwaggerDoc

func (FilesystemOverhead) SwaggerDoc() map[string]string

type Flags

type Flags struct {
	API         map[string]string `json:"api,omitempty"`
	Controller  map[string]string `json:"controller,omitempty"`
	UploadProxy map[string]string `json:"uploadProxy,omitempty"`
}

Flags will create a patch that will replace all flags for the container's command field. The only flags that will be used are those define. There are no guarantees around forward/backward compatibility. If set incorrectly this will cause the resource when rolled out to error until flags are updated.

func (*Flags) DeepCopy

func (in *Flags) DeepCopy() *Flags

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

func (*Flags) DeepCopyInto

func (in *Flags) DeepCopyInto(out *Flags)

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

func (Flags) SwaggerDoc

func (Flags) SwaggerDoc() map[string]string

type ImportProxy

type ImportProxy struct {
	// HTTPProxy is the URL http://<username>:<pswd>@<ip>:<port> of the import proxy for HTTP requests.  Empty means unset and will not result in the import pod env var.
	// +optional
	HTTPProxy *string `json:"HTTPProxy,omitempty"`
	// HTTPSProxy is the URL https://<username>:<pswd>@<ip>:<port> of the import proxy for HTTPS requests.  Empty means unset and will not result in the import pod env var.
	// +optional
	HTTPSProxy *string `json:"HTTPSProxy,omitempty"`
	// NoProxy is a comma-separated list of hostnames and/or CIDRs for which the proxy should not be used. Empty means unset and will not result in the import pod env var.
	// +optional
	NoProxy *string `json:"noProxy,omitempty"`
	// TrustedCAProxy is the name of a ConfigMap in the cdi namespace that contains a user-provided trusted certificate authority (CA) bundle.
	// The TrustedCAProxy ConfigMap is consumed by the DataImportCron controller for creating cronjobs, and by the import controller referring a copy of the ConfigMap in the import namespace.
	// Here is an example of the ConfigMap (in yaml):
	//
	// apiVersion: v1
	// kind: ConfigMap
	// metadata:
	//   name: my-ca-proxy-cm
	//   namespace: cdi
	// data:
	//   ca.pem: |
	//     -----BEGIN CERTIFICATE-----
	// 	   ... <base64 encoded cert> ...
	// 	   -----END CERTIFICATE-----
	// +optional
	TrustedCAProxy *string `json:"trustedCAProxy,omitempty"`
}

ImportProxy provides the information on how to configure the importer pod proxy.

func (*ImportProxy) DeepCopy

func (in *ImportProxy) DeepCopy() *ImportProxy

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

func (*ImportProxy) DeepCopyInto

func (in *ImportProxy) DeepCopyInto(out *ImportProxy)

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

func (ImportProxy) SwaggerDoc

func (ImportProxy) SwaggerDoc() map[string]string

type ImportSourceType

type ImportSourceType struct {
	HTTP     *DataVolumeSourceHTTP     `json:"http,omitempty"`
	S3       *DataVolumeSourceS3       `json:"s3,omitempty"`
	Registry *DataVolumeSourceRegistry `json:"registry,omitempty"`
	GCS      *DataVolumeSourceGCS      `json:"gcs,omitempty"`
	Blank    *DataVolumeBlankImage     `json:"blank,omitempty"`
	Imageio  *DataVolumeSourceImageIO  `json:"imageio,omitempty"`
	VDDK     *DataVolumeSourceVDDK     `json:"vddk,omitempty"`
}

ImportSourceType contains each one of the source types allowed in a VolumeImportSource

func (*ImportSourceType) DeepCopy

func (in *ImportSourceType) DeepCopy() *ImportSourceType

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

func (*ImportSourceType) DeepCopyInto

func (in *ImportSourceType) DeepCopyInto(out *ImportSourceType)

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

func (ImportSourceType) SwaggerDoc

func (ImportSourceType) SwaggerDoc() map[string]string

type ImportStatus

type ImportStatus struct {
	// DataVolumeName is the currently in progress import DataVolume
	DataVolumeName string `json:"DataVolumeName"`
	// Digest of the currently imported image
	Digest string `json:"Digest"`
}

ImportStatus of a currently in progress import

func (*ImportStatus) DeepCopy

func (in *ImportStatus) DeepCopy() *ImportStatus

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

func (*ImportStatus) DeepCopyInto

func (in *ImportStatus) DeepCopyInto(out *ImportStatus)

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

func (ImportStatus) SwaggerDoc

func (ImportStatus) SwaggerDoc() map[string]string

type IntermediateTLSProfile

type IntermediateTLSProfile struct{}

IntermediateTLSProfile is a TLS security profile based on: https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29

func (*IntermediateTLSProfile) DeepCopy

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

func (*IntermediateTLSProfile) DeepCopyInto

func (in *IntermediateTLSProfile) DeepCopyInto(out *IntermediateTLSProfile)

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

type ModernTLSProfile

type ModernTLSProfile struct{}

ModernTLSProfile is a TLS security profile based on: https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility

func (*ModernTLSProfile) DeepCopy

func (in *ModernTLSProfile) DeepCopy() *ModernTLSProfile

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

func (*ModernTLSProfile) DeepCopyInto

func (in *ModernTLSProfile) DeepCopyInto(out *ModernTLSProfile)

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

type ObjectTransfer

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

	Spec ObjectTransferSpec `json:"spec"`

	// +optional
	Status ObjectTransferStatus `json:"status"`
}

ObjectTransfer is the cluster scoped object transfer resource +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:storageversion +kubebuilder:resource:shortName=ot;ots,scope=Cluster +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase",description="The phase of the ObjectTransfer" +kubebuilder:subresource:status

func (*ObjectTransfer) DeepCopy

func (in *ObjectTransfer) DeepCopy() *ObjectTransfer

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

func (*ObjectTransfer) DeepCopyInto

func (in *ObjectTransfer) DeepCopyInto(out *ObjectTransfer)

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

func (*ObjectTransfer) DeepCopyObject

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

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

type ObjectTransferCondition

type ObjectTransferCondition struct {
	Type               ObjectTransferConditionType `json:"type"`
	Status             corev1.ConditionStatus      `json:"status"`
	LastTransitionTime metav1.Time                 `json:"lastTransitionTime,omitempty"`
	LastHeartbeatTime  metav1.Time                 `json:"lastHeartbeatTime,omitempty"`
	Reason             string                      `json:"reason,omitempty"`
	Message            string                      `json:"message,omitempty"`
}

ObjectTransferCondition contains condition data

func (*ObjectTransferCondition) DeepCopy

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

func (*ObjectTransferCondition) DeepCopyInto

func (in *ObjectTransferCondition) DeepCopyInto(out *ObjectTransferCondition)

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

type ObjectTransferConditionType

type ObjectTransferConditionType string

ObjectTransferConditionType is the type of ObjectTransferCondition

const (
	// ObjectTransferConditionComplete is the "complete" condition
	ObjectTransferConditionComplete ObjectTransferConditionType = "Complete"
)

type ObjectTransferList

type ObjectTransferList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items provides a list of ObjectTransfers
	Items []ObjectTransfer `json:"items"`
}

ObjectTransferList provides the needed parameters to do request a list of ObjectTransfers from the system +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ObjectTransferList) DeepCopy

func (in *ObjectTransferList) DeepCopy() *ObjectTransferList

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

func (*ObjectTransferList) DeepCopyInto

func (in *ObjectTransferList) DeepCopyInto(out *ObjectTransferList)

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

func (*ObjectTransferList) DeepCopyObject

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

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

type ObjectTransferPhase

type ObjectTransferPhase string

ObjectTransferPhase is the phase of the ObjectTransfer

const (
	// ObjectTransferEmpty is the empty transfer phase
	ObjectTransferEmpty ObjectTransferPhase = ""

	// ObjectTransferPending is the pending transfer phase
	ObjectTransferPending ObjectTransferPhase = "Pending"

	// ObjectTransferRunning is the running transfer phase
	ObjectTransferRunning ObjectTransferPhase = "Running"

	// ObjectTransferComplete is the complete transfer phase
	ObjectTransferComplete ObjectTransferPhase = "Complete"

	// ObjectTransferError is the (terminal) error transfer phase
	ObjectTransferError ObjectTransferPhase = "Error"
)

type ObjectTransferSpec

type ObjectTransferSpec struct {
	Source TransferSource `json:"source"`

	Target TransferTarget `json:"target"`

	ParentName *string `json:"parentName,omitempty"`
}

ObjectTransferSpec specifies the source/target of the transfer

func (*ObjectTransferSpec) DeepCopy

func (in *ObjectTransferSpec) DeepCopy() *ObjectTransferSpec

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

func (*ObjectTransferSpec) DeepCopyInto

func (in *ObjectTransferSpec) DeepCopyInto(out *ObjectTransferSpec)

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

type ObjectTransferStatus

type ObjectTransferStatus struct {
	// Data is a place for intermediary state.  Or anything really.
	Data map[string]string `json:"data,omitempty"`

	// Phase is the current phase of the transfer
	Phase ObjectTransferPhase `json:"phase,omitempty"`

	Conditions []ObjectTransferCondition `json:"conditions,omitempty"`
}

ObjectTransferStatus is the status of the ObjectTransfer

func (*ObjectTransferStatus) DeepCopy

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

func (*ObjectTransferStatus) DeepCopyInto

func (in *ObjectTransferStatus) DeepCopyInto(out *ObjectTransferStatus)

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

type OldTLSProfile

type OldTLSProfile struct{}

OldTLSProfile is a TLS security profile based on: https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility

func (*OldTLSProfile) DeepCopy

func (in *OldTLSProfile) DeepCopy() *OldTLSProfile

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

func (*OldTLSProfile) DeepCopyInto

func (in *OldTLSProfile) DeepCopyInto(out *OldTLSProfile)

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

type PatchType

type PatchType string

PatchType defines the patch type.

const (
	// JSONPatchType is a constant that represents the type of JSON patch.
	JSONPatchType PatchType = "json"
	// MergePatchType is a constant that represents the type of JSON Merge patch.
	MergePatchType PatchType = "merge"
	// StrategicMergePatchType is a constant that represents the type of Strategic Merge patch.
	StrategicMergePatchType PatchType = "strategic"
)

type Percent

type Percent string

Percent is a string that can only be a value between [0,1) (Note: we actually rely on reconcile to reject invalid values) +kubebuilder:validation:Pattern=`^(0(?:\.\d{1,3})?|1)$`

type RegistryPullMethod

type RegistryPullMethod string

RegistryPullMethod represents the registry import pull method

const (
	// RegistryPullPod is the standard import
	RegistryPullPod RegistryPullMethod = "pod"
	// RegistryPullNode is the node docker cache based import
	RegistryPullNode RegistryPullMethod = "node"
)

type ServiceAccountCloneAuthFunc

type ServiceAccountCloneAuthFunc func(createSar createSarFunc, pvcNamespace, pvcName, saNamespace, saName string) (bool, string, error)

ServiceAccountCloneAuthFunc represents a serviceaccount clone auth func

type StorageProfile

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

	Spec   StorageProfileSpec   `json:"spec"`
	Status StorageProfileStatus `json:"status,omitempty"`
}

StorageProfile provides a CDI specific recommendation for storage parameters +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:storageversion +kubebuilder:resource:scope=Cluster

func (*StorageProfile) DeepCopy

func (in *StorageProfile) DeepCopy() *StorageProfile

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

func (*StorageProfile) DeepCopyInto

func (in *StorageProfile) DeepCopyInto(out *StorageProfile)

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

func (*StorageProfile) DeepCopyObject

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

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

func (StorageProfile) SwaggerDoc

func (StorageProfile) SwaggerDoc() map[string]string

type StorageProfileList

type StorageProfileList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items provides a list of StorageProfile
	Items []StorageProfile `json:"items"`
}

StorageProfileList provides the needed parameters to request a list of StorageProfile from the system +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*StorageProfileList) DeepCopy

func (in *StorageProfileList) DeepCopy() *StorageProfileList

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

func (*StorageProfileList) DeepCopyInto

func (in *StorageProfileList) DeepCopyInto(out *StorageProfileList)

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

func (*StorageProfileList) DeepCopyObject

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

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

func (StorageProfileList) SwaggerDoc

func (StorageProfileList) SwaggerDoc() map[string]string

type StorageProfileSpec

type StorageProfileSpec struct {
	// CloneStrategy defines the preferred method for performing a CDI clone
	CloneStrategy *CDICloneStrategy `json:"cloneStrategy,omitempty"`
	// ClaimPropertySets is a provided set of properties applicable to PVC
	// +kubebuilder:validation:MaxItems=8
	ClaimPropertySets []ClaimPropertySet `json:"claimPropertySets,omitempty"`
	// DataImportCronSourceFormat defines the format of the DataImportCron-created disk image sources
	DataImportCronSourceFormat *DataImportCronSourceFormat `json:"dataImportCronSourceFormat,omitempty"`
	// SnapshotClass is optional specific VolumeSnapshotClass for CloneStrategySnapshot. If not set, a VolumeSnapshotClass is chosen according to the provisioner.
	SnapshotClass *string `json:"snapshotClass,omitempty"`
}

StorageProfileSpec defines specification for StorageProfile

func (*StorageProfileSpec) DeepCopy

func (in *StorageProfileSpec) DeepCopy() *StorageProfileSpec

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

func (*StorageProfileSpec) DeepCopyInto

func (in *StorageProfileSpec) DeepCopyInto(out *StorageProfileSpec)

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

func (StorageProfileSpec) SwaggerDoc

func (StorageProfileSpec) SwaggerDoc() map[string]string

type StorageProfileStatus

type StorageProfileStatus struct {
	// The StorageClass name for which capabilities are defined
	StorageClass *string `json:"storageClass,omitempty"`
	// The Storage class provisioner plugin name
	Provisioner *string `json:"provisioner,omitempty"`
	// CloneStrategy defines the preferred method for performing a CDI clone
	CloneStrategy *CDICloneStrategy `json:"cloneStrategy,omitempty"`
	// ClaimPropertySets computed from the spec and detected in the system
	// +kubebuilder:validation:MaxItems=8
	ClaimPropertySets []ClaimPropertySet `json:"claimPropertySets,omitempty"`
	// DataImportCronSourceFormat defines the format of the DataImportCron-created disk image sources
	DataImportCronSourceFormat *DataImportCronSourceFormat `json:"dataImportCronSourceFormat,omitempty"`
	// SnapshotClass is optional specific VolumeSnapshotClass for CloneStrategySnapshot. If not set, a VolumeSnapshotClass is chosen according to the provisioner.
	SnapshotClass *string `json:"snapshotClass,omitempty"`
}

StorageProfileStatus provides the most recently observed status of the StorageProfile

func (*StorageProfileStatus) DeepCopy

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

func (*StorageProfileStatus) DeepCopyInto

func (in *StorageProfileStatus) DeepCopyInto(out *StorageProfileStatus)

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

func (StorageProfileStatus) SwaggerDoc

func (StorageProfileStatus) SwaggerDoc() map[string]string

type StorageSpec

type StorageSpec struct {
	// AccessModes contains the desired access modes the volume should have.
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
	// +optional
	AccessModes []corev1.PersistentVolumeAccessMode `json:"accessModes,omitempty"`
	// A label query over volumes to consider for binding.
	// +optional
	Selector *metav1.LabelSelector `json:"selector,omitempty"`
	// Resources represents the minimum resources the volume should have.
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
	// +optional
	Resources corev1.VolumeResourceRequirements `json:"resources,omitempty"`
	// VolumeName is the binding reference to the PersistentVolume backing this claim.
	// +optional
	VolumeName string `json:"volumeName,omitempty"`
	// Name of the StorageClass required by the claim.
	// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
	// +optional
	StorageClassName *string `json:"storageClassName,omitempty"`
	// volumeMode defines what type of volume is required by the claim.
	// Value of Filesystem is implied when not included in claim spec.
	// +optional
	VolumeMode *corev1.PersistentVolumeMode `json:"volumeMode,omitempty"`
	// This field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) * An existing custom resource that implements data population (Alpha) In order to use custom resource types that implement data population, the AnyVolumeDataSource feature gate must be enabled. If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source.
	// If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.
	// +optional
	DataSource *corev1.TypedLocalObjectReference `json:"dataSource,omitempty"`
	// Specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner.
	// This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty.
	// There are two important differences between DataSource and DataSourceRef:
	// * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects.
	// * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified.
	// (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
	// +optional
	DataSourceRef *corev1.TypedObjectReference `json:"dataSourceRef,omitempty"`
}

StorageSpec defines the Storage type specification

func (*StorageSpec) DeepCopy

func (in *StorageSpec) DeepCopy() *StorageSpec

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

func (*StorageSpec) DeepCopyInto

func (in *StorageSpec) DeepCopyInto(out *StorageSpec)

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

func (StorageSpec) SwaggerDoc

func (StorageSpec) SwaggerDoc() map[string]string

type TLSProfileSpec

type TLSProfileSpec struct {
	// ciphers is used to specify the cipher algorithms that are negotiated
	// during the TLS handshake.  Operators may remove entries their operands
	// do not support.  For example, to use DES-CBC3-SHA  (yaml):
	//
	//   ciphers:
	//     - DES-CBC3-SHA
	//
	Ciphers []string `json:"ciphers"`
	// minTLSVersion is used to specify the minimal version of the TLS protocol
	// that is negotiated during the TLS handshake. For example, to use TLS
	// versions 1.1, 1.2 and 1.3 (yaml):
	//
	//   minTLSVersion: VersionTLS11
	//
	// NOTE: currently the highest minTLSVersion allowed is VersionTLS12
	//
	MinTLSVersion TLSProtocolVersion `json:"minTLSVersion"`
}

TLSProfileSpec is the desired behavior of a TLSSecurityProfile.

func (*TLSProfileSpec) DeepCopy

func (in *TLSProfileSpec) DeepCopy() *TLSProfileSpec

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

func (*TLSProfileSpec) DeepCopyInto

func (in *TLSProfileSpec) DeepCopyInto(out *TLSProfileSpec)

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

type TLSProfileType

type TLSProfileType string

TLSProfileType defines a TLS security profile type. +kubebuilder:validation:Enum=Old;Intermediate;Modern;Custom

const (
	// TLSProfileOldType is a TLS security profile based on:
	// https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility
	TLSProfileOldType TLSProfileType = "Old"
	// TLSProfileIntermediateType is a TLS security profile based on:
	// https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29
	TLSProfileIntermediateType TLSProfileType = "Intermediate"
	// TLSProfileModernType is a TLS security profile based on:
	// https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility
	TLSProfileModernType TLSProfileType = "Modern"
	// TLSProfileCustomType is a TLS security profile that allows for user-defined parameters.
	TLSProfileCustomType TLSProfileType = "Custom"
)

type TLSProtocolVersion

type TLSProtocolVersion string

TLSProtocolVersion is a way to specify the protocol version used for TLS connections. Protocol versions are based on the following most common TLS configurations:

https://ssl-config.mozilla.org/

Note that SSLv3.0 is not a supported protocol version due to well known vulnerabilities such as POODLE: https://en.wikipedia.org/wiki/POODLE +kubebuilder:validation:Enum=VersionTLS10;VersionTLS11;VersionTLS12;VersionTLS13

const (
	// VersionTLS10 is version 1.0 of the TLS security protocol.
	VersionTLS10 TLSProtocolVersion = "VersionTLS10"
	// VersionTLS11 is version 1.1 of the TLS security protocol.
	VersionTLS11 TLSProtocolVersion = "VersionTLS11"
	// VersionTLS12 is version 1.2 of the TLS security protocol.
	VersionTLS12 TLSProtocolVersion = "VersionTLS12"
	// VersionTLS13 is version 1.3 of the TLS security protocol.
	VersionTLS13 TLSProtocolVersion = "VersionTLS13"
)

type TLSSecurityProfile

type TLSSecurityProfile struct {
	// type is one of Old, Intermediate, Modern or Custom. Custom provides
	// the ability to specify individual TLS security profile parameters.
	// Old, Intermediate and Modern are TLS security profiles based on:
	//
	// https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations
	//
	// The profiles are intent based, so they may change over time as new ciphers are developed and existing ciphers
	// are found to be insecure.  Depending on precisely which ciphers are available to a process, the list may be
	// reduced.
	//
	// Note that the Modern profile is currently not supported because it is not
	// yet well adopted by common software libraries.
	//
	// +unionDiscriminator
	// +optional
	Type TLSProfileType `json:"type"`
	// old is a TLS security profile based on:
	//
	// https://wiki.mozilla.org/Security/Server_Side_TLS#Old_backward_compatibility
	//
	// and looks like this (yaml):
	//
	//   ciphers:
	//     - TLS_AES_128_GCM_SHA256
	//     - TLS_AES_256_GCM_SHA384
	//     - TLS_CHACHA20_POLY1305_SHA256
	//     - ECDHE-ECDSA-AES128-GCM-SHA256
	//     - ECDHE-RSA-AES128-GCM-SHA256
	//     - ECDHE-ECDSA-AES256-GCM-SHA384
	//     - ECDHE-RSA-AES256-GCM-SHA384
	//     - ECDHE-ECDSA-CHACHA20-POLY1305
	//     - ECDHE-RSA-CHACHA20-POLY1305
	//     - DHE-RSA-AES128-GCM-SHA256
	//     - DHE-RSA-AES256-GCM-SHA384
	//     - DHE-RSA-CHACHA20-POLY1305
	//     - ECDHE-ECDSA-AES128-SHA256
	//     - ECDHE-RSA-AES128-SHA256
	//     - ECDHE-ECDSA-AES128-SHA
	//     - ECDHE-RSA-AES128-SHA
	//     - ECDHE-ECDSA-AES256-SHA384
	//     - ECDHE-RSA-AES256-SHA384
	//     - ECDHE-ECDSA-AES256-SHA
	//     - ECDHE-RSA-AES256-SHA
	//     - DHE-RSA-AES128-SHA256
	//     - DHE-RSA-AES256-SHA256
	//     - AES128-GCM-SHA256
	//     - AES256-GCM-SHA384
	//     - AES128-SHA256
	//     - AES256-SHA256
	//     - AES128-SHA
	//     - AES256-SHA
	//     - DES-CBC3-SHA
	//   minTLSVersion: VersionTLS10
	//
	// +optional
	// +nullable
	Old *OldTLSProfile `json:"old,omitempty"`
	// intermediate is a TLS security profile based on:
	//
	// https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28recommended.29
	//
	// and looks like this (yaml):
	//
	//   ciphers:
	//     - TLS_AES_128_GCM_SHA256
	//     - TLS_AES_256_GCM_SHA384
	//     - TLS_CHACHA20_POLY1305_SHA256
	//     - ECDHE-ECDSA-AES128-GCM-SHA256
	//     - ECDHE-RSA-AES128-GCM-SHA256
	//     - ECDHE-ECDSA-AES256-GCM-SHA384
	//     - ECDHE-RSA-AES256-GCM-SHA384
	//     - ECDHE-ECDSA-CHACHA20-POLY1305
	//     - ECDHE-RSA-CHACHA20-POLY1305
	//     - DHE-RSA-AES128-GCM-SHA256
	//     - DHE-RSA-AES256-GCM-SHA384
	//   minTLSVersion: VersionTLS12
	//
	// +optional
	// +nullable
	Intermediate *IntermediateTLSProfile `json:"intermediate,omitempty"`
	// modern is a TLS security profile based on:
	//
	// https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility
	//
	// and looks like this (yaml):
	//
	//   ciphers:
	//     - TLS_AES_128_GCM_SHA256
	//     - TLS_AES_256_GCM_SHA384
	//     - TLS_CHACHA20_POLY1305_SHA256
	//   minTLSVersion: VersionTLS13
	//
	// NOTE: Currently unsupported.
	//
	// +optional
	// +nullable
	Modern *ModernTLSProfile `json:"modern,omitempty"`
	// custom is a user-defined TLS security profile. Be extremely careful using a custom
	// profile as invalid configurations can be catastrophic. An example custom profile
	// looks like this:
	//
	//   ciphers:
	//     - ECDHE-ECDSA-CHACHA20-POLY1305
	//     - ECDHE-RSA-CHACHA20-POLY1305
	//     - ECDHE-RSA-AES128-GCM-SHA256
	//     - ECDHE-ECDSA-AES128-GCM-SHA256
	//   minTLSVersion: VersionTLS11
	//
	// +optional
	// +nullable
	Custom *CustomTLSProfile `json:"custom,omitempty"`
}

TLSSecurityProfile defines the schema for a TLS security profile. This object is used by operators to apply TLS security settings to operands. +union

func (*TLSSecurityProfile) DeepCopy

func (in *TLSSecurityProfile) DeepCopy() *TLSSecurityProfile

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

func (*TLSSecurityProfile) DeepCopyInto

func (in *TLSSecurityProfile) DeepCopyInto(out *TLSSecurityProfile)

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

type TransferSource

type TransferSource struct {
	// +optional
	APIVersion string `json:"apiVersion,omitempty"`

	Kind string `json:"kind"`

	Namespace string `json:"namespace"`

	Name string `json:"name"`

	RequiredAnnotations map[string]string `json:"requiredAnnotations,omitempty"`
}

TransferSource is the source of a ObjectTransfer

func (*TransferSource) DeepCopy

func (in *TransferSource) DeepCopy() *TransferSource

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

func (*TransferSource) DeepCopyInto

func (in *TransferSource) DeepCopyInto(out *TransferSource)

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

type TransferTarget

type TransferTarget struct {
	Namespace *string `json:"namespace,omitempty"`

	Name *string `json:"name,omitempty"`
}

TransferTarget is the target of an ObjectTransfer

func (*TransferTarget) DeepCopy

func (in *TransferTarget) DeepCopy() *TransferTarget

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

func (*TransferTarget) DeepCopyInto

func (in *TransferTarget) DeepCopyInto(out *TransferTarget)

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

type UserCloneAuthFunc

type UserCloneAuthFunc func(createSar createSarFunc, sourceNamespace, pvcName, targetNamespace string, userInfo authentication.UserInfo) (bool, string, error)

UserCloneAuthFunc represents a user clone auth func

type VolumeCloneSource

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

	Spec VolumeCloneSourceSpec `json:"spec"`
}

VolumeCloneSource refers to a PVC/VolumeSnapshot of any storageclass/volumemode to be used as the source of a new PVC +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:storageversion

func (*VolumeCloneSource) DeepCopy

func (in *VolumeCloneSource) DeepCopy() *VolumeCloneSource

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

func (*VolumeCloneSource) DeepCopyInto

func (in *VolumeCloneSource) DeepCopyInto(out *VolumeCloneSource)

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

func (*VolumeCloneSource) DeepCopyObject

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

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

func (VolumeCloneSource) SwaggerDoc

func (VolumeCloneSource) SwaggerDoc() map[string]string

type VolumeCloneSourceList

type VolumeCloneSourceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	// Items provides a list of DataSources
	Items []VolumeCloneSource `json:"items"`
}

VolumeCloneSourceList provides the needed parameters to do request a list of VolumeCloneSources from the system +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*VolumeCloneSourceList) DeepCopy

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

func (*VolumeCloneSourceList) DeepCopyInto

func (in *VolumeCloneSourceList) DeepCopyInto(out *VolumeCloneSourceList)

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

func (*VolumeCloneSourceList) DeepCopyObject

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

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

func (VolumeCloneSourceList) SwaggerDoc

func (VolumeCloneSourceList) SwaggerDoc() map[string]string

type VolumeCloneSourceSpec

type VolumeCloneSourceSpec struct {
	// Source is the src of the data to be cloned to the target PVC
	Source corev1.TypedLocalObjectReference `json:"source"`

	// Preallocation controls whether storage for the target PVC should be allocated in advance.
	// +optional
	Preallocation *bool `json:"preallocation,omitempty"`

	// PriorityClassName is the priorityclass for the claim
	// +optional
	PriorityClassName *string `json:"priorityClassName,omitempty"`
}

VolumeCloneSourceSpec defines the Spec field for VolumeCloneSource

func (*VolumeCloneSourceSpec) DeepCopy

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

func (*VolumeCloneSourceSpec) DeepCopyInto

func (in *VolumeCloneSourceSpec) DeepCopyInto(out *VolumeCloneSourceSpec)

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

func (VolumeCloneSourceSpec) SwaggerDoc

func (VolumeCloneSourceSpec) SwaggerDoc() map[string]string

type VolumeImportSource

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

	Spec VolumeImportSourceSpec `json:"spec"`
	// +optional
	Status VolumeImportSourceStatus `json:"status"`
}

VolumeImportSource works as a specification to populate PersistentVolumeClaims with data imported from an HTTP/S3/Registry/Blank/ImageIO/VDDK source +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:storageversion

func (*VolumeImportSource) DeepCopy

func (in *VolumeImportSource) DeepCopy() *VolumeImportSource

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

func (*VolumeImportSource) DeepCopyInto

func (in *VolumeImportSource) DeepCopyInto(out *VolumeImportSource)

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

func (*VolumeImportSource) DeepCopyObject

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

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

func (VolumeImportSource) SwaggerDoc

func (VolumeImportSource) SwaggerDoc() map[string]string

type VolumeImportSourceList

type VolumeImportSourceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items provides a list of DataSources
	Items []VolumeImportSource `json:"items"`
}

VolumeImportSourceList provides the needed parameters to do request a list of Import Sources from the system +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*VolumeImportSourceList) DeepCopy

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

func (*VolumeImportSourceList) DeepCopyInto

func (in *VolumeImportSourceList) DeepCopyInto(out *VolumeImportSourceList)

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

func (*VolumeImportSourceList) DeepCopyObject

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

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

func (VolumeImportSourceList) SwaggerDoc

func (VolumeImportSourceList) SwaggerDoc() map[string]string

type VolumeImportSourceSpec

type VolumeImportSourceSpec struct {
	//Source is the src of the data to be imported in the target PVC
	Source *ImportSourceType `json:"source,omitempty"`
	// Preallocation controls whether storage for the target PVC should be allocated in advance.
	Preallocation *bool `json:"preallocation,omitempty"`
	// ContentType represents the type of the imported data (Kubevirt or archive)
	ContentType DataVolumeContentType `json:"contentType,omitempty"`
	// TargetClaim the name of the specific claim to be populated with a multistage import.
	TargetClaim *string `json:"targetClaim,omitempty"`
	// Checkpoints is a list of DataVolumeCheckpoints, representing stages in a multistage import.
	Checkpoints []DataVolumeCheckpoint `json:"checkpoints,omitempty"`
	// FinalCheckpoint indicates whether the current DataVolumeCheckpoint is the final checkpoint.
	FinalCheckpoint *bool `json:"finalCheckpoint,omitempty"`
}

VolumeImportSourceSpec defines the Spec field for VolumeImportSource

func (*VolumeImportSourceSpec) DeepCopy

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

func (*VolumeImportSourceSpec) DeepCopyInto

func (in *VolumeImportSourceSpec) DeepCopyInto(out *VolumeImportSourceSpec)

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

func (VolumeImportSourceSpec) SwaggerDoc

func (VolumeImportSourceSpec) SwaggerDoc() map[string]string

type VolumeImportSourceStatus

type VolumeImportSourceStatus struct {
}

VolumeImportSourceStatus provides the most recently observed status of the VolumeImportSource

func (*VolumeImportSourceStatus) DeepCopy

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

func (*VolumeImportSourceStatus) DeepCopyInto

func (in *VolumeImportSourceStatus) DeepCopyInto(out *VolumeImportSourceStatus)

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

func (VolumeImportSourceStatus) SwaggerDoc

func (VolumeImportSourceStatus) SwaggerDoc() map[string]string

type VolumeUploadSource

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

	Spec VolumeUploadSourceSpec `json:"spec"`
	// +optional
	Status VolumeUploadSourceStatus `json:"status,omitempty"`
}

VolumeUploadSource is a specification to populate PersistentVolumeClaims with upload data +genclient +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +kubebuilder:object:root=true +kubebuilder:storageversion

func (*VolumeUploadSource) DeepCopy

func (in *VolumeUploadSource) DeepCopy() *VolumeUploadSource

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

func (*VolumeUploadSource) DeepCopyInto

func (in *VolumeUploadSource) DeepCopyInto(out *VolumeUploadSource)

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

func (*VolumeUploadSource) DeepCopyObject

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

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

func (VolumeUploadSource) SwaggerDoc

func (VolumeUploadSource) SwaggerDoc() map[string]string

type VolumeUploadSourceList

type VolumeUploadSourceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`

	// Items provides a list of DataSources
	Items []VolumeImportSource `json:"items"`
}

VolumeUploadSourceList provides the needed parameters to do request a list of Upload Sources from the system +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*VolumeUploadSourceList) DeepCopy

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

func (*VolumeUploadSourceList) DeepCopyInto

func (in *VolumeUploadSourceList) DeepCopyInto(out *VolumeUploadSourceList)

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

func (*VolumeUploadSourceList) DeepCopyObject

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

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

func (VolumeUploadSourceList) SwaggerDoc

func (VolumeUploadSourceList) SwaggerDoc() map[string]string

type VolumeUploadSourceSpec

type VolumeUploadSourceSpec struct {
	// ContentType represents the type of the upload data (Kubevirt or archive)
	ContentType DataVolumeContentType `json:"contentType,omitempty"`
	// Preallocation controls whether storage for the target PVC should be allocated in advance.
	Preallocation *bool `json:"preallocation,omitempty"`
}

VolumeUploadSourceSpec defines specification for VolumeUploadSource

func (*VolumeUploadSourceSpec) DeepCopy

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

func (*VolumeUploadSourceSpec) DeepCopyInto

func (in *VolumeUploadSourceSpec) DeepCopyInto(out *VolumeUploadSourceSpec)

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

func (VolumeUploadSourceSpec) SwaggerDoc

func (VolumeUploadSourceSpec) SwaggerDoc() map[string]string

type VolumeUploadSourceStatus

type VolumeUploadSourceStatus struct {
}

VolumeUploadSourceStatus provides the most recently observed status of the VolumeUploadSource

func (*VolumeUploadSourceStatus) DeepCopy

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

func (*VolumeUploadSourceStatus) DeepCopyInto

func (in *VolumeUploadSourceStatus) DeepCopyInto(out *VolumeUploadSourceStatus)

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

func (VolumeUploadSourceStatus) SwaggerDoc

func (VolumeUploadSourceStatus) SwaggerDoc() map[string]string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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