Custom Resource Definition - Application

API Schema for TVK Application

Packages:

  • triliovault.trilio.io/v1

triliovault.trilio.io/v1

Package v1 contains API Schema definitions for the triliocrds v1 API group

Resource Types:

ApplicationType (string alias)

(Appears on: BackupPlanStatus, BackupStatus, RestoreStatus)

ApplicationType specifies type of a Backup of an application

Backup

Backup represents the capture of Kubernetes BackupPlan defined by user at a point in time

Field

Description

metadata Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec BackupSpec

type

BackupType

backupplan

BackupPlan

status BackupStatus

BackupCondition

(Appears on: BackupStatus)

BackupCondition specifies the current condition of a backup resource.

Field

Description

status Status

Status is the status of the condition.

timestamp Kubernetes meta/v1.Time

Timestamp is the time a condition occurred.

reason string

A brief message indicating details about why the component is in this condition.

phase OperationType

Phase defines the current phase of the controller

BackupConfig

(Appears on: BackupPlanSpec)

BackupConfig defines the require configuration for taking the backup such as target and retention policy

Field

Description

target Kubernetes core/v1.ObjectReference

Target is the object reference for the backup target resources

retentionPolicy Kubernetes core/v1.ObjectReference

RetentionPolicy is the object reference for the policy of type retention defined

schedulePolicy SchedulePolicy

SchedulePolicy includes the 2 type of cron schedule specs: incremental and full

BackupPlan

BackupPlan is the Schema for the applications API

Field

Description

metadata Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec BackupPlanSpec

BackupPlan Specification

status BackupPlanStatus

BackupPlan Status

BackupPlanComponents

(Appears on: BackupPlanSpec)

BackupPlanComponents contains the 3 types of components, helm charts, operators and custom label-based resources

Field

Description

helmReleases []string

HelmReleases is the list of release names

operators []OperatorSelector

Operators is the list of operator names and their selectors

custom []Kubernetes meta/v1.LabelSelector

Custom is the combination of label selectors including match labels and match expressions

BackupPlanSpec

(Appears on: BackupPlan)

BackupPlanSpec defines the desired state of BackupPlan

Field

Description

backupNamespace string

Namespace is the namespace from where the components of backupPlan to be selected Deprecated: After removal of cluster scope CRD support, Backup namespace will be same as BackupPlan namespace.

backupConfig BackupConfig

BackupConfig is the type containing the object references for all the configurations needed for backup operation

backupPlanComponents BackupPlanComponents

BackupPlanComponents includes all the components which defines this BackupPlan i.e Helm charts, operators and label based resources

hookConfig HookConfig

hookConfig defines backup pre/post hooks and their configurations.

BackupPlanStats

(Appears on: BackupPlanStatus)

BackupPlanStats defines the stats for a BackupPlan

Field

Description

backupSummary BackupSummary

BackupSummary comprises of backup object references and count of backups with different statuses

restoreSummary RestoreSummary

RestoreSummary comprises of restore object references and count of restore with different statuses

BackupPlanStatus

(Appears on: BackupPlan)

BackupPlanStatus defines the observed state of BackupPlan

Field

Description

status Status

Status defines the status oif the application resource as available when no operation is running and unavailable when a backup or restore operation is in progress

scope ComponentScope

Scope indicates scope of component in BackupPlan i.e. App or Namespace.

applicationType ApplicationType

ApplicationType is the type of BackupPlan defining backup

incrementalCron Kubernetes core/v1.ObjectReference

Incremental Cron String

fullBackupCron Kubernetes core/v1.ObjectReference

Full Cron String

stats BackupPlanStats

BackupScheduleType (string alias)

BackupScheduleType specifies the type of schedule which triggered the backup

BackupSpec

(Appears on: Backup)

BackupSpec defines the desired state of Backup

Field

Description

type BackupType

Type is the type of backup in the sequence of backups of an Application.

backupPlan Kubernetes core/v1.ObjectReference

BackupPlan is a reference to the BackupPlan to be backed up.

BackupStats

(Appears on: BackupStatus)

BackupStats specifies the stats of a Backup

Field

Description

target Kubernetes core/v1.ObjectReference

Target is the reference to a Target backuped up

latestInProgressRestore Kubernetes core/v1.ObjectReference

LatestInProgressRestore is the reference to the latest InProgress Restore of a Backup

latestCompletedRestore Kubernetes core/v1.ObjectReference

LatestCompletedRestore is the reference to the latest Completed Restore of a Backup

hookExists bool

HookExists is a bool value that states if a backup has hooks in backup plan

BackupStatus

(Appears on: Backup)

BackupStatus defines the observed state of Backup

Field

Description

backupScope ComponentScope

BackupScope indicates scope of component in backup i.e. App or Namespace.

applicationType ApplicationType

ApplicationType is the type of Application backed up in the App Scoped backup

type BackupType

