v1alpha1

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Sep 17, 2024 License: Apache-2.0 Imports: 5 Imported by: 3

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the replication.storage v1alpha1 API group +kubebuilder:object:generate=true +groupName=replication.storage.openshift.io

Index

Constants

View Source
const (
	ConditionCompleted = "Completed"
	ConditionDegraded  = "Degraded"
	ConditionResyncing = "Resyncing"
	ConditionValidated = "Validated"
)

These are valid condition statuses. "ConditionCompleted" means the condition is fulfilled. "ConditionDegraded" means the condition is not fulfilled. "ConditionResyncing" means the condition is resyncing.

View Source
const (
	// Success condition represents the successful completion of the operation.
	Success = "Success"
	Promoted = "Promoted"
	// Demoted condition represents the successful demotion of the volume.
	Demoted = "Demoted"
	// FailedToPromote condition represents the failure to promote the volume.
	FailedToPromote = "FailedToPromote"
	// FailedToDemote condition represents the failure to demote the volume.
	FailedToDemote = "FailedToDemote"
	// Error condition represents the error in the operation.
	Error = "Error"
	// VolumeDegraded condition represents the volume is degraded.
	VolumeDegraded = "VolumeDegraded"
	// Healthy condition represents the volume is healthy.
	Healthy = "Healthy"
	// ResyncTriggered condition represents the resync operation is triggered.
	ResyncTriggered = "ResyncTriggered"
	// FailedToResync condition represents the failure to resync the volume.
	FailedToResync = "FailedToResync"
	// NotResyncing condition represents the volume is not resyncing.
	NotResyncing = "NotResyncing"
	// PrerequisiteMet condition represents that the prerequisite is met.
	PrerequisiteMet = "PrerequisiteMet"
	// PrerequisiteNotMet condition represents that the prerequisite is not met.
	PrerequisiteNotMet = "PrerequisiteNotMet"
)
View Source
const (
	VolumeReplicationNameAnnotation = "replication.storage.openshift.io/volume-replication-name"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "replication.storage.openshift.io", Version: "v1alpha1"}

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type ReplicationState

type ReplicationState string

ReplicationState represents the replication operations to be performed on the volume. +kubebuilder:validation:Enum=primary;secondary;resync

const (
	// Primary ReplicationState enables mirroring and promotes the volume to primary.
	Primary ReplicationState = "primary"

	// Secondary ReplicationState demotes the volume to secondary and resyncs the volume if out of sync.
	Secondary ReplicationState = "secondary"

	// Resync option resyncs the volume.
	Resync ReplicationState = "resync"
)

type State

type State string

State captures the latest state of the replication operation.

const (
	// PrimaryState represents the Primary replication state.
	PrimaryState State = "Primary"

	// SecondaryState represents the Secondary replication state.
	SecondaryState State = "Secondary"

	// UnknownState represents the Unknown replication state.
	UnknownState State = "Unknown"
)

type VolumeGroupReplication

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

	Spec   VolumeGroupReplicationSpec   `json:"spec,omitempty"`
	Status VolumeGroupReplicationStatus `json:"status,omitempty"`
}

VolumeGroupReplication is the Schema for the volumegroupreplications API

func (*VolumeGroupReplication) DeepCopy

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

func (*VolumeGroupReplication) DeepCopyInto

func (in *VolumeGroupReplication) DeepCopyInto(out *VolumeGroupReplication)

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

func (*VolumeGroupReplication) DeepCopyObject

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

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

type VolumeGroupReplicationClass

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

	Spec   VolumeGroupReplicationClassSpec   `json:"spec,omitempty"`
	Status VolumeGroupReplicationClassStatus `json:"status,omitempty"`
}

VolumeGroupReplicationClass is the Schema for the volumegroupreplicationclasses API

func (*VolumeGroupReplicationClass) DeepCopy

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

func (*VolumeGroupReplicationClass) DeepCopyInto

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

func (*VolumeGroupReplicationClass) DeepCopyObject

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

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

type VolumeGroupReplicationClassList

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

VolumeGroupReplicationClassList contains a list of VolumeGroupReplicationClass

func (*VolumeGroupReplicationClassList) DeepCopy

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

func (*VolumeGroupReplicationClassList) DeepCopyInto

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

func (*VolumeGroupReplicationClassList) DeepCopyObject

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

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

type VolumeGroupReplicationClassSpec

type VolumeGroupReplicationClassSpec struct {
	// Provisioner is the name of storage provisioner
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="provisioner is immutable"
	Provisioner string `json:"provisioner"`
	// Parameters is a key-value map with storage provisioner specific configurations for
	// creating volume group replicas
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="parameters are immutable"
	Parameters map[string]string `json:"parameters,omitempty"`
}

