types

package
v1.130.7 Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const ErrLVPUnsupportedOnVelero117 = "" /* 163-byte string literal not displayed */

ErrLVPUnsupportedOnVelero117 is the canonical message returned when a filesystem (NFS / Host Path / internal-store-without-minio) snapshot store is being configured against a Velero version that no longer supports the local-volume-provider plugin.

Variables

This section is empty.

Functions

func VeleroFSBackupFlags added in v1.130.7

func VeleroFSBackupFlags(veleroVersion string) []string

VeleroFSBackupFlags returns the file-system-backup install flags for the given Velero version:

< 1.10            -> --use-restic (no node-agent/uploader-type)
>= 1.10, < 1.17   -> --use-node-agent --uploader-type=restic
>= 1.17           -> --use-node-agent (kopia is the implicit default uploader)

An empty or unparseable version is treated as a current (>= 1.17) release, since install instructions are shown before Velero exists in the cluster and users are told to install the latest Velero.

func VeleroSupportsLVP added in v1.130.7

func VeleroSupportsLVP(veleroVersion string) bool

VeleroSupportsLVP reports whether the local-volume-provider plugin is supported for the given Velero version. LVP is unsupported on Velero >= 1.17. An empty or unparseable version is treated as supported (unknown): the version is unknown until Velero is installed, and the configure path re-checks once it is detected.

Types

type App

type App struct {
	Slug       string `json:"slug"`
	Sequence   int64  `json:"sequence"`
	Name       string `json:"name"`
	AppIconURI string `json:"iconUri"`
}

type Backup

type Backup struct {
	Name               string     `json:"name"`
	Status             string     `json:"status"`
	Trigger            string     `json:"trigger"`
	AppID              string     `json:"appID"`    // TODO: remove with app backups
	Sequence           int64      `json:"sequence"` // TODO: remove with app backups
	StartedAt          *time.Time `json:"startedAt,omitempty"`
	FinishedAt         *time.Time `json:"finishedAt,omitempty"`
	ExpiresAt          *time.Time `json:"expiresAt,omitempty"`
	VolumeCount        int        `json:"volumeCount"`
	VolumeSuccessCount int        `json:"volumeSuccessCount"`
	VolumeBytes        int64      `json:"volumeBytes"`
	VolumeSizeHuman    string     `json:"volumeSizeHuman"`
	SupportBundleID    string     `json:"supportBundleId,omitempty"`
	IncludedApps       []App      `json:"includedApps,omitempty"`
}

type BackupDetail

type BackupDetail struct {
	Name            string           `json:"name"`
	Status          string           `json:"status"`
	VolumeSizeHuman string           `json:"volumeSizeHuman"`
	Namespaces      []string         `json:"namespaces"`
	Hooks           []*SnapshotHook  `json:"hooks"`
	Volumes         []SnapshotVolume `json:"volumes"`
	Errors          []SnapshotError  `json:"errors"`
	Warnings        []SnapshotError  `json:"warnings"`
}

type FileSystemConfig

type FileSystemConfig struct {
	NFS      *NFSConfig `json:"nfs,omitempty"`
	HostPath *string    `json:"hostPath,omitempty"`
}

type NFSConfig

type NFSConfig struct {
	Path   string `json:"path,omitempty"`
	Server string `json:"server,omitempty"`
}

type ParsedTTL

type ParsedTTL struct {
	Quantity int64  `json:"quantity"`
	Unit     string `json:"unit"`
}

type RestoreDetail

type RestoreDetail struct {
	Name     string                `json:"name"`
	Phase    velerov1.RestorePhase `json:"phase"`
	Volumes  []RestoreVolume       `json:"volumes"`
	Errors   []SnapshotError       `json:"errors"`
	Warnings []SnapshotError       `json:"warnings"`
}

type RestoreVolume

type RestoreVolume struct {
	Name                  string     `json:"name"`
	PodName               string     `json:"podName"`
	PodNamespace          string     `json:"podNamespace"`
	PodVolumeName         string     `json:"podVolumeName"`
	SizeBytesHuman        string     `json:"sizeBytesHuman"`
	DoneBytesHuman        string     `json:"doneBytesHuman"`
	CompletionPercent     int        `json:"completionPercent"`
	RemainingSecondsExist bool       `json:"remainingSecondsExist"`
	TimeRemainingSeconds  int        `json:"timeRemainingSeconds"`
	StartedAt             *time.Time `json:"startedAt,omitempty"`
	FinishedAt            *time.Time `json:"finishedAt,omitempty"`
	Phase                 string     `json:"phase"`
}

type ScheduledInstanceSnapshot

type ScheduledInstanceSnapshot struct {
	ID                 string    `json:"id"`
	ClusterID          string    `json:"clusterId"`
	ScheduledTimestamp time.Time `json:"scheduledTimestamp"`
	// name of Backup CR will be set once scheduled
	BackupName string `json:"backupName,omitempty"`
}

type ScheduledSnapshot

type ScheduledSnapshot struct {
	ID                 string    `json:"id"`
	AppID              string    `json:"appId"`
	ScheduledTimestamp time.Time `json:"scheduledTimestamp"`
	// name of Backup CR will be set once scheduled
	BackupName string `json:"backupName,omitempty"`
}

type SnapshotError

type SnapshotError struct {
	Title     string `json:"title"`
	Message   string `json:"message"`
	Namespace string `json:"namespace"`
}

type SnapshotHook