Type indicates the backup type in backup i.e. Full, Incremental or Mixed.

location string

Location is the absolute path of the target where backup resides.

startTimestamp Kubernetes meta/v1.Time

StartTimestamp is the time a backup was started.

completionTimestamp Kubernetes meta/v1.Time

CompletionTimestamp is the time a backup was finished.

phase OperationType

Phase is the current phase of the backup operation.

phaseStatus Status

PhaseStatus is the status of phase backup operation going through.

status Status

Status is the status of the backup operation.

size k8s.io/apimachinery/pkg/api/resource.Quantity

Size is the aggregate size of the data backuped up.

percentageCompletion byte

PercentageCompletion is the amount of backup operation completed.

expirationTimestamp Kubernetes meta/v1.Time

ExpirationTimeStamp is the time a backup will not be available after retention.

snapshot Snapshot

Todo: Do we need this option as optional one? Todo: This is optional because, we are allowing the custom backup as empty Snapshot specifies the contents of captured backup.

condition []BackupCondition

Condition is the current condition of hooks while backup.

hookStatus HookComponentStatus

HookStatus specifies pre/post hook execution status for current backup.

stats BackupStats

BackupSummary

(Appears on: BackupPlanStats)

BackupSummary comprises of backup object references and count of backups with different statuses

Field

Description

inProgressBackup Kubernetes core/v1.ObjectReference

InProgressBackup is the reference to an InProgress backup of a BackupPlan

lastSuccessfulBackup Kubernetes core/v1.ObjectReference

LastSuccessfulBackup is the reference to Latest available Backup of a BackupPlan

latestBackup Kubernetes core/v1.ObjectReference

LatestBackup is the reference to Latest Backup in any state, of a BackupPlan

totalInProgressBackups uint32

TotalInProgressBackups is the count of total number of InProgress Backups

totalAvailableBackups uint32

TotalAvailableBackups is the count of total number of Available Backups

totalFailedBackups uint32

TotalFailedBackups is the count of total number of InProgress Backups

BackupType (string alias)

(Appears on: BackupSpec, BackupStatus, DataSnapshot)

BackupType defines the type backup instance of an BackupPlan

CleanupConfig

(Appears on: PolicySpec)

CleanupConfig is the configuration for the PolicyType: Cleanup

Field

Description

backupDays int

BackupDays is the age of backups to be cleaned

ComponentScope (string alias)

(Appears on: BackupPlanStatus, BackupStatus, RestoreStatus)

ComponentScope indicates scope of components i.e. [App or Namespace] present in backup or restore

ComponentStatus

(Appears on: RestoreCustom, RestoreHelm, RestoreOperator)

ComponentStatus defines the details of restore of application component.

Field

Description

existingResource []Resource

ExistingResource specifies the resources already existing in cluster defined in application.

skippedResources []Resource

SkippedResources specifies the resources skipped while restoring.

failedResources []Resource

FailedResources specifies the resources for which the restore operation failed

newResourcesAdded []Resource

NewResourcesAdded specifies the resources added(duplicated and modified) during restore.

excludedResources []Resource

ExcludedResources specifies the resources excluded during restore

transformStatus []TransformStatus

TransformStatus is the status of transformation performed

phase RestorePhase

Phase is the current phase of the application component while restore.

phaseStatus Status

PhaseStatus is the status of phase restore operation going through.

reason string

A brief message indicating details about why the application component is in this state.

Conditions

(Appears on: DataSnapshot)

Field

Description

status Status

Status is the status of the condition.

timestamp Kubernetes meta/v1.Time

Timestamp is the time a condition occurred.

reason string

A brief message indicating details about why the component is in this condition.

phase OperationType

Phase defines the current phase of the data components.

ContainerHookStatus

(Appears on: PodHookStatus)

ContainerHookStatus defines hook execution status for a containers

Field

Description

containerName string

ContainerName is container in which hooks are executed.

preHookStatus PrePostHookStatus

PreHookStatus defines status for pre hooks

postHookStatus PrePostHookStatus

PostHookStatus defines status for post hooks

CronSpec

(Appears on: SchedulePolicy)

CronSpec defines the Schedule string and the cronjob reference. The Schedule string will only be visible to the user to be configured, the reference will be set by the controller

Field

Description

schedule string

Custom

(Appears on: RestoreCustom, Snapshot)

Custom defines the snapshot of Custom defined application.

Field

Description

resources []Resource

Resources defines the Kubernetes resources found from Custom application.

dataSnapshots []DataSnapshot

DataSnapshot specifies the Snapshot of the Volumes resources in the Custom defined application.

warnings []string

Warnings is the list of warnings captured during backup or restore of an application

CustomTransform

(Appears on: TransformComponents)

CustomTransform specifies transformation configuration for Custom label-based resources

Field

Description

transformName string

TransformName specifies the name of transformation

resources Resource

Resources specifies the resources for which transformation needs to be applied