VolumeGroupReplicationClassSpec specifies parameters that an underlying storage system uses when creating a volumegroup replica. A specific VolumeGroupReplicationClass is used by specifying its name in a VolumeGroupReplication object. +kubebuilder:validation:XValidation:rule="has(self.parameters) == has(oldSelf.parameters)",message="parameters are immutable"

func (*VolumeGroupReplicationClassSpec) DeepCopy

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

func (*VolumeGroupReplicationClassSpec) DeepCopyInto

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

type VolumeGroupReplicationClassStatus

type VolumeGroupReplicationClassStatus struct {
}

VolumeGroupReplicationClassStatus defines the observed state of VolumeGroupReplicationClass

func (*VolumeGroupReplicationClassStatus) DeepCopy

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

func (*VolumeGroupReplicationClassStatus) DeepCopyInto

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

type VolumeGroupReplicationContent

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

	Spec   VolumeGroupReplicationContentSpec   `json:"spec,omitempty"`
	Status VolumeGroupReplicationContentStatus `json:"status,omitempty"`
}

VolumeGroupReplicationContent is the Schema for the volumegroupreplicationcontents API

func (*VolumeGroupReplicationContent) DeepCopy

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

func (*VolumeGroupReplicationContent) DeepCopyInto

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

func (*VolumeGroupReplicationContent) DeepCopyObject

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

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

type VolumeGroupReplicationContentList

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

VolumeGroupReplicationContentList contains a list of VolumeGroupReplicationContent

func (*VolumeGroupReplicationContentList) DeepCopy

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

func (*VolumeGroupReplicationContentList) DeepCopyInto

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

func (*VolumeGroupReplicationContentList) DeepCopyObject

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

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

type VolumeGroupReplicationContentSource

type VolumeGroupReplicationContentSource struct {
	// VolumeHandles is a list of volume handles on the backend to be grouped
	// and replicated.
	VolumeHandles []string `json:"volumeHandles"`
}

VolumeGroupReplicationContentSource represents the CSI source of a group replication.

func (*VolumeGroupReplicationContentSource) DeepCopy

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

func (*VolumeGroupReplicationContentSource) DeepCopyInto

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

type VolumeGroupReplicationContentSpec

type VolumeGroupReplicationContentSpec struct {
	// VolumeGroupreplicationRef specifies the VolumeGroupReplication object to which this
	// VolumeGroupReplicationContent object is bound.
	// VolumeGroupReplication.Spec.VolumeGroupReplicationContentName field must reference to
	// this VolumeGroupReplicationContent's name for the bidirectional binding to be valid.
	// For a pre-existing VolumeGroupReplicationContent object, name and namespace of the
	// VolumeGroupReplication object MUST be provided for binding to happen.
	// This field is immutable after creation.
	// Required.
	// +kubebuilder:validation:XValidation:rule="has(self.name) && has(self.__namespace__)",message="both volumeGroupReplicationRef.name and volumeGroupReplicationRef.namespace must be set"
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="volumeGroupReplicationRef is immutable"
	VolumeGroupReplicationRef corev1.ObjectReference `json:"volumeGroupReplicationRef"`

	// VolumeGroupReplicationHandle is a unique id returned by the CSI driver
	// to identify the VolumeGroupReplication on the storage system.
	VolumeGroupReplicationHandle string `json:"volumeGroupReplicationHandle"`

	// provisioner is the name of the CSI driver used to create the physical
	// volume group on
	// the underlying storage system.
	// This MUST be the same as the name returned by the CSI GetPluginName() call for
	// that driver.
	// Required.
	Provisioner string `json:"provisioner"`

	// VolumeGroupReplicationClassName is the name of the VolumeGroupReplicationClass from
	// which this group replication was (or will be) created.
	// +optional
	VolumeGroupReplicationClassName string `json:"volumeGroupReplicationClassName"`

	// Source specifies whether the snapshot is (or should be) dynamically provisioned
	// or already exists, and just requires a Kubernetes object representation.
	// This field is immutable after creation.
	// Required.
	Source VolumeGroupReplicationContentSource `json:"source"`
}

VolumeGroupReplicationContentSpec defines the desired state of VolumeGroupReplicationContent

func (*VolumeGroupReplicationContentSpec) DeepCopy

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

func (*VolumeGroupReplicationContentSpec) DeepCopyInto

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

type VolumeGroupReplicationContentStatus

