Custom Resource Definitions - Application

This page describes the type and accepted values for all Trilio Custom Resource Definitions.

Deprecated Documentation

This document is deprecated and no longer supported. For accurate, up-to-date information, please refer to the documentation for the latest version of Trilio.

# Custom Resource Definitions - Application

Backup

Field
Description

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

Refers to the spec of the Backup CR

Refers to the status of the Backup CR

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

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

Refers to the spec of the BackupPlan CR

Refers to the status of the BackupPlan CR

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 is the list of operator names and their selectors

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

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

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

quiescingMode QuiescingMode

QuiescingMode is the quiescing mode which can be sequential or parallel. If mode is parallel, ignore the sequence config

sequence []Kubernetes meta/v1.LabelSelector

QuiescingSequence is the list of label selectors of 2 types match labels and match expressions

BackupPlanStatus

(Appears on: BackupPlan)

BackupPlanStatus defines the observed state of BackupPlan

Field
Description

status Status

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

BackupScheduleType (string alias)

(Appears on: BackupSpec)

BackupScheduleType specifies the type of schedule which triggered the backup

BackupSpec

(Appears on: Backup)

BackupSpec defines the desired state of Backup

Field
Description

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

scheduleType BackupScheduleType

ScheduleType specifies the type of schedule which triggered the backup.

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

BackupStatus

(Appears on: Backup)

BackupStatus defines the observed state of Backup

Field
Description

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 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.

snapshot Snapshot

Optional

BackupType (string alias)

(Appears on: BackupSpec, 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

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.

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.

Condition

(Appears on: DataSnapshot, TargetStatus)

Condition specifies the current condition of a resource.

Field
Description

Type is the type of condition data component is in.

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.

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

Defines the backup schedule

cronJobRef Kubernetes core/v1.ObjectReference

CronJob Reference

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

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.

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.

condition Condition

Condition is the current condition of a data component while backup/restore.

podContainersMap []PodContainers

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

DayOfWeek (string alias)

(Appears on: RetentionConfig)

GroupVersionKind

(Appears on: Resource)

GroupVersionKind defines the Kubernetes resource type

Field
Description

group string

API Resource Group

version string

API Resource version

kind string

API Resource Kind

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

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

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

HelmVersion (string alias)

(Appears on: Helm)

HelmVersion defines the 2 versions of helm binaries used while backup

Hook

Hook is the Schema for the hooks API.

Field
Description

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

Spec for Hook

status HookStatus

Status for Hook

HookConfig

(Appears on: BackupPlanSpec)

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

Field
Description

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

matchPatterns []MatchPattern

MatchPatterns is the list/sequence of the pod-container regex where the hook needs to be executed

HookExecution

(Appears on: HookSpec)

HookExecution specifies the Hook required to quiesce or unquiesce the application

Field
Description

command []string

A Command to be executed as a part of Hook.

hookTimeout int16

A Maximum allowed time to execute Hook.

HookSpec

(Appears on: Hook)

HookSpec defines the desired state of Hook.

Field
Description

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

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

HookStatus

(Appears on: Hook)

HookStatus defines the observed state of Hook.

License

License is the Schema for the licenses API

Field
Description

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

Spec of License CR

Status of License CR

LicenseCondition

(Appears on: LicenseStatus)

LicenseCondition specifies the current condition of a license.

Field
Description

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.

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 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 uint16

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 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 is the details about the license based on provided license key.

Condition is the current condition of a license.

currentNodeCount uint16

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.

MatchPattern

(Appears on: HookConfig)

MatchPattern is the structure defining the pod-container regexes used for hook execution

Field
Description

podRegexPattern string

PodRegexPattern is the regex pattern to be matched for the pod where hooks will be executed

containerRegexPattern string

ContainerRegexPattern is the regex pattern to be matched for the containers where hooks will be executed

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.

OperationType (string alias)

(Appears on: BackupStatus, Condition)

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.

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 release name of the helm 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

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

Policy

Policy is the Schema for the policies API

Field
Description

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

Spec of Policy CR

Status of Policy CR

PolicySpec

(Appears on: Policy)

PolicySpec defines the desired state of Policy

Field
Description

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)

Policy Status defines the observed state of Policy

PolicyType (string alias)

(Appears on: PolicySpec)

PolicyType is the Enum for types of policies

QuiescingMode (string alias)

(Appears on: BackupPlanSpec)

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

Resource

(Appears on: ComponentStatus, Custom, Helm, Operator, OperatorSelector)

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 respresents 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 of Restore CR

Status of Restore CR

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 specifies the backed up operator resources restored as Operators.

Custom specifies the backup up kubernetes resources.

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 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 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 specifies the details of component restore in a namespace

RestorePhase (string alias)

(Appears on: ComponentStatus, RestoreStatus)

RestorePhase specifies the one of phase of Restore operation

RestoreSource

(Appears on: RestoreSpec)

Field
Description

Type is the type of source for restore

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

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.

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

BackupPlan is a reference to the BackupPlan whose backup is restored.

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

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.

omitMetadata bool

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

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

RestoreStatus

(Appears on: Restore)

RestoreStatus defines the observed state of Restore

Field
Description

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 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.

RetentionConfig

(Appears on: PolicySpec)

RetentionConfig is the configuration for the PolicyType: Retention

Field
Description

daily int

Daily is max number of backups to be retained in a day

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

day_of_week DayOfWeek

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

date_of_month int

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

month_of_year 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: BackupPlanStatus, BackupStatus, ComponentStatus, Condition, RestoreStatus, TargetStatus, VolumeSnapshot)

Status specifies the status of WorkloadJob operating on

Target

Target is a location where Trilio stores backup.

Field
Description

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

TargetSpec

(Appears on: Target)

TargetSpec defines the specification of a Target.

Field
Description

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

TargetStatus

(Appears on: Target)

TargetStatus defines the observed state of Target

Field
Description

condition []Condition

Condition is the current condition of a target.

status Status

Status is the final Status of target Available/Unavailable

TargetType (string alias)

(Appears on: TargetSpec)

TargetType is the type of target.

TimeoutConfig

(Appears on: PolicySpec)

TimeoutConfig is the configuration for the PolicyType: Timeout

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 c3c084d1.

Last updated