jsonPatches []Patch

JSONPatches specifies the JSON patches to be applied

DataSnapshot

(Appears on: Custom, Helm, Operator)

DataSnapshot defines Snapshot of a Persistent Volume

Field

Description

backupType BackupType

BackupType is the type of Volume backup in the sequence of backups.

location string

Location is the absolute path of qcow2 image of a volume in the target.

persistentVolumeClaimName string

PersistentVolumeClaimName is the name of PersistentVolumeClaim which is bound to Volume.

persistentVolumeClaimMetadata string

PersistentVolumeClaimMetadata is the metadata of PersistentVolumeClaim which is bound to Volume.

operatorResourceVolume bool

OperatorResourceVolume will be true for the PVC created by the operator resource.

volumeSnapshot VolumeSnapshot

VolumeSnapshot specifies the CSI snapshot of a Persistent Volume.

snapshotSize k8s.io/apimachinery/pkg/api/resource.Quantity

SnapshotSize is the size of captured snapshot of a Persistent Volume.

size k8s.io/apimachinery/pkg/api/resource.Quantity

Size is the size of complete backup/restore.

uploaded bool

Uploaded is to imply whether volume snapshot taken is uploaded to target.

error string

Error is the error occurred while backing up data component if any.

podContainersMap []PodContainers

PodContainersMap is the set of Pod-Containers which share Persistent Volume.

conditions []Conditions

Conditions are the current statuses for backup and restore PVCs.

DayOfWeek (string alias)

(Appears on: RetentionConfig)

GroupVersionKind

(Appears on: Owner, Resource)

GroupVersionKind defines the Kubernetes resource type

Field

Description

group string

version string

kind string

Helm

(Appears on: Operator, RestoreHelm, Snapshot)

Helm defines the snapshot of application defined by a Helm.

Field

Description

release string

Release string is the name of release

newRelease string

NewRelease string is the new release name which will get used while validation and restore process

revision int32

Revision defines the version of deployed release backed up

resource Resource

Deprecated: Resource is the captured GVK (secret or configmap) and corresponding object names slice.

resources []Resource

Resources are the helm release resources with their GVK and Name

storageBackend HelmStorageBackend

StorageBackend is the enum which can be either configmaps and secrets

version HelmVersion

Version represents the Helm binary version used at the time of snapshot

dataSnapshots []DataSnapshot

DataSnapshot specifies the Snapshot of the Volumes defined in the helm chart resources.

warnings []string

Warnings is the list of warnings captured during backup or restore of an application

HelmStorageBackend (string alias)

(Appears on: Helm)

HelmStorageBackend defines the enum for the types of storage backend from where the helm release is backed-up

HelmTransform

(Appears on: TransformComponents)

HelmTransform specifies transformation configuration for Helm

Field

Description

transformName string

TransformName specifies the name of transformation

release string

Release specifies the release name for which the transformation is to be done

set []KeyValue

Set specifies the key-value pair to be set

HelmVersion (string alias)

(Appears on: Helm)

HelmVersion defines the version of helm binary used while backup; currently supported version is v3

Hook

Hook is the Schema for the hooks API.

Field

Description

metadata Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec HookSpec

status HookStatus

HookComponentStatus

(Appears on: BackupStatus, RestoreStatus)

HookComponentStatus indicates status of hook execution for backup/restore

Field

Description

podReadyWaitSeconds uint16

PodReadyWaitSeconds is the wait time for which hook execution waits before performing hook Quiescing/UnQuiescing It is only applicable for pods which are found in NotRunning state during hook execution Default value is 120s, that will be set by webhook.

hookPriorityStatus []HookPriorityStatus

HookPriorityStatuses specifies pre/post hook execution status for current backup.

HookConfig

(Appears on: BackupPlanSpec, RestoreSpec)

HookConfig defines the sequence of hook actions and their associated pod-container regexes

Field

Description

mode Mode

Mode can be sequential or parallel which defines the way hooks will be executed. If mode is parallel, ignore the hook sequence.

podReadyWaitSeconds uint16

PodReadyWaitSeconds is the wait time for which hook execution waits before performing hook Quiescing/UnQuiescing It is only applicable for pods which are found in NotRunning state during hook execution Default value is 120s, that will be set by webhook.

hooks []HookInfo

Hooks defines the config’s for hook action object reference to the matching regexes of pod and containers

HookConfiguration

(Appears on: HookPriority)

HookConfiguration contain’s configuration for hook implementation.

Field

Description

maxRetryCount byte

MaxRetryCount is the maximum number of times pre/post hook execution can be retried. MaxRetryCount will be equal to the RetryCount specified in Hook Spec.

timeoutSeconds uint16

TimeoutSeconds is A Maximum allowed time in seconds to execute Hook. timeout here is a hard timeout. Meaning the command needs to exit in that time, either with exit code 0 or non 0. hook execution will be considered in error if it fails to complete within timeout.