type VolumeGroupReplicationContentStatus struct {
	// PersistentVolumeRefList is the list of of PV for the group replication
	// The maximum number of allowed PV in the group is 100.
	// +optional
	PersistentVolumeRefList []corev1.LocalObjectReference `json:"persistentVolumeRefList,omitempty"`
}

VolumeGroupReplicationContentStatus defines the status of VolumeGroupReplicationContent

func (*VolumeGroupReplicationContentStatus) DeepCopy

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

func (*VolumeGroupReplicationContentStatus) DeepCopyInto

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

type VolumeGroupReplicationList

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

VolumeGroupReplicationList contains a list of VolumeGroupReplication

func (*VolumeGroupReplicationList) DeepCopy

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

func (*VolumeGroupReplicationList) DeepCopyInto

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

func (*VolumeGroupReplicationList) DeepCopyObject

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

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

type VolumeGroupReplicationSource

type VolumeGroupReplicationSource struct {
	// Selector is a label query over persistent volume claims that are to be
	// grouped together for replication.
	// +optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="selector is immutable"
	Selector *metav1.LabelSelector `json:"selector,omitempty"`
}

VolumeGroupReplicationSource specifies the source for the the volumeGroupReplication

func (*VolumeGroupReplicationSource) DeepCopy

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

func (*VolumeGroupReplicationSource) DeepCopyInto

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

type VolumeGroupReplicationSpec

type VolumeGroupReplicationSpec struct {
	// volumeGroupReplicationClassName is the volumeGroupReplicationClass name for this VolumeGroupReplication resource
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="volumeGroupReplicationClassName is immutable"
	VolumeGroupReplicationClassName string `json:"volumeGroupReplicationClassName"`

	// volumeReplicationClassName is the volumeReplicationClass name for VolumeReplication object
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="volumReplicationClassName is immutable"
	VolumeReplicationClassName string `json:"volumeReplicationClassName"`

	// Name of the VolumeReplication object created for this volumeGroupReplication
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="volumeReplicationName is immutable"
	VolumeReplicationName string `json:"volumeReplicationName,omitempty"`

	// Name of the VolumeGroupReplicationContent object created for this volumeGroupReplication
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="volumeGroupReplicationContentName is immutable"
	VolumeGroupReplicationContentName string `json:"volumeGroupReplicationContentName,omitempty"`

	// Source specifies where a group replications will be created from.
	// This field is immutable after creation.
	// Required.
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="source is immutable"
	Source VolumeGroupReplicationSource `json:"source"`

	// ReplicationState represents the replication operation to be performed on the group.
	// Supported operations are "primary", "secondary" and "resync"
	// +kubebuilder:validation:Required
	ReplicationState ReplicationState `json:"replicationState"`

	// AutoResync represents the group to be auto resynced when
	// ReplicationState is "secondary"
	// +kubebuilder:default:=false
	AutoResync bool `json:"autoResync"`
}

VolumeGroupReplicationSpec defines the desired state of VolumeGroupReplication

func (*VolumeGroupReplicationSpec) DeepCopy

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

func (*VolumeGroupReplicationSpec) DeepCopyInto

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

type VolumeGroupReplicationStatus

type VolumeGroupReplicationStatus struct {
	VolumeReplicationStatus `json:",inline"`
	// PersistentVolumeClaimsRefList is the list of PVCs for the volume group replication.
	// The maximum number of allowed PVCs in the group is 100.
	// +optional
	PersistentVolumeClaimsRefList []corev1.LocalObjectReference `json:"persistentVolumeClaimsRefList,omitempty"`
}

VolumeGroupReplicationStatus defines the observed state of VolumeGroupReplication

func (*VolumeGroupReplicationStatus) DeepCopy

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

func (*VolumeGroupReplicationStatus) DeepCopyInto

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

type VolumeReplication

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

	// +kubebuilder:validation:Required
	Spec VolumeReplicationSpec `json:"spec"`

	Status VolumeReplicationStatus `json:"status,omitempty"`
}

VolumeReplication is the Schema for the volumereplications API.

func (*VolumeReplication) DeepCopy

func (in *VolumeReplication) DeepCopy() *VolumeReplication

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

func (*VolumeReplication) DeepCopyInto

func (in *VolumeReplication) DeepCopyInto(out *VolumeReplication)

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

func (*VolumeReplication) DeepCopyObject

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

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

type VolumeReplicationClass

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

	// +kubebuilder:validation:Required
	Spec VolumeReplicationClassSpec `json:"spec"`

	Status VolumeReplicationClassStatus `json:"status,omitempty"`
}

VolumeReplicationClass is the Schema for the volumereplicationclasses API.

