Documentation ¶
Overview ¶
+groupName=storage.kubestash.com
Package v1alpha1 contains API Schema definitions for the storage v1alpha1 API group +kubebuilder:object:generate=true +groupName=storage.kubestash.com
Index ¶
- Constants
- Variables
- func ConvertSizeToByte(sizeWithUnit []string) (uint64, error)
- func FormatBytes(c uint64) string
- func GenerateSnapshotName(repoName, backupSession string) string
- type AzureSpec
- type Backend
- type BackupStorage
- func (b *BackupStorage) CalculatePhase() BackupStoragePhase
- func (_ BackupStorage) CustomResourceDefinition() *apiextensions.CustomResourceDefinition
- func (in *BackupStorage) DeepCopy() *BackupStorage
- func (in *BackupStorage) DeepCopyInto(out *BackupStorage)
- func (in *BackupStorage) DeepCopyObject() runtime.Object
- func (r *BackupStorage) Default()
- func (b *BackupStorage) LocalNetworkVolume() bool
- func (b *BackupStorage) LocalProvider() bool
- func (b *BackupStorage) OffshootLabels() map[string]string
- func (r *BackupStorage) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (b *BackupStorage) UsageAllowed(srcNamespace *core.Namespace) bool
- func (r *BackupStorage) ValidateCreate() (admission.Warnings, error)
- func (r *BackupStorage) ValidateDelete() (admission.Warnings, error)
- func (r *BackupStorage) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type BackupStorageList
- type BackupStoragePhase
- type BackupStorageSpec
- type BackupStorageStatus
- type BackupType
- type Component
- type ComponentPhase
- type DeletionPolicy
- type Duration
- type FailedSnapshotsKeepPolicy
- type GCSSpec
- type LocalSpec
- type Repository
- func (r *Repository) CalculatePhase() RepositoryPhase
- func (_ Repository) CustomResourceDefinition() *apiextensions.CustomResourceDefinition
- func (in *Repository) DeepCopy() *Repository
- func (in *Repository) DeepCopyInto(out *Repository)
- func (in *Repository) DeepCopyObject() runtime.Object
- func (r *Repository) OffshootLabels() map[string]string
- func (r *Repository) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r *Repository) ValidateCreate() (admission.Warnings, error)
- func (r *Repository) ValidateDelete() (admission.Warnings, error)
- func (r *Repository) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type RepositoryInfo
- type RepositoryList
- type RepositoryPhase
- type RepositorySpec
- type RepositoryStatus
- type ResticStats
- type RetentionPeriod
- type RetentionPolicy
- func (_ RetentionPolicy) CustomResourceDefinition() *apiextensions.CustomResourceDefinition
- func (in *RetentionPolicy) DeepCopy() *RetentionPolicy
- func (in *RetentionPolicy) DeepCopyInto(out *RetentionPolicy)
- func (in *RetentionPolicy) DeepCopyObject() runtime.Object
- func (r *RetentionPolicy) Default()
- func (r *RetentionPolicy) SetupWebhookWithManager(mgr ctrl.Manager) error
- func (r RetentionPolicy) UsageAllowed(srcNamespace *core.Namespace) bool
- func (r *RetentionPolicy) ValidateCreate() (admission.Warnings, error)
- func (r *RetentionPolicy) ValidateDelete() (admission.Warnings, error)
- func (r *RetentionPolicy) ValidateUpdate(old runtime.Object) (admission.Warnings, error)
- type RetentionPolicyList
- type RetentionPolicySpec
- type S3Spec
- type Snapshot
- func (s *Snapshot) CalculatePhase() SnapshotPhase
- func (_ Snapshot) CustomResourceDefinition() *apiextensions.CustomResourceDefinition
- func (in *Snapshot) DeepCopy() *Snapshot
- func (in *Snapshot) DeepCopyInto(out *Snapshot)
- func (in *Snapshot) DeepCopyObject() runtime.Object
- func (s *Snapshot) GetComponentPath(componentName string) string
- func (s *Snapshot) GetComponentsPhase() SnapshotPhase
- func (s *Snapshot) GetIntegrity() *bool
- func (s *Snapshot) GetSize() string
- func (s *Snapshot) GetTotalBackupSizeInBytes() (uint64, error)
- func (s *Snapshot) IsCompleted() bool
- func (s *Snapshot) OffshootLabels() map[string]string
- type SnapshotInfo
- type SnapshotList
- type SnapshotPhase
- type SnapshotSpec
- type SnapshotStatus
- type StorageProvider
- type SuccessfulSnapshotsKeepPolicy
- type VerificationStatus
- type VolumeSnapshotterStats
- type WalGStats
- type WalSegment
Constants ¶
const ( ResourceKindBackupStorage = "BackupStorage" ResourceSingularBackupStorage = "backupstorage" ResourcePluralBackupStorage = "backupstorages" BackupStorageReady BackupStoragePhase = "Ready" BackupStorageNotReady BackupStoragePhase = "NotReady" )
const ( TypeBackendInitialized = "BackendInitialized" ReasonBackendInitializationSucceeded = "BackendInitializationSucceeded" ReasonBackendInitializationFailed = "BackendInitializationFailed" TypeBackendSecretFound = "BackendSecretFound" ReasonBackendSecretNotAvailable = "BackendSecretNotAvailable" ReasonBackendSecretAvailable = "BackendSecretAvailable" )
const ( ResourceKindRepository = "Repository" ResourceSingularRepository = "repository" ResourcePluralRepository = "repositories" )
const ( TypeRepositoryInitialized = "RepositoryInitialized" ReasonRepositoryInitializationSucceeded = "RepositoryInitializationSucceeded" ReasonRepositoryInitializationFailed = "RepositoryInitializationFailed" )
const ( ResourceKindRetentionPolicy = "RetentionPolicy" ResourceSingularRetentionPolicy = "retentionpolicy" ResourcePluralRetentionPolicy = "retentionpolicies" )
const ( ResourceKindSnapshot = "Snapshot" ResourceSingularSnapshot = "snapshot" ResourcePluralSnapshot = "snapshots" BackupTypeFull BackupType = "FullBackup" BackupTypeIncremental BackupType = "IncrementalBackup" )
const ( TypeSnapshotMetadataUploaded = "SnapshotMetadataUploaded" ReasonFailedToUploadSnapshotMetadata = "FailedToUploadSnapshotMetadata" ReasonSuccessfullyUploadedSnapshotMetadata = "SuccessfullyUploadedSnapshotMetadata" TypeRecentSnapshotListUpdated = "RecentSnapshotListUpdated" ReasonFailedToUpdateRecentSnapshotList = "FailedToUpdateRecentSnapshotList" ReasonSuccessfullyUpdatedRecentSnapshotList = "SuccessfullyUpdatedRecentSnapshotList" TypeBackupIncomplete = "BackupIncomplete" ReasonBackupExecutorTerminatedBeforeCompletion = "BackupExecutorTerminatedBeforeCompletion" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "storage.kubestash.com", 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 ¶
func ConvertSizeToByte ¶ added in v0.2.0
func FormatBytes ¶ added in v0.2.0
func GenerateSnapshotName ¶
Types ¶
type AzureSpec ¶
type AzureSpec struct { // StorageAccount specifies the name of the Azure Storage Account StorageAccount string `json:"storageAccount,omitempty"` // Container specifies the name of the Azure Blob container that will be used as storage backend. Container string `json:"container,omitempty"` // Prefix specifies a directory inside the bucket/container where the data for this backend will be stored. Prefix string `json:"prefix,omitempty"` // MaxConnections specifies the maximum number of concurrent connections to use to upload/download data to this backend. // +optional MaxConnections int64 `json:"maxConnections,omitempty"` // SecretName specifies the name of the Secret that contains the access credential for this storage. // +optional SecretName string `json:"secretName,omitempty"` }
func (*AzureSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureSpec.
func (*AzureSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Backend ¶
type Backend struct { // Provider specifies the provider of the storage Provider StorageProvider `json:"provider,omitempty"` // Local specifies the storage information for local provider // +optional Local *LocalSpec `json:"local,omitempty"` // S3 specifies the storage information for AWS S3 and S3 compatible storage. // +optional S3 *S3Spec `json:"s3,omitempty"` // GCS specifies the storage information for GCS bucket // +optional GCS *GCSSpec `json:"gcs,omitempty"` // Azure specifies the storage information for Azure Blob container // +optional Azure *AzureSpec `json:"azure,omitempty"` }
func (*Backend) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backend.
func (*Backend) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupStorage ¶
type BackupStorage struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec BackupStorageSpec `json:"spec,omitempty"` Status BackupStorageStatus `json:"status,omitempty"` }
BackupStorage specifies the backend information where the backed up data of different applications will be stored. You can consider BackupStorage as a representation of a bucket in Kubernetes native way. This is a namespaced object. However, you can use the BackupStorage from any namespace as long as it is permitted by the `.spec.usagePolicy` field.
func (*BackupStorage) CalculatePhase ¶
func (b *BackupStorage) CalculatePhase() BackupStoragePhase
func (BackupStorage) CustomResourceDefinition ¶
func (_ BackupStorage) CustomResourceDefinition() *apiextensions.CustomResourceDefinition
func (*BackupStorage) DeepCopy ¶
func (in *BackupStorage) DeepCopy() *BackupStorage
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStorage.
func (*BackupStorage) DeepCopyInto ¶
func (in *BackupStorage) DeepCopyInto(out *BackupStorage)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BackupStorage) DeepCopyObject ¶
func (in *BackupStorage) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*BackupStorage) Default ¶
func (r *BackupStorage) Default()
Default implements webhook.Defaulter so a webhook will be registered for the type
func (*BackupStorage) LocalNetworkVolume ¶ added in v0.2.0
func (b *BackupStorage) LocalNetworkVolume() bool
func (*BackupStorage) LocalProvider ¶ added in v0.2.0
func (b *BackupStorage) LocalProvider() bool
func (*BackupStorage) OffshootLabels ¶ added in v0.2.0
func (b *BackupStorage) OffshootLabels() map[string]string
func (*BackupStorage) SetupWebhookWithManager ¶
func (r *BackupStorage) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*BackupStorage) UsageAllowed ¶
func (b *BackupStorage) UsageAllowed(srcNamespace *core.Namespace) bool
func (*BackupStorage) ValidateCreate ¶
func (r *BackupStorage) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*BackupStorage) ValidateDelete ¶
func (r *BackupStorage) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*BackupStorage) ValidateUpdate ¶
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type BackupStorageList ¶
type BackupStorageList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []BackupStorage `json:"items"` }
BackupStorageList contains a list of BackupStorage
func (*BackupStorageList) DeepCopy ¶
func (in *BackupStorageList) DeepCopy() *BackupStorageList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStorageList.
func (*BackupStorageList) DeepCopyInto ¶
func (in *BackupStorageList) DeepCopyInto(out *BackupStorageList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BackupStorageList) DeepCopyObject ¶
func (in *BackupStorageList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BackupStoragePhase ¶
type BackupStoragePhase string
type BackupStorageSpec ¶
type BackupStorageSpec struct { // Storage specifies the remote storage information Storage Backend `json:"storage,omitempty"` // UsagePolicy specifies a policy of how this BackupStorage will be used. For example, you can use `allowedNamespaces` // policy to restrict the usage of this BackupStorage to particular namespaces. // This field is optional. If you don't provide the usagePolicy, then it can be used only from the current namespace. // +optional UsagePolicy *apis.UsagePolicy `json:"usagePolicy,omitempty"` // Default specifies whether to use this BackupStorage as default storage for the current namespace // as well as the allowed namespaces. One namespace can have at most one default BackupStorage configured. // +optional Default bool `json:"default,omitempty"` // DeletionPolicy specifies what to do when you delete a BackupStorage CR. // The valid values are: // "Delete": This will delete the respective Repository and Snapshot CRs from the cluster but keep the backed up data in the remote backend. This is the default behavior. // "WipeOut": This will delete the respective Repository and Snapshot CRs as well as the backed up data from the backend. // +kubebuilder:default=Delete // +optional DeletionPolicy DeletionPolicy `json:"deletionPolicy,omitempty"` // RuntimeSettings allow to specify Resources, NodeSelector, Affinity, Toleration, ReadinessProbe etc. // for the storage initializer/cleaner job. // +optional RuntimeSettings ofst.RuntimeSettings `json:"runtimeSettings,omitempty"` }
BackupStorageSpec defines information regarding remote backend, its access credentials, usage policy etc.
func (*BackupStorageSpec) DeepCopy ¶
func (in *BackupStorageSpec) DeepCopy() *BackupStorageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStorageSpec.
func (*BackupStorageSpec) DeepCopyInto ¶
func (in *BackupStorageSpec) DeepCopyInto(out *BackupStorageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupStorageStatus ¶
type BackupStorageStatus struct { // Phase indicates the overall phase of the backup BackupStorage. Phase will be "Ready" only // if the Backend is initialized and Repositories are synced. // +optional Phase BackupStoragePhase `json:"phase,omitempty"` // TotalSize represents the total backed up data size in this storage. // This is simply the summation of sizes of all Repositories using this BackupStorage. // +optional TotalSize string `json:"totalSize,omitempty"` // Repositories holds the information of all Repositories using this BackupStorage // +optional Repositories []RepositoryInfo `json:"repositories,omitempty"` // Conditions represents list of conditions regarding this BackupStorage // +optional Conditions []kmapi.Condition `json:"conditions,omitempty"` }
BackupStorageStatus defines the observed state of BackupStorage
func (*BackupStorageStatus) DeepCopy ¶
func (in *BackupStorageStatus) DeepCopy() *BackupStorageStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStorageStatus.
func (*BackupStorageStatus) DeepCopyInto ¶
func (in *BackupStorageStatus) DeepCopyInto(out *BackupStorageStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BackupType ¶
type BackupType string
type Component ¶
type Component struct { // Path specifies the path inside the Repository where the backed up data for this component has been stored. // This path is relative to Repository path. Path string `json:"path,omitempty"` // Phase represents the backup phase of the component // +optional Phase ComponentPhase `json:"phase,omitempty"` // Size represents the size of the restic repository for this component // +optional Size string `json:"size,omitempty"` // Duration specifies the total time taken to complete the backup process for this component // +optional Duration string `json:"duration,omitempty"` // Integrity represents the result of the restic repository integrity check for this component // +optional Integrity *bool `json:"integrity,omitempty"` // Error specifies the reason in case of backup failure for the component // +optional Error string `json:"error,omitempty"` // Driver specifies the name of the tool that has been used to upload the underlying backed up data Driver apis.Driver `json:"driver,omitempty"` // ResticStats specifies the "Restic" driver specific information // +optional ResticStats []ResticStats `json:"resticStats,omitempty"` // WalGStats specifies the "WalG" driver specific information // +optional WalGStats *WalGStats `json:"walGStats,omitempty"` // VolumeSnapshotterStats specifies the "VolumeSnapshotter" driver specific information // +optional VolumeSnapshotterStats []VolumeSnapshotterStats `json:"volumeSnapshotterStats,omitempty"` // WalSegments specifies a list of wall segment for individual component WalSegments []WalSegment `json:"walSegments,omitempty"` }
Component represents the backup information of individual components
func (*Component) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Component.
func (*Component) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ComponentPhase ¶
type ComponentPhase string
ComponentPhase represents the backup phase of the individual component. +kubebuilder:validation:Enum=Pending;Running;Succeeded;Failed
const ( ComponentPhasePending ComponentPhase = "Pending" ComponentPhaseRunning ComponentPhase = "Running" ComponentPhaseSucceeded ComponentPhase = "Succeeded" ComponentPhaseFailed ComponentPhase = "Failed" )
type DeletionPolicy ¶
type DeletionPolicy string
DeletionPolicy specifies what to do if a resource is deleted +kubebuilder:validation:Enum=Delete;WipeOut
const ( DeletionPolicyDelete DeletionPolicy = "Delete" DeletionPolicyWipeOut DeletionPolicy = "WipeOut" )
type Duration ¶
func ParseDuration ¶
ParseDuration parses a duration from a string. The format is `6y5m234d37h`
func (*Duration) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Duration.
func (*Duration) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type FailedSnapshotsKeepPolicy ¶
type FailedSnapshotsKeepPolicy struct { // Last specifies how many last failed Snapshots should be kept. // By default, KubeStash will keep only the last 1 failed Snapshot. // +kubebuilder:default=1 // +optional Last *int32 `json:"last,omitempty"` }
FailedSnapshotsKeepPolicy specifies the policy for keeping failed Snapshots
func (*FailedSnapshotsKeepPolicy) DeepCopy ¶
func (in *FailedSnapshotsKeepPolicy) DeepCopy() *FailedSnapshotsKeepPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FailedSnapshotsKeepPolicy.
func (*FailedSnapshotsKeepPolicy) DeepCopyInto ¶
func (in *FailedSnapshotsKeepPolicy) DeepCopyInto(out *FailedSnapshotsKeepPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GCSSpec ¶
type GCSSpec struct { // Bucket specifies the name of the bucket that will be used as storage backend. Bucket string `json:"bucket,omitempty"` // Prefix specifies a directory inside the bucket/container where the data for this backend will be stored. Prefix string `json:"prefix,omitempty"` // MaxConnections specifies the maximum number of concurrent connections to use to upload/download data to this backend. // +optional MaxConnections int64 `json:"maxConnections,omitempty"` // SecretName specifies the name of the Secret that contains the access credential for this storage. // +optional SecretName string `json:"secretName,omitempty"` }
func (*GCSSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCSSpec.
func (*GCSSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LocalSpec ¶
type LocalSpec struct { // Represents the source of a volume to mount. Only one of its members may be specified. // Make sure the volume exist before using the volume as backend. ofst.VolumeSource `json:",inline"` // MountPath specifies the directory where this volume will be mounted MountPath string `json:"mountPath,omitempty"` // Path within the volume from which the container's volume should be mounted. // Defaults to "" (volume's root). // +optional SubPath string `json:"subPath,omitempty"` }
func (*LocalSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalSpec.
func (*LocalSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (LocalSpec) ToLocalMountPath ¶ added in v0.2.0
func (LocalSpec) ToVolumeAndMount ¶ added in v0.2.0
ToVolumeAndMount returns volumes and mounts for local backend
type Repository ¶
type Repository struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec RepositorySpec `json:"spec,omitempty"` Status RepositoryStatus `json:"status,omitempty"` }
Repository specifies the information about the targeted application that has been backed up and the BackupStorage where the backed up data is being stored. It also holds a list of recent Snapshots that have been taken in this Repository. Repository is a namespaced object. It must be in the same namespace as the targeted application.
func (*Repository) CalculatePhase ¶
func (r *Repository) CalculatePhase() RepositoryPhase
func (Repository) CustomResourceDefinition ¶
func (_ Repository) CustomResourceDefinition() *apiextensions.CustomResourceDefinition
func (*Repository) DeepCopy ¶
func (in *Repository) DeepCopy() *Repository
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Repository.
func (*Repository) DeepCopyInto ¶
func (in *Repository) DeepCopyInto(out *Repository)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Repository) DeepCopyObject ¶
func (in *Repository) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Repository) OffshootLabels ¶ added in v0.2.0
func (r *Repository) OffshootLabels() map[string]string
func (*Repository) SetupWebhookWithManager ¶
func (r *Repository) SetupWebhookWithManager(mgr ctrl.Manager) error
func (*Repository) ValidateCreate ¶
func (r *Repository) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*Repository) ValidateDelete ¶
func (r *Repository) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*Repository) ValidateUpdate ¶
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type RepositoryInfo ¶
type RepositoryInfo struct { // Name represents the name of the respective Repository CR Name string `json:"name,omitempty"` // Namespace represent the namespace where the Repository CR has been created // +optional Namespace string `json:"namespace,omitempty"` // Path represents the directory inside the BackupStorage where this Repository is storing its data // This path is relative to the path of BackupStorage. Path string `json:"path,omitempty"` // Size represents the size of the backed up data in this Repository // +optional Size string `json:"size,omitempty"` // Synced specifies whether this Repository state has been synced with the cloud state or not // +optional Synced *bool `json:"synced,omitempty"` // Error specifies the reason in case of Repository sync failure. // +optional Error *string `json:"error,omitempty"` }
RepositoryInfo specifies information regarding a Repository using the BackupStorage
func (*RepositoryInfo) DeepCopy ¶
func (in *RepositoryInfo) DeepCopy() *RepositoryInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepositoryInfo.
func (*RepositoryInfo) DeepCopyInto ¶
func (in *RepositoryInfo) DeepCopyInto(out *RepositoryInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RepositoryList ¶
type RepositoryList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Repository `json:"items"` }
RepositoryList contains a list of Repository
func (*RepositoryList) DeepCopy ¶
func (in *RepositoryList) DeepCopy() *RepositoryList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepositoryList.
func (*RepositoryList) DeepCopyInto ¶
func (in *RepositoryList) DeepCopyInto(out *RepositoryList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RepositoryList) DeepCopyObject ¶
func (in *RepositoryList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RepositoryPhase ¶
type RepositoryPhase string
RepositoryPhase specifies the current state of the Repository +kubebuilder:validation:Enum=NotReady;Ready
const ( RepositoryNotReady RepositoryPhase = "NotReady" RepositoryReady RepositoryPhase = "Ready" )
type RepositorySpec ¶
type RepositorySpec struct { // AppRef refers to the application that is being backed up in this Repository. AppRef kmapi.TypedObjectReference `json:"appRef,omitempty"` // StorageRef refers to the BackupStorage CR which contain the backend information where the backed // up data will be stored. The BackupStorage could be in a different namespace. However, the Repository // namespace must be allowed to use the BackupStorage. StorageRef kmapi.ObjectReference `json:"storageRef,omitempty"` // Path represents the directory inside the BackupStorage where this Repository is storing its data // This path is relative to the path of BackupStorage. Path string `json:"path,omitempty"` // DeletionPolicy specifies what to do when you delete a Repository CR. // The valid values are: // "Delete": This will delete the respective Snapshot CRs from the cluster but keep the backed up data in the remote backend. This is the default behavior. // "WipeOut": This will delete the respective Snapshot CRs as well as the backed up data from the backend. // +kubebuilder:default=Delete // +optional DeletionPolicy DeletionPolicy `json:"deletionPolicy,omitempty"` // EncryptionSecret refers to the Secret containing the encryption key which will be used to encode/decode the backed up data. // You can refer to a Secret of a different namespace. // If you don't provide the namespace field, KubeStash will look for the Secret in the same namespace as the BackupConfiguration / BackupBatch. EncryptionSecret *kmapi.ObjectReference `json:"encryptionSecret,omitempty"` // Paused specifies whether the Repository is paused or not. If the Repository is paused, // KubeStash will not process any further event for the Repository. // +optional Paused bool `json:"paused,omitempty"` }
RepositorySpec specifies the application reference and the BackupStorage reference.It also specifies what should be the behavior when a Repository CR is deleted from the cluster.
func (*RepositorySpec) DeepCopy ¶
func (in *RepositorySpec) DeepCopy() *RepositorySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepositorySpec.
func (*RepositorySpec) DeepCopyInto ¶
func (in *RepositorySpec) DeepCopyInto(out *RepositorySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RepositoryStatus ¶
type RepositoryStatus struct { // Phase represents the current state of the Repository. // +optional Phase RepositoryPhase `json:"phase,omitempty"` // LastBackupTime specifies the timestamp when the last successful backup has been taken // +optional LastBackupTime *metav1.Time `json:"lastBackupTime,omitempty"` // Integrity specifies whether the backed up data of this Repository has been corrupted or not // +optional Integrity *bool `json:"integrity,omitempty"` // SnapshotCount specifies the number of current Snapshots stored in this Repository // +optional SnapshotCount *int32 `json:"snapshotCount,omitempty"` // Size specifies the amount of backed up data stored in the Repository // +optional Size string `json:"size,omitempty"` // RecentSnapshots holds a list of recent Snapshot information that has been taken in this Repository // +optional RecentSnapshots []SnapshotInfo `json:"recentSnapshots,omitempty"` // Conditions represents list of conditions regarding this Repository // +optional Conditions []kmapi.Condition `json:"conditions,omitempty"` // ComponentPaths represents list of component paths in this Repository // +optional ComponentPaths []string `json:"componentPaths,omitempty"` }
RepositoryStatus defines the observed state of Repository
func (*RepositoryStatus) DeepCopy ¶
func (in *RepositoryStatus) DeepCopy() *RepositoryStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RepositoryStatus.
func (*RepositoryStatus) DeepCopyInto ¶
func (in *RepositoryStatus) DeepCopyInto(out *RepositoryStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResticStats ¶
type ResticStats struct { // Id represents the restic snapshot id Id string `json:"id,omitempty"` // Uploaded specifies the amount of data that has been uploaded in the restic snapshot. // +optional Uploaded string `json:"uploaded,omitempty"` // HostPath represents the backup path for which restic snapshot is taken. // +optional HostPath string `json:"hostPath,omitempty"` // Size represents the restic snapshot size // +optional Size string `json:"size,omitempty"` }
ResticStats specifies the "Restic" driver specific information
func (*ResticStats) DeepCopy ¶
func (in *ResticStats) DeepCopy() *ResticStats
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResticStats.
func (*ResticStats) DeepCopyInto ¶
func (in *ResticStats) DeepCopyInto(out *ResticStats)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RetentionPeriod ¶
type RetentionPeriod string
RetentionPeriod represents a duration in the format "1y2mo3w4d5h6m", where y=year, mo=month, w=week, d=day, h=hour, m=minute.
func (RetentionPeriod) ToMinutes ¶
func (r RetentionPeriod) ToMinutes() (int, error)
type RetentionPolicy ¶
type RetentionPolicy struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec RetentionPolicySpec `json:"spec,omitempty"` }
RetentionPolicy specifies how the old Snapshots should be cleaned up. This is a namespaced CRD. However, you can refer it from other namespaces as long as it is permitted via `.spec.usagePolicy`.
func (RetentionPolicy) CustomResourceDefinition ¶
func (_ RetentionPolicy) CustomResourceDefinition() *apiextensions.CustomResourceDefinition
func (*RetentionPolicy) DeepCopy ¶
func (in *RetentionPolicy) DeepCopy() *RetentionPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetentionPolicy.
func (*RetentionPolicy) DeepCopyInto ¶
func (in *RetentionPolicy) DeepCopyInto(out *RetentionPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RetentionPolicy) DeepCopyObject ¶
func (in *RetentionPolicy) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*RetentionPolicy) Default ¶
func (r *RetentionPolicy) Default()
Default implements webhook.Defaulter so a webhook will be registered for the type
func (*RetentionPolicy) SetupWebhookWithManager ¶
func (r *RetentionPolicy) SetupWebhookWithManager(mgr ctrl.Manager) error
func (RetentionPolicy) UsageAllowed ¶ added in v0.2.0
func (r RetentionPolicy) UsageAllowed(srcNamespace *core.Namespace) bool
func (*RetentionPolicy) ValidateCreate ¶
func (r *RetentionPolicy) ValidateCreate() (admission.Warnings, error)
ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (*RetentionPolicy) ValidateDelete ¶
func (r *RetentionPolicy) ValidateDelete() (admission.Warnings, error)
ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (*RetentionPolicy) ValidateUpdate ¶
ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
type RetentionPolicyList ¶
type RetentionPolicyList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []RetentionPolicy `json:"items"` }
RetentionPolicyList contains a list of RetentionPolicy
func (*RetentionPolicyList) DeepCopy ¶
func (in *RetentionPolicyList) DeepCopy() *RetentionPolicyList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetentionPolicyList.
func (*RetentionPolicyList) DeepCopyInto ¶
func (in *RetentionPolicyList) DeepCopyInto(out *RetentionPolicyList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RetentionPolicyList) DeepCopyObject ¶
func (in *RetentionPolicyList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type RetentionPolicySpec ¶
type RetentionPolicySpec struct { // MaxRetentionPeriod specifies a duration up to which the old Snapshots should be kept. // KubeStash will remove all the Snapshots that are older than the MaxRetentionPeriod. // For example, MaxRetentionPeriod of `30d` will keep only the Snapshots of last 30 days. // Sample duration format: // - years: 2y // - months: 6mo // - days: 30d // - hours: 12h // - minutes: 30m // You can also combine the above durations. For example: 30d12h30m // +optional MaxRetentionPeriod RetentionPeriod `json:"maxRetentionPeriod,omitempty"` // UsagePolicy specifies a policy of how this RetentionPolicy will be used. For example, you can use `allowedNamespaces` // policy to restrict the usage of this RetentionPolicy to particular namespaces. // This field is optional. If you don't provide the usagePolicy, then it can be used only from the current namespace. // +optional UsagePolicy *apis.UsagePolicy `json:"usagePolicy,omitempty"` // SuccessfulSnapshots specifies how many successful Snapshots should be kept. // +optional SuccessfulSnapshots *SuccessfulSnapshotsKeepPolicy `json:"successfulSnapshots,omitempty"` // FailedSnapshots specifies how many failed Snapshots should be kept. // +optional FailedSnapshots *FailedSnapshotsKeepPolicy `json:"failedSnapshots,omitempty"` // Default specifies whether to use this RetentionPolicy as a default RetentionPolicy for // the current namespace as well as the permitted namespaces. // One namespace can have at most one default RetentionPolicy configured. // +optional Default bool `json:"default,omitempty"` }
RetentionPolicySpec defines the policy of cleaning old Snapshots
func (*RetentionPolicySpec) DeepCopy ¶
func (in *RetentionPolicySpec) DeepCopy() *RetentionPolicySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetentionPolicySpec.
func (*RetentionPolicySpec) DeepCopyInto ¶
func (in *RetentionPolicySpec) DeepCopyInto(out *RetentionPolicySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type S3Spec ¶
type S3Spec struct { // Endpoint specifies the URL of the S3 or S3 compatible storage bucket. Endpoint string `json:"endpoint,omitempty"` // Bucket specifies the name of the bucket that will be used as storage backend. Bucket string `json:"bucket,omitempty"` // Prefix specifies a directory inside the bucket/container where the data for this backend will be stored. Prefix string `json:"prefix,omitempty"` // Region specifies the region where the bucket is located // +optional Region string `json:"region,omitempty"` // SecretName specifies the name of the Secret that contains the access credential for this storage. // +optional SecretName string `json:"secretName,omitempty"` // InsecureTLS controls whether a client should skip TLS certificate verification. // Setting this field to true disables verification, which might be necessary in cases // where the server uses self-signed certificates or certificates from an untrusted CA. // Use this option with caution, as it can expose the client to man-in-the-middle attacks // and other security risks. Only use it when absolutely necessary. // +optional InsecureTLS bool `json:"insecureTLS,omitempty"` }
func (*S3Spec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3Spec.
func (*S3Spec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Snapshot ¶
type Snapshot struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec SnapshotSpec `json:"spec,omitempty"` Status SnapshotStatus `json:"status,omitempty"` }
Snapshot represents the state of a backup run to a particular Repository. Multiple components of the same target may be backed up in the same Snapshot. This is a namespaced CRD. It should be in the same namespace as the respective Repository. KubeStash operator is responsible for creating Snapshot CR. Snapshot is not supposed to be created/edited by the end user.
func (*Snapshot) CalculatePhase ¶
func (s *Snapshot) CalculatePhase() SnapshotPhase
func (Snapshot) CustomResourceDefinition ¶
func (_ Snapshot) CustomResourceDefinition() *apiextensions.CustomResourceDefinition
func (*Snapshot) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Snapshot.
func (*Snapshot) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Snapshot) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Snapshot) GetComponentPath ¶ added in v0.2.0
func (*Snapshot) GetComponentsPhase ¶
func (s *Snapshot) GetComponentsPhase() SnapshotPhase
func (*Snapshot) GetIntegrity ¶ added in v0.2.0
func (*Snapshot) GetTotalBackupSizeInBytes ¶ added in v0.2.0
func (*Snapshot) IsCompleted ¶ added in v0.2.0
func (*Snapshot) OffshootLabels ¶ added in v0.2.0
type SnapshotInfo ¶
type SnapshotInfo struct { // Name represents the name of the Snapshot Name string `json:"name,omitempty"` // Phase represents the phase of the Snapshot // +optional Phase SnapshotPhase `json:"phase,omitempty"` // Session represents the name of the session that is responsible for this Snapshot Session string `json:"session,omitempty"` // Size represents the size of the Snapshot // +optional Size string `json:"size,omitempty"` // SnapshotTime represents the time when this Snapshot was taken // +optional SnapshotTime *metav1.Time `json:"snapshotTime,omitempty"` }
SnapshotInfo specifies some basic information about the Snapshots stored in this Repository
func (*SnapshotInfo) DeepCopy ¶
func (in *SnapshotInfo) DeepCopy() *SnapshotInfo
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SnapshotInfo.
func (*SnapshotInfo) DeepCopyInto ¶
func (in *SnapshotInfo) DeepCopyInto(out *SnapshotInfo)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SnapshotList ¶
type SnapshotList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []Snapshot `json:"items"` }
SnapshotList contains a list of Snapshot
func (*SnapshotList) DeepCopy ¶
func (in *SnapshotList) DeepCopy() *SnapshotList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SnapshotList.
func (*SnapshotList) DeepCopyInto ¶
func (in *SnapshotList) DeepCopyInto(out *SnapshotList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*SnapshotList) DeepCopyObject ¶
func (in *SnapshotList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type SnapshotPhase ¶
type SnapshotPhase string
SnapshotPhase represent the overall progress of this Snapshot +kubebuilder:validation:Enum=Pending;Running;Succeeded;Failed
const ( SnapshotPending SnapshotPhase = "Pending" SnapshotRunning SnapshotPhase = "Running" SnapshotSucceeded SnapshotPhase = "Succeeded" SnapshotFailed SnapshotPhase = "Failed" )
type SnapshotSpec ¶
type SnapshotSpec struct { // SnapshotID represents a "Universally Unique Lexicographically Sortable Identifier" (ULID) for the Snapshot. // For more details about ULID, please see: https://github.com/oklog/ulid // +optional SnapshotID string `json:"snapshotID,omitempty"` // Type specifies whether this snapshot represents a full or incremental backup Type BackupType `json:"type,omitempty"` // Repository specifies the name of the Repository where this Snapshot is being stored. Repository string `json:"repository,omitempty"` // Session specifies the name of the session which is responsible for this Snapshot Session string `json:"session,omitempty"` // BackupSession represents the name of the respective BackupSession which is responsible for this Snapshot. // +optional BackupSession string `json:"backupSession,omitempty"` // Version denotes the respective data organization structure inside the Repository Version string `json:"version,omitempty"` // AppRef specifies the reference of the application that has been backed up in this Snapshot. AppRef kmapi.TypedObjectReference `json:"appRef,omitempty"` // DeletionPolicy specifies what to do when you delete a Snapshot CR. // The valid values are: // - "Delete": This will delete just the Snapshot CR from the cluster but keep the backed up data in the remote backend. This is the default behavior. // - "WipeOut": This will delete the Snapshot CR as well as the backed up data from the backend. // +kubebuilder:default=Delete // +optional DeletionPolicy DeletionPolicy `json:"deletionPolicy,omitempty"` // Paused specifies whether the Snapshot is paused or not. If the Snapshot is paused, // KubeStash will not process any further event for the Snapshot. // +optional Paused bool `json:"paused,omitempty"` }
SnapshotSpec specifies the information regarding the application that is being backed up, the Repository where the backed up data is being stored, and the session which is responsible for this snapshot etc.
func (*SnapshotSpec) DeepCopy ¶
func (in *SnapshotSpec) DeepCopy() *SnapshotSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SnapshotSpec.
func (*SnapshotSpec) DeepCopyInto ¶
func (in *SnapshotSpec) DeepCopyInto(out *SnapshotSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SnapshotStatus ¶
type SnapshotStatus struct { // Phase represents the backup state of this Snapshot // +optional Phase SnapshotPhase `json:"phase,omitempty"` // VerificationStatus specifies whether this Snapshot has been verified or not // +optional VerificationStatus VerificationStatus `json:"verificationStatus,omitempty"` // SnapshotTime represents the timestamp when this Snapshot was taken. // +optional SnapshotTime *metav1.Time `json:"snapshotTime,omitempty"` // LastUpdateTime specifies the timestamp when this Snapshot was last updated. // +optional LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` // Size represents the size of the Snapshot // +optional Size string `json:"size,omitempty"` // Integrity represents whether the Snapshot data has been corrupted or not // +optional Integrity *bool `json:"integrity,omitempty"` // Conditions represents list of conditions regarding this Snapshot // +optional Conditions []kmapi.Condition `json:"conditions,omitempty"` // TotalComponents represents the number of total components for this Snapshot // +optional TotalComponents int32 `json:"totalComponents,omitempty"` // Components represents the backup information of the individual components of this Snapshot // +optional // +mapType=granular Components map[string]Component `json:"components,omitempty"` }
SnapshotStatus defines the observed state of Snapshot
func (*SnapshotStatus) DeepCopy ¶
func (in *SnapshotStatus) DeepCopy() *SnapshotStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SnapshotStatus.
func (*SnapshotStatus) DeepCopyInto ¶
func (in *SnapshotStatus) DeepCopyInto(out *SnapshotStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StorageProvider ¶
type StorageProvider string
const ( ProviderLocal StorageProvider = "local" ProviderS3 StorageProvider = "s3" ProviderGCS StorageProvider = "gcs" ProviderAzure StorageProvider = "azure" )
type SuccessfulSnapshotsKeepPolicy ¶
type SuccessfulSnapshotsKeepPolicy struct { // Last specifies how many last Snapshots should be kept. // +optional Last *int32 `json:"last,omitempty"` // Hourly specifies how many hourly Snapshots should be kept. // +optional Hourly *int32 `json:"hourly,omitempty"` // Daily specifies how many daily Snapshots should be kept. // +optional Daily *int32 `json:"daily,omitempty"` // Weekly specifies how many weekly Snapshots should be kept. // +optional Weekly *int32 `json:"weekly,omitempty"` // Monthly specifies how many monthly Snapshots should be kept. // +optional Monthly *int32 `json:"monthly,omitempty"` // Yearly specifies how many yearly Snapshots should be kept. // +optional Yearly *int32 `json:"yearly,omitempty"` }
SuccessfulSnapshotsKeepPolicy specifies the policy for keeping successful Snapshots
func (*SuccessfulSnapshotsKeepPolicy) DeepCopy ¶
func (in *SuccessfulSnapshotsKeepPolicy) DeepCopy() *SuccessfulSnapshotsKeepPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuccessfulSnapshotsKeepPolicy.
func (*SuccessfulSnapshotsKeepPolicy) DeepCopyInto ¶
func (in *SuccessfulSnapshotsKeepPolicy) DeepCopyInto(out *SuccessfulSnapshotsKeepPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VerificationStatus ¶
type VerificationStatus string
VerificationStatus represents whether the Snapshot has been verified or not. +kubebuilder:validation:Enum=Verified;NotVerified;VerificationFailed
const ( SnapshotVerified VerificationStatus = "Verified" SnapshotNotVerified VerificationStatus = "NotVerified" SnapshotVerificationFailed VerificationStatus = "VerificationFailed" )
type VolumeSnapshotterStats ¶
type VolumeSnapshotterStats struct { // PVCName represents the backup PVC name for which volumeSnapshot is created. // +optional PVCName string `json:"pvcName,omitempty"` // HostPath represents the corresponding path of PVC for which volumeSnapshot is created. // +optional HostPath string `json:"hostPath,omitempty"` // VolumeSnapshotName represents the name of created volumeSnapshot. // +optional VolumeSnapshotName string `json:"volumeSnapshotName,omitempty"` // VolumeSnapshotTime indicates the timestamp at which the volumeSnapshot was created. VolumeSnapshotTime *metav1.Time `json:"volumeSnapshotTime,omitempty"` }
VolumeSnapshotterStats specifies the "VolumeSnapshotter" driver specific information
func (*VolumeSnapshotterStats) DeepCopy ¶
func (in *VolumeSnapshotterStats) DeepCopy() *VolumeSnapshotterStats
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSnapshotterStats.
func (*VolumeSnapshotterStats) DeepCopyInto ¶
func (in *VolumeSnapshotterStats) DeepCopyInto(out *VolumeSnapshotterStats)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WalGStats ¶ added in v0.10.0
type WalGStats struct { // Id represents the WalG snapshot ID. Id string `json:"id,omitempty"` // Databases represents the list of target backup databases. // +optional Databases []string `json:"databases,omitempty"` // StartTime represents the WalG backup start time. // +optional StartTime *metav1.Time `json:"startTime,omitempty"` // StopTime represents the WalG backup stop time. // +optional StopTime *metav1.Time `json:"stopTime,omitempty"` }
WalGStats specifies the information specific to the "WalG" driver.
func (*WalGStats) DeepCopy ¶ added in v0.10.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WalGStats.
func (*WalGStats) DeepCopyInto ¶ added in v0.10.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WalSegment ¶
type WalSegment struct { Start *metav1.Time `json:"start,omitempty"` End *metav1.Time `json:"end,omitempty"` }
WalSegment specifies the "WalG" driver specific information
func (*WalSegment) DeepCopy ¶
func (in *WalSegment) DeepCopy() *WalSegment
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WalSegment.
func (*WalSegment) DeepCopyInto ¶
func (in *WalSegment) DeepCopyInto(out *WalSegment)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Source Files ¶
- backupstorage_helpers.go
- backupstorage_types.go
- backupstorage_webhook.go
- doc.go
- groupversion_info.go
- repository_helpers.go
- repository_types.go
- repository_webhook.go
- retentionpolicy_helpers.go
- retentionpolicy_types.go
- retentionpolicy_webhook.go
- snapshot_helpers.go
- snapshot_types.go
- types.go
- types_helpers.go
- zz_generated.deepcopy.go