ignoreFailure bool

IgnoreFailure is a boolean, if set to true all the failures will be ignored for both in pre and post hooks Default is false.

HookExecution

(Appears on: HookSpec)

HookExecution specifies the Hook required to quiesce or unquiesce the application

Field

Description

execAction Kubernetes core/v1.ExecAction

ExecAction is a Command to be executed as a part of Hook. Specifies the action to take. Commands should include what shell to use or the commands and its args which will be able to run without the shell. User can provide multiple commands merged as a part of a single command in the ExecAction. Shell Script Ex. [“/bin/bash”, “-c”, “echo hello > hello.txt && echo goodbye > goodbye.txt”]

ignoreFailure bool

IgnoreFailure is a boolean, if set to true all the failures will be ignored both in pre and post hooks Default is false.

maxRetryCount byte

MaxRetryCount count will be used to retry hook execution within the time range specified by Timeout in TimeoutSeconds field. Hook execution will be considered in error if it fails to complete within MaxRetryCount. Each retry count will be run with timeout of TimeoutSeconds field. Default is 0

timeoutSeconds uint16

TimeoutSeconds is A Maximum allowed time in seconds for each retry count according to value set in MaxRetryCount field to execute Hook. timeout here is a hard timeout. MaxRetryCount field is related to TimeoutSeconds, Meaning each retry count will run with a timeout of TimeoutSeconds. The command needs to exit in that time, either with exit code 0 or non 0.

HookInfo

(Appears on: HookConfig)

HookInfo defines the config for hook action object reference to the matching regexes of pod and containers

Field

Description

hook Kubernetes core/v1.ObjectReference

Hook is the object reference of the Hook resource which will be run while quiescing

podSelector PodSelector

PodSelector will identify set of pods for hook config based on either Labels or Regex pattern.

containerRegex string

ContainerRegex identifies containers for hook execution from pods which are filtered using PodSelector. If not given then hooks will be executed in all the containers of the identified pods

HookPriority

(Appears on: HookPriorityStatus)

HookPriority contain hook & their targeted resources

Field

Description

hook Kubernetes core/v1.ObjectReference

Hook is the object reference of the Hook resource which will be run while quiescing

preHookConf HookConfiguration

PreHookConf defines how pre hook implementation will be handled

postHookConf HookConfiguration

PostHookConf defines how post hook implementation will be handled

hookTarget []HookTarget

HookTarget defines targeting hook resources.

HookPriorityStatus

(Appears on: HookComponentStatus)

HookPriorityStatus defines observed state for hooks priority wise.

Field

Description

priority byte

Priority defines priority for hooks. backup controller will use Priority to determine sequence of hook execution. In case of parallel Mode, priority will be same for all, in case of sequential Mode, priority will be same for a group and not individual HookConfig Set. Default Priority is 0.

hooks []HookPriority

Hooks defines list of hooks with priority Priority.

HookSpec

(Appears on: Hook)

HookSpec defines the desired state of Hook.

Field

Description

pre HookExecution

PreHook is the Hook executed to quiesce the application before backup operation

post HookExecution

PostHook is the Hook executed to unquiesce the application after backup operation

HookStatus

(Appears on: Hook)

HookStatus defines the observed state of Hook.

HookTarget

(Appears on: HookPriority)

Field

Description

owner Owner

Owner specifies the parent for identified pods in PodHookStatus. backup controller will fetch pods from Owner to execute the hooks. Owner will be nil for pods with no owner.

containerRegex string

ContainerRegex identifies containers in identified pods to execute hooks.

podHookStatus []PodHookStatus

PodHookStatus specifies pre/post hook execution status for current backup.

KeyValue

(Appears on: HelmTransform)

KeyValue specifies key-value pair for helm transformation

Field

Description

key string

Key denotes the key for which value is to be set

value string

Value denotes the value to be set

License

License is the Schema for the licenses API

Field

Description

metadata Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec LicenseSpec

status LicenseStatus

LicenseCondition

(Appears on: LicenseStatus)

LicenseCondition specifies the current condition of a license.

Field

Description

status LicenseState

Status is the status of the condition.

timestamp Kubernetes meta/v1.Time

Timestamp is the time a condition occurred.

message string

A brief message indicating details about why the component is in this condition.

phase OperationType

Phase defines the current phase of the controller.

LicenseEdition (string alias)

(Appears on: LicenseProperties)

LicenseEdition specifies the edition of the license.

LicenseProperties

(Appears on: LicenseStatus)

LicenseProperties specifies the properties of a license based on provided license key.

Field

Description

company string

Company is the name of a company purchased license for.

edition LicenseEdition

Edition is the type of license purchased to use triliovault application.

creationTimestamp Kubernetes meta/v1.Time

CreationTimestamp is the time license created to use triliovault application.

purchaseTimestamp Kubernetes meta/v1.Time