func (*VolumeReplicationClass) DeepCopy

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

func (*VolumeReplicationClass) DeepCopyInto

func (in *VolumeReplicationClass) DeepCopyInto(out *VolumeReplicationClass)

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

func (*VolumeReplicationClass) DeepCopyObject

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

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

type VolumeReplicationClassList

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

VolumeReplicationClassList contains a list of VolumeReplicationClass.

func (*VolumeReplicationClassList) DeepCopy

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

func (*VolumeReplicationClassList) DeepCopyInto

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

func (*VolumeReplicationClassList) DeepCopyObject

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

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

type VolumeReplicationClassSpec

type VolumeReplicationClassSpec struct {
	// Provisioner is the name of storage provisioner
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="provisioner is immutable"
	Provisioner string `json:"provisioner"`
	// Parameters is a key-value map with storage provisioner specific configurations for
	// creating volume replicas
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="parameters are immutable"
	Parameters map[string]string `json:"parameters,omitempty"`
}

VolumeReplicationClassSpec specifies parameters that an underlying storage system uses when creating a volume replica. A specific VolumeReplicationClass is used by specifying its name in a VolumeReplication object. +kubebuilder:validation:XValidation:rule="has(self.parameters) == has(oldSelf.parameters)",message="parameters are immutable"

func (*VolumeReplicationClassSpec) DeepCopy

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

func (*VolumeReplicationClassSpec) DeepCopyInto

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

type VolumeReplicationClassStatus

type VolumeReplicationClassStatus struct{}

VolumeReplicationClassStatus defines the observed state of VolumeReplicationClass.

func (*VolumeReplicationClassStatus) DeepCopy

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

func (*VolumeReplicationClassStatus) DeepCopyInto

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

type VolumeReplicationList

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

VolumeReplicationList contains a list of VolumeReplication.

func (*VolumeReplicationList) DeepCopy

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

func (*VolumeReplicationList) DeepCopyInto

func (in *VolumeReplicationList) DeepCopyInto(out *VolumeReplicationList)

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

func (*VolumeReplicationList) DeepCopyObject

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

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

type VolumeReplicationSpec

type VolumeReplicationSpec struct {
	// VolumeReplicationClass is the VolumeReplicationClass name for this VolumeReplication resource
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="volumeReplicationClass is immutable"
	VolumeReplicationClass string `json:"volumeReplicationClass"`

	// ReplicationState represents the replication operation to be performed on the volume.
	// Supported operations are "primary", "secondary" and "resync"
	// +kubebuilder:validation:Required
	ReplicationState ReplicationState `json:"replicationState"`

	// DataSource represents the object associated with the volume
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="dataSource is immutable"
	DataSource corev1.TypedLocalObjectReference `json:"dataSource"`

	// AutoResync represents the volume to be auto resynced when
	// ReplicationState is "secondary"
	// +kubebuilder:default:=false
	AutoResync bool `json:"autoResync"`

	// replicationHandle represents an existing (but new) replication id
	// +kubebuilder:validation:Optional
	ReplicationHandle string `json:"replicationHandle"`
}

VolumeReplicationSpec defines the desired state of VolumeReplication.

func (*VolumeReplicationSpec) DeepCopy

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

func (*VolumeReplicationSpec) DeepCopyInto

func (in *VolumeReplicationSpec) DeepCopyInto(out *VolumeReplicationSpec)

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

type VolumeReplicationStatus

type VolumeReplicationStatus struct {
	State   State  `json:"state,omitempty"`
	Message string `json:"message,omitempty"`
	// Conditions are the list of conditions and their status.
	Conditions []metav1.Condition `json:"conditions,omitempty"`
	// observedGeneration is the last generation change the operator has dealt with
	// +optional
	ObservedGeneration int64            `json:"observedGeneration,omitempty"`
	LastStartTime      *metav1.Time     `json:"lastStartTime,omitempty"`
	LastCompletionTime *metav1.Time     `json:"lastCompletionTime,omitempty"`
	LastSyncTime       *metav1.Time     `json:"lastSyncTime,omitempty"`
	LastSyncBytes      *int64           `json:"lastSyncBytes,omitempty"`
	LastSyncDuration   *metav1.Duration `json:"lastSyncDuration,omitempty"`
}

VolumeReplicationStatus defines the observed state of VolumeReplication.

func (*VolumeReplicationStatus) DeepCopy

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

func (*VolumeReplicationStatus) DeepCopyInto

func (in *VolumeReplicationStatus) DeepCopyInto(out *VolumeReplicationStatus)

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

Jump to

Keyboard shortcuts

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