type SnapshotHook struct {
	Name          string          `json:"name"`
	Namespace     string          `json:"namespace"`
	Phase         string          `json:"phase"`
	PodName       string          `json:"podName"`
	ContainerName string          `json:"containerName"`
	Command       string          `json:"command"`
	Stdout        string          `json:"stdout"`
	Stderr        string          `json:"stderr"`
	StartedAt     *time.Time      `json:"startedAt,omitempty"`
	FinishedAt    *time.Time      `json:"finishedAt,omitempty"`
	Errors        []SnapshotError `json:"errors"`
	Warnings      []SnapshotError `json:"warnings"`
}

type SnapshotSchedule

type SnapshotSchedule struct {
	Schedule string `json:"schedule"`
}

type SnapshotTTL

type SnapshotTTL struct {
	InputValue    string `json:"inputValue"`
	InputTimeUnit string `json:"inputTimeUnit"`
	Converted     string `json:"converted"`
}

type SnapshotVolume

type SnapshotVolume struct {
	Name                 string     `json:"name"`
	SizeBytesHuman       string     `json:"sizeBytesHuman"`
	DoneBytesHuman       string     `json:"doneBytesHuman"`
	CompletionPercent    int        `json:"completionPercent"`
	TimeRemainingSeconds int        `json:"timeRemainingSeconds"`
	StartedAt            *time.Time `json:"startedAt,omitempty"`
	FinishedAt           *time.Time `json:"finishedAt,omitempty"`
	Phase                string     `json:"phase"`
}

type Store

type Store struct {
	Provider            string           `json:"provider"`
	Bucket              string           `json:"bucket"`
	Path                string           `json:"path"`
	CACertData          []byte           `json:"caCert,omitempty"`
	AWS                 *StoreAWS        `json:"aws,omitempty"`
	Azure               *StoreAzure      `json:"azure,omitempty"`
	Google              *StoreGoogle     `json:"gcp,omitempty"`
	Other               *StoreOther      `json:"other,omitempty"`
	Internal            *StoreInternal   `json:"internal,omitempty"`
	FileSystem          *StoreFileSystem `json:"fileSystem,omitempty"`
	HasResticRepoPrefix bool             `json:"hasResticRepoPrefix,omitempty"`
}

type StoreAWS

type StoreAWS struct {
	Region          string `json:"region"`
	AccessKeyID     string `json:"accessKeyID"`
	SecretAccessKey string `json:"secretAccessKey"` // added for unmarshaling, redacted on marshaling
	UseInstanceRole bool   `json:"useInstanceRole"`
}

type StoreAzure

type StoreAzure struct {
	ResourceGroup  string `json:"resourceGroup"`
	StorageAccount string `json:"storageAccount"`
	SubscriptionID string `json:"subscriptionId"`
	TenantID       string `json:"tenantId"`
	ClientID       string `json:"clientId"`
	ClientSecret   string `json:"clientSecret"`
	CloudName      string `json:"cloudName"`
}

type StoreFileSystem

type StoreFileSystem struct {
	Region               string            `json:"region"`               // Legacy field for minio backwards compatibility
	AccessKeyID          string            `json:"accessKeyID"`          // Legacy field for minio backwards compatibility
	SecretAccessKey      string            `json:"secretAccessKey"`      // Legacy field for minio backwards compatibility; added for unmarshaling, redacted on marshaling
	Endpoint             string            `json:"endpoint"`             // Legacy field for minio backwards compatibility
	ObjectStoreClusterIP string            `json:"objectStoreClusterIP"` // Legacy field for minio backwards compatibility
	Config               *FileSystemConfig `json:"config,omitempty"`
}

type StoreGoogle

type StoreGoogle struct {
	JSONFile        string `json:"jsonFile"`
	ServiceAccount  string `json:"serviceAccount"`
	UseInstanceRole bool   `json:"useInstanceRole"`
}

type StoreInternal

type StoreInternal struct {
	Region               string `json:"region"`
	AccessKeyID          string `json:"accessKeyID"`
	SecretAccessKey      string `json:"secretAccessKey"` // added for unmarshaling, redacted on marshaling
	Endpoint             string `json:"endpoint"`
	ObjectStoreClusterIP string `json:"objectStoreClusterIP"`
}

type StoreOther

type StoreOther struct {
	Region          string `json:"region"`
	AccessKeyID     string `json:"accessKeyID"`
	SecretAccessKey string `json:"secretAccessKey"` // added for unmarshaling, redacted on marshaling
	Endpoint        string `json:"endpoint"`
}

type VeleroPlugin added in v1.94.0

type VeleroPlugin string
const (
	VeleroAWSPlugin   VeleroPlugin = "velero/velero-plugin-for-aws:v1.6.1"
	VeleroGCPPlugin   VeleroPlugin = "velero/velero-plugin-for-gcp:v1.6.1"
	VeleroAzurePlugin VeleroPlugin = "velero/velero-plugin-for-microsoft-azure:v1.6.1"
	VeleroLVPPlugin   VeleroPlugin = image.Lvp
)

type VolumeSummary

type VolumeSummary struct {
	VolumeCount        int    `json:"volumeCount"`
	VolumeSuccessCount int    `json:"volumeSuccessCount"`
	VolumeBytes        int64  `json:"volumeBytes"`
	VolumeSizeHuman    string `json:"volumeSizeHuman"`
}

Jump to

Keyboard shortcuts

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