PurchaseTimestamp is the time user purchased the license to use triliovault application.

expirationTimestamp Kubernetes meta/v1.Time

ExpirationTimestamp is the time provided license going to expire and won’t be able to perform backup/restore operation.

maintenanceExpiryTimestamp Kubernetes meta/v1.Time

MaintenanceExpiryTimestamp is the time maintenance support for the provided license going to expire.

kubeUID string

KubeUID is the kubesystem or namespace uuid of the cluster the license purchased for.

scope Scope

Scope is the scope of a KubeUID the license purchased for.

version string

Version is the version of a license.

sen string

SEN is the unique serial of a license purchased.

numberOfUsers int

NumberOfUsers is the total number of users the license valid for.

serverID string

ServerID is the unique serverID of license purchased.

licenseID string

LicenseID is the identifier for the license.

capacity uint32

Capacity is the maximum capacity to use the license in number of kube nodes.

active bool

Active is the status of the license.

LicenseSpec

(Appears on: License)

LicenseSpec defines the desired state of License

Field

Description

key string

Key is the product key to use triliovault application to perform backup/restore.

LicenseState (string alias)

(Appears on: LicenseCondition, LicenseStatus)

LicenseState specifies the overall status of the license.

LicenseStatus

(Appears on: License)

LicenseStatus defines the observed state of License

Field

Description

status LicenseState

Status is the overall status of the license based on provided key.

message string

A brief message indicating details about why the license in this state.

properties LicenseProperties

Properties is the details about the license based on provided license key.

condition []LicenseCondition

Condition is the current condition of a license.

currentNodeCount uint32

CurrentNodeCount is the total number of nodes kubernetes cluster comprised of where each node capped at 2 vCPUs/pCPUs.

gracePeriodStartTimestamp Kubernetes meta/v1.Time

GracePeriodStartTimestamp is the time grace period started to use triliovault application.

gracePeriodEndTimestamp Kubernetes meta/v1.Time

GracePeriodEndTimestamp is the time grace period for using the triliovault application going to end.

Mode (string alias)

(Appears on: HookConfig)

Mode is the enum for 2 modes of quiescing the application components i.e Sequential or Parallel

MonthOfYear (string alias)

(Appears on: RetentionConfig)

NFSCredentials

(Appears on: TargetSpec)

NFSCredentials defines the credentials to use NFS as a target type.

Field

Description

nfsExport string

A NFS location in format trilio.net:/data/location/abcde or 192.156.13.1:/user/keeth/data.

nfsOptions string

An additional options passed to mount NFS directory e.g. rw, suid, hard, intr, timeo, retry.

ObjectStoreCredentials

(Appears on: TargetSpec)

ObjectStoreCredentials defines the credentials to use Object Store as a target type.

Field

Description

url string

Url to connect the Object Store.

accessKey string

Access Key is to authenticate access to Object Store.

secretKey string

Secret Key is to authenticate access to Object Store.

bucketName string

Name of a bucket within Object Store.

region string

Region where the Object Store resides.

Op (string alias)

(Appears on: Patch)

Op indicates the Json Patch operations

OperationType (string alias)

(Appears on: BackupCondition, BackupStatus, Conditions, LicenseCondition, TargetCondition)

OperationType specifies the type of operation for Job

Operator

(Appears on: RestoreOperator, Snapshot)

Operator defines the snapshot of application defined by an Operator.

Field

Description

operatorId string

OperatorId is unique ID for a particular operator

customResources []Resource

CustomResources is the list of all custom resource’s GVK and names list

helm Helm

Helm represents the snapshot of the helm chart for helm based operator

operatorResources []Resource

OperatorResources defines the a kubernetes resources found from Operator resources.

applicationResources []Resource

ApplicationResources defines the kubernetes resources found from operator Custom Resources.

dataSnapshots []DataSnapshot

DataSnapshot specifies the Snapshot of the Volumes defined in the operator resources.

warnings []string

Warnings is the list of warnings captured during backup or restore of an application

OperatorSelector

(Appears on: BackupPlanComponents)

OperatorSelector defines the mapping of operator name and their selectors

Field

Description

operatorId string

OperatorId is any unique ID for a particular operator

customResources []Resource

CustomResources list resources where each resource contains custom resource gvk and metadata

helmRelease string

HelmRelease is the release name of the helm based operator

olmSubscription string

OLMSubscription is the subscription name for the olm based operator

operatorResourceSelector []Kubernetes meta/v1.LabelSelector

OperatorResourceSelector is the selector for operator resources

applicationResourceSelector []Kubernetes meta/v1.LabelSelector

ApplicationResourceSelector is the selector for instances deployed by the operator resources

Owner

(Appears on: HookTarget)

Field

Description

groupVersionKind GroupVersionKind

GroupVersionKind specifies GVK uniquely representing particular owner type.

name string

Name is name of owner

Patch

(Appears on: CustomTransform)

Field

Description

op Op

Op specifies the operation to perform, can be test/add/remove/replace/copy/move

from string

From specifies the source element path. This field is mandatory for copy/move operation

path string

Path specifies the destination element path which needs to be transformed

value Kubernetes apiextensions/v1.JSON

Values specifies the value for any operation. This field is mandatory for test/add/replace operation

PodContainers

(Appears on: DataSnapshot)

PodContainers defines Pod and containers running in that Pod.

Field

Description

podName string

PodName is the name of pod which will be the key for the map between pod containers list

containers []string

Containers is the list of containers inside a pod

PodHookStatus

(Appears on: HookTarget)

PodHookStatus defines observed state for hooks

Field

Description

podName string

PodName is the single pod name from identified sets of pods filtered for hook config.

containerHookStatus []ContainerHookStatus

ContainerHookStatus defines status for filtered containers in a pod named ‘PodName’ One Container can have multiple hook executions.

PodSelector

(Appears on: HookInfo)

PodSelector selects pods for hook execution based on either Labels or Regex pattern. Both Labels & Regex can also specify

Field

Description

labels []Kubernetes meta/v1.LabelSelector

regex string

Policy

Policy is the Schema for the policies API

Field

Description

metadata Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec PolicySpec

status PolicyStatus

PolicySpec

(Appears on: Policy)

PolicySpec defines the desired state of Policy

Field

Description

type PolicyType

Type is a field of Policy spec, which defines the policy type containing only 3 values: Retention, Timeout, Cleanup.

default bool

Default field states if the current type of policy is default across the TV application

retentionConfig RetentionConfig

RetentionConfig field defines the configuration for Retention policies

timeoutConfig TimeoutConfig

TimeoutConfig field defines the configuration for timeout policies

cleanupConfig CleanupConfig

CleanupConfig field defines the configuration for Cleanup policies

PolicyStatus

(Appears on: Policy)

PolicyStatus defines the observed state of Policy

PolicyType (string alias)

(Appears on: PolicySpec)

PolicyType is the Enum for types of policies

PrePostHookStatus

(Appears on: ContainerHookStatus)

PrePostHookStatus defines Pre and Post hook execution status.

Field

Description

status Status

Status is the status for pre/post hook execution

exitStatus string

ExitStatus contains returned exit code and error trace after pre/post hook execution

retryCount byte

RetryCount count used to retry hook execution within the time range specified by Timeout. This is the actual number of times backup controller retried for pre/post hook execution if MaxRetryCount>0. Default is 0

Resource

(Appears on: ComponentStatus, Custom, CustomTransform, Helm, Operator, OperatorSelector, RestoreSpec, TransformStatus)

Resource defines the list of names of a Kubernetes resource of a particular GVK.

Field

Description

groupVersionKind GroupVersionKind

GroupVersionKind specifies GVK uniquely representing particular resource type.

objects []string

Objects is the list of names of all the objects of the captured GVK

Restore

Restore is the Schema for the restores API Backup represents the capture of Kubernetes Application defined by user at a point in time

Field

Description

metadata Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec RestoreSpec

status RestoreStatus

RestoreApplication

(Appears on: RestoreStatus)

RestoreApplication defines the snapshot contents of an Application Backup.

Field

Description

helmCharts []RestoreHelm

HelmCharts specifies the backed up helm resources restored as Helm Charts.

operators []RestoreOperator

Operators specifies the backed up operator resources restored as Operators.

custom RestoreCustom

Custom specifies the backup up kubernetes resources.

RestoreCondition

(Appears on: RestoreStatus)

RestoreCondition specifies the current condition of a restore resource.

Field

Description

status Status

Status is the status of the condition.

timestamp Kubernetes meta/v1.Time

Timestamp is the time a condition occurred.

reason string

A brief message indicating details about why the component is in this condition.

phase RestorePhase

Phase defines the current phase of the controller.

RestoreCustom

(Appears on: RestoreApplication)

RestoreCustom defines the backed up kubernetes resources.

Field

Description

snapshot Custom

Snapshot defines the snapshot of custom application to be restored.

status ComponentStatus

Status specifies the details of component restore in a namespace

RestoreHelm

(Appears on: RestoreApplication)

RestoreHelm defines the backed up helm application to be restored.

Field

Description

snapshot Helm

Snapshot defines the snapshot of application to be restored by a Helm.

status ComponentStatus

Status specifies the details of component restore in a namespace

RestoreOperator

(Appears on: RestoreApplication)

RestoreOperator defines the backed up operator application to be restored.

Field

Description

snapshot Operator

Snapshot defines the snapshot of application to be restored by a Operator.

status ComponentStatus

Status specifies the details of component restore in a namespace

RestorePhase (string alias)

(Appears on: ComponentStatus, RestoreCondition, RestoreStatus)

RestorePhase specifies the one of phase of Restore operation

RestoreSource

(Appears on: RestoreSpec)

RestoreSource defines the source from where the restore is to be done

Field

Description

type RestoreSourceType

Type is the type of source for restore

backup Kubernetes core/v1.ObjectReference

Backup is a reference to the Backup instance restored if type is Backup.

target Kubernetes core/v1.ObjectReference

Target is a reference to the Target instance where from restore is performed if type is Location.

location string

Location is an absolute path to remote target from where restore is performed if type is Location.

backupPlan Kubernetes core/v1.ObjectReference

BackupPlan is a reference to the BackupPlan whose latest successful backup is to be restored.

RestoreSourceType (string alias)

(Appears on: RestoreSource)

BackupSourceType defines the type of source for restore

RestoreSpec

(Appears on: Restore)

RestoreSpec defines the desired state of Restore

Field

Description

source RestoreSource

Source defines the source referred for performing restore operation

restoreNamespace string

Namespace is a name of namespace in cluster where backed resources will be restored Deprecated: Restore will be allowed only in Restore CR Namespace so RestoreNamespace is redundant.

skipIfAlreadyExists bool

SkipIfAlreadyExists specifies whether to skip restore of a resource if already exists in the namespace restored.

patchIfAlreadyExists bool

PatchIfAlreadyExists specifies whether to patch spec of a already exists resource in the namespace restored.

patchCRD bool

PatchCRD specifies whether to patch spec of a already exists crd.

omitMetadata bool

OmitMetadata specifies whether to omit metadata like labels, annotations of resources while restoring them.

skipOperatorResources bool

SkipOperatorResources specifies whether to skip operator resources or not at the time of restore. (for the use case when operator is already present and the application of that operator needs to be restored)

disableIgnoreResources bool

DisableIgnoreResources is responsible for the behavior of default list of resources being ignored at the restore. If set to true, those resources will not be ignored

env []Kubernetes core/v1.EnvVar

Env is the List of environment variables to set in the container. Cannot be updated.

transformComponents TransformComponents

TransformComponents specifies the component-wise transformation configuration

excludeResources []Resource

ExcludeResources specifies the resources to be excluded from backup while restoring

hookConfig HookConfig

HookConfig specifies the Post Restore Hooks Executed in reverse sequence of the sequence specified here

RestoreStats

(Appears on: RestoreStatus)

RestoreStats defines the stats for a Restore

Field

Description

backupPlan Kubernetes core/v1.ObjectReference

BackupPlan is the reference to BackupPlan associated with Restore

backup Kubernetes core/v1.ObjectReference

Backup is the reference to the Backup associated with Restore

RestoreStatus

(Appears on: Restore)

RestoreStatus defines the observed state of Restore

Field

Description

restoreScope ComponentScope

RestoreScope indicates scope of component being restored i.e. App or Namespace.

applicationType ApplicationType

ApplicationType is the type of Application restored in the App Scoped backup

startTimestamp Kubernetes meta/v1.Time

StartTimestamp is the time a restore was started.

completionTimestamp Kubernetes meta/v1.Time

CompletionTimestamp is the time a restore was finished.

phase RestorePhase

Phase is the current phase of the restore operation.

phaseStatus Status

PhaseStatus is the status of phase restore operation going through.

status Status

Status is the status of the restore operation.

size k8s.io/apimachinery/pkg/api/resource.Quantity

Size is the aggregate size of the data restored back.

percentageCompletion byte

PercentageCompletion is the amount of restore operation completed.

restoreApplication RestoreApplication

RestoreApplication defines the information about the different applications restored back to cluster.

hookStatus HookComponentStatus

HookStatus specifies pre/post hook execution status for current backup.

condition []RestoreCondition

Condition is the current condition of restore resource.

stats RestoreStats

RestoreSummary

(Appears on: BackupPlanStats)

RestoreSummary comprises of restore object references and count of restore with different statuses

Field

Description

lastSuccessfulRestore Kubernetes core/v1.ObjectReference

LastSuccessfulRestore is the reference to Latest completed Restore of a BackupPlan

totalInProgressRestores uint32

TotalInProgressRestores is the count of total number of InProgress Restores

totalCompletedRestores uint32

TotalCompletedRestores is the count of total number of Completed Restores

totalFailedRestores uint32

TotalFailedRestores is the count of total number of Failed Restores

RetentionConfig

(Appears on: PolicySpec)

RetentionConfig is the configuration for the PolicyType: Retention

Field

Description

latest int

Latest is the max number of latest backups to be retained

weekly int

Weekly is max number of backups to be retained in a week

monthly int

Monthly is max number of backups to be retained in a month

yearly int

Yearly is max number of backups to be retained in a year

dayOfWeek DayOfWeek

DayOfWeek is Day of the week to maintain weekly backup/restore resources

dateOfMonth int

DateOfMonth is Date of the month to maintain monthly backup/restore resources

monthOfYear MonthOfYear

MonthOfYear is the month of the backup to retain for yearly backups

SchedulePolicy

(Appears on: BackupConfig)

SchedulePolicy defines the cronjob specs for incremental or full backup types

Field

Description

incrementalCron CronSpec

IncrementalCron is the cronspec schedule for incremental backups

fullBackupCron CronSpec

FullBackupCron is the cronspec schedule for full backups

Scope (string alias)

(Appears on: LicenseProperties)

Scope specifies the scope of a resource.

Snapshot

(Appears on: BackupStatus)

Snapshot defines the snapshot contents of an Application Backup.

Field

Description

helmCharts []Helm

HelmCharts specifies the snapshot of application defined by Helm Charts.

operators []Operator

Operators specifies the snapshot of application defined by Operators.

custom Custom

Custom specifies the snapshot of Custom defined applications.

Status (string alias)

(Appears on: BackupCondition, BackupPlanStatus, BackupStatus, ComponentStatus, Conditions, PrePostHookStatus, RestoreCondition, RestoreStatus, TargetCondition, TargetStatus, TransformStatus, VolumeSnapshot)

Status specifies the status of WorkloadJob operating on

Target

Target is a location where TrilioVault stores backup.

Field

Description

metadata Kubernetes meta/v1.ObjectMeta

Refer to the Kubernetes API documentation for the fields of the metadata field.

spec TargetSpec

status TargetStatus

TargetCondition

(Appears on: TargetStatus)

TargetCondition specifies the current condition of a target resource.

Field

Description

status Status

Status is the status of the condition.

timestamp Kubernetes meta/v1.Time

Timestamp is the time a condition occurred.

reason string

A brief message indicating details about why the component is in this condition.

phase OperationType

Phase defines the current phase of the controller.

TargetSpec

(Appears on: Target)

TargetSpec defines the specification of a Target.

Field

Description

type TargetType

Type is the type of target for backup storage.

vendor Vendor

Vendor is the third party storage vendor hosting the target

nfsCredentials NFSCredentials

NfsCredentials specifies the credentials for TargetType NFS

objectStoreCredentials ObjectStoreCredentials

ObjectStoreCredentials specifies the credentials for TargetType ObjectStore

enableBrowsing bool

EnableBrowsing specifies if target browser feature should be enabled for this target or not

thresholdCapacity k8s.io/apimachinery/pkg/api/resource.Quantity

ThresholdCapacity is the maximum threshold capacity to store backup data.

TargetStats

(Appears on: TargetStatus)

TargetStats defines the stats for a Target

Field

Description

totalBackupPlans uint32

TotalBackupPlans is the count of total number of BackupPlans of a Target

capacityOccupied k8s.io/apimachinery/pkg/api/resource.Quantity

CapacityOccupied is the aggregate of total size occupied on the Target by Backups

applicationCapacity k8s.io/apimachinery/pkg/api/resource.Quantity

applicationCapacityConsumed k8s.io/apimachinery/pkg/api/resource.Quantity

TargetStatus

(Appears on: Target)

TargetStatus defines the observed state of Target

Field

Description

condition []TargetCondition

Condition is the current condition of a target.

status Status

Status is the final Status of target Available/Unavailable

browsingEnabled bool

BrowsingEnabled specifies if target browser feature is enabled for this target or not

stats TargetStats

TargetType (string alias)

(Appears on: TargetSpec)

TargetType is the type of target.

TimeoutConfig

(Appears on: PolicySpec)

TimeoutConfig is the configuration for the PolicyType: Timeout

TransformComponents

(Appears on: RestoreSpec)

TransformComponents specifies component wise transformation configuration

Field

Description

helm []HelmTransform

HelmTransform specifies the Transformation configuration for Helm charts

custom []CustomTransform

CustomTransform specifies the Transformation configuration for Custom label-based backup

TransformStatus

(Appears on: ComponentStatus)

TransformStatus specifies the details of transform operation

Field

Description

transformName string

TransformName is the name of transformation

status Status

Status is the status of transform operation

transformedResources []Resource

TransformedResources Specifies the resources transformed as part of transformation

reason string

Reason is reason for status in case of failure

Vendor (string alias)

(Appears on: TargetSpec)

Vendor is the third party storage vendor hosting the target

VolumeSnapshot

(Appears on: DataSnapshot)

VolumeSnapshot defines the CSI snapshot of a Persistent Volume.

Field

Description

volumeSnapshot Kubernetes core/v1.ObjectReference

VolumeSnapshot is a reference to the Persistent Volume Snapshot captured.

retryCount byte

RetryCount is the number of attempts made to capture Volume Snapshot.

status Status

Status is the status defining the progress of Volume Snapshot capture.

error string

Error is the error occurred while capturing Volume Snapshot if any.

Generated with gen-crd-api-reference-docs on git commit 92af86626.