v1alpha1

package
v0.0.0-...-e889ff3 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: Apache-2.0 Imports: 10 Imported by: 11

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the API. +groupName=cr.kanister.io +versionName=v1alpha1

Index

Constants

View Source
const (

	// ServerSetup indicates whether the repository pod and service have been
	ServerSetup string = "ServerSetup"

	// RepositoryConnected indicates whether the existing repository is connected and ready to use
	RepositoryConnected string = "RepositoryConnected"

	// RepositoryReady indicates whether the existing repository is connected and ready to use
	RepositoryReady string = "RepositoryReady"

	// ServerInitialized means that the proxy server, that serves the repository, has been started
	ServerInitialized string = "ServerInitialized"

	// ClientUserInitialized indicates that the client users have been added or updated to the repository server
	ClientUserInitialized string = "ClientUserInitialized"

	// ServerRefreshed denotes the refreshed condition of the repository server in order to register client users
	ServerRefreshed string = "ServerRefreshed"
)
View Source
const (
	// SchemeVersion is the API version of objects in this package.
	SchemeVersion = "v1alpha1"
	// ResourceGroup is the API group of resources in this package.
	ResourceGroup = "cr.kanister.io"
)

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)

These variables are exported to help hook into this package's schemes.

ActionSetResource is a CRD for actionsets.

BlueprintResource is a CRD for blueprints.

ProfileResource is a CRD for blueprints.

RepositoryServerResource is a CRD for blueprints.

View Source
var SchemeGroupVersion = schema.GroupVersion{Group: ResourceGroup, Version: SchemeVersion}

SchemeGroupVersion is group version used to register these objects

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns back a Group qualified GroupResource

Types

type ActionProgress

type ActionProgress struct {
	// RunningPhase represents which phase of the action is being run
	RunningPhase string `json:"runningPhase,omitempty"`
	// PercentCompleted is computed by assessing the number of completed phases
	// against the the total number of phases.
	PercentCompleted string `json:"percentCompleted,omitempty"`
	// LastTransitionTime represents the last date time when the progress status
	// was received.
	LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"`
}

ActionProgress provides information on the combined progress of all the phases in the action.

func (*ActionProgress) DeepCopy

func (in *ActionProgress) DeepCopy() *ActionProgress

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

func (*ActionProgress) DeepCopyInto

func (in *ActionProgress) DeepCopyInto(out *ActionProgress)

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

type ActionSet

type ActionSet struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	// Spec defines the specification for the actionset.
	// The specification includes a list of Actions to be performed. Each Action includes details
	// about the referenced Blueprint and other objects used to perform the defined action.
	Spec *ActionSetSpec `json:"spec,omitempty"`
	// Status refers to the current status of the Kanister actions.
	Status *ActionSetStatus `json:"status,omitempty"`
}

ActionSet describes kanister actions.

func (*ActionSet) DeepCopy

func (in *ActionSet) DeepCopy() *ActionSet

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

func (*ActionSet) DeepCopyInto

func (in *ActionSet) DeepCopyInto(out *ActionSet)

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

func (*ActionSet) DeepCopyObject

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

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

type ActionSetList

type ActionSetList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	// Items is the list of actionsets.
	Items []*ActionSet `json:"items"`
}

ActionSetList is the definition of a list of actionsets.

func (*ActionSetList) DeepCopy

func (in *ActionSetList) DeepCopy() *ActionSetList

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

func (*ActionSetList) DeepCopyInto

func (in *ActionSetList) DeepCopyInto(out *ActionSetList)

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

func (*ActionSetList) DeepCopyObject

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

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

type ActionSetSpec

type ActionSetSpec struct {
	// Actions represents a list of Actions that need to be performed by the actionset.
	Actions []ActionSpec `json:"actions,omitempty"`
}

ActionSetSpec is the specification for the actionset.

func (*ActionSetSpec) DeepCopy

func (in *ActionSetSpec) DeepCopy() *ActionSetSpec

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

func (*ActionSetSpec) DeepCopyInto

func (in *ActionSetSpec) DeepCopyInto(out *ActionSetSpec)

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

type ActionSetStatus

type ActionSetStatus struct {
	// State represents the current state of the actionset.
	// There are four possible values: "Pending", "Running", "Failed", and "Complete".
	State State `json:"state"`
	// Actions list represents the latest available observations of the current state of all the actions.
	Actions []ActionStatus `json:"actions,omitempty"`
	// Error contains the detailed error message of an actionset failure.
	Error Error `json:"error,omitempty"`
	// Progress provides information on the progress of a running actionset.
	// This includes the percentage of completion of an actionset and the phase that is
	// currently being executed.
	Progress ActionProgress `json:"progress,omitempty"`
}

ActionSetStatus is the status for the actionset. This should only be updated by the controller.

func (*ActionSetStatus) DeepCopy

func (in *ActionSetStatus) DeepCopy() *ActionSetStatus

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

func (*ActionSetStatus) DeepCopyInto

func (in *ActionSetStatus) DeepCopyInto(out *ActionSetStatus)

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

type ActionSpec

type ActionSpec struct {
	// Name is the action we'll perform. For example: `backup` or `restore`.
	Name string `json:"name"`
	// Object refers to the thing we'll perform this action on.
	Object ObjectReference `json:"object"`
	// Blueprint with instructions on how to execute this action.
	Blueprint string `json:"blueprint,omitempty"`
	// Artifacts will be passed as inputs into this phase.
	Artifacts map[string]Artifact `json:"artifacts,omitempty"`
	// ConfigMaps that we'll get and pass into the blueprint.
	ConfigMaps map[string]ObjectReference `json:"configMaps,omitempty"`
	// Secrets that we'll get and pass into the blueprint.
	Secrets map[string]ObjectReference `json:"secrets,omitempty"`
	// Profile is use to specify the location where store artifacts and the
	// credentials authorized to access them.
	Profile *ObjectReference `json:"profile,omitempty"`
	// RepositoryServer is used to specify the CR reference
	// of the kopia repository server
	RepositoryServer *ObjectReference `json:"repositoryServer,omitempty"`
	// PodOverride is used to specify pod specs that will override the
	// default pod specs
	PodOverride JSONMap `json:"podOverride,omitempty"`
	// Options will be used to specify additional values
	// to be used in the Blueprint.
	Options map[string]string `json:"options,omitempty"`
	// PreferredVersion will be used to select the preferred version of Kanister functions
	// to be executed for this action
	PreferredVersion string `json:"preferredVersion"`
}

ActionSpec is the specification for a single Action.

func (*ActionSpec) DeepCopy

func (in *ActionSpec) DeepCopy() *ActionSpec

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

func (*ActionSpec) DeepCopyInto

func (in *ActionSpec) DeepCopyInto(out *ActionSpec)

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

type ActionStatus

type ActionStatus struct {
	// Name is the action we'll perform. For example: `backup` or `restore`.
	Name string `json:"name"`
	// Object refers to the thing we'll perform this action on.
	Object ObjectReference `json:"object"`
	// Blueprint with instructions on how to execute this action.
	Blueprint string `json:"blueprint"`
	// Phases are sub-actions an are executed sequentially.
	Phases []Phase `json:"phases,omitempty"`
	// Artifacts created by this phase.
	Artifacts map[string]Artifact `json:"artifacts,omitempty"`
	// DeferPhase is the phase that is executed at the end of an action
	// irrespective of the status of other phases in the action
	DeferPhase Phase `json:"deferPhase,omitempty"`
}

ActionStatus is updated as we execute phases.

func (*ActionStatus) DeepCopy

func (in *ActionStatus) DeepCopy() *ActionStatus

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

func (*ActionStatus) DeepCopyInto

func (in *ActionStatus) DeepCopyInto(out *ActionStatus)

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

type Artifact

type Artifact struct {
	// KeyValue represents key-value pair artifacts produced by the action.
	KeyValue map[string]string `json:"keyValue,omitempty"`
	// KopiaSnapshot captures the kopia snapshot information
	// produced as a JSON string by kando command in phases of an action.
	KopiaSnapshot string `json:"kopiaSnapshot,omitempty"`
}

Artifact tracks objects produced by an action.

func (*Artifact) DeepCopy

func (in *Artifact) DeepCopy() *Artifact

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

func (*Artifact) DeepCopyInto

func (in *Artifact) DeepCopyInto(out *Artifact)

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

type Blueprint

type Blueprint struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	// Actions is the list of actions constructing the Blueprint.
	Actions map[string]*BlueprintAction `json:"actions,omitempty"`
}

Blueprint describes kanister actions.

func (*Blueprint) DeepCopy

func (in *Blueprint) DeepCopy() *Blueprint

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

func (*Blueprint) DeepCopyInto

func (in *Blueprint) DeepCopyInto(out *Blueprint)

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

func (*Blueprint) DeepCopyObject

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

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

type BlueprintAction

type BlueprintAction struct {
	// Name contains the name of the action.
	Name string `json:"name"`
	// Kind contains the resource on which this action has to be performed.
	Kind string `json:"kind"`
	// ConfigMapNames is used to specify the config map names that can be used later in the action phases.
	ConfigMapNames []string `json:"configMapNames,omitempty"`
	// List of Kubernetes secret names used in action phases.
	SecretNames []string `json:"secretNames,omitempty"`
	// InputArtifactNames is the list of Artifact names that were set from previous action and can be consumed in the current action.
	InputArtifactNames []string `json:"inputArtifactNames,omitempty"`
	// OutputArtifacts is the map of rendered artifacts produced by the BlueprintAction.
	OutputArtifacts map[string]Artifact `json:"outputArtifacts,omitempty"`
	// Phases is the list of BlueprintPhases which are invoked in order when executing this action.
	Phases []BlueprintPhase `json:"phases,omitempty"`
	// DeferPhase is invoked after the execution of Phases that are defined for an action.
	// A DeferPhase is executed regardless of the statuses of the other phases of the action.
	// A DeferPhase can be used for cleanup operations at the end of an action.
	DeferPhase *BlueprintPhase `json:"deferPhase,omitempty"`
}

BlueprintAction describes the set of phases that constitute an action.

func (*BlueprintAction) DeepCopy

func (in *BlueprintAction) DeepCopy() *BlueprintAction

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

func (*BlueprintAction) DeepCopyInto

func (in *BlueprintAction) DeepCopyInto(out *BlueprintAction)

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

type BlueprintList

type BlueprintList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	// Items is the list of Blueprints.
	Items []*Blueprint `json:"items"`
}

BlueprintList is the definition of a list of Blueprints

func (*BlueprintList) DeepCopy

func (in *BlueprintList) DeepCopy() *BlueprintList

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

func (*BlueprintList) DeepCopyInto

func (in *BlueprintList) DeepCopyInto(out *BlueprintList)

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

func (*BlueprintList) DeepCopyObject

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

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

type BlueprintPhase

type BlueprintPhase struct {
	// Func is the name of a registered Kanister function.
	Func string `json:"func"`
	// Name contains name of the phase.
	Name string `json:"name"`
	// ObjectRefs represents a map of references to the Kubernetes objects that
	// can later be used in the `Args` of the function.
	ObjectRefs map[string]ObjectReference `json:"objects,omitempty"`
	// Args represents a map of named arguments that the controller will pass to the Kanister function.
	Args map[string]interface{} `json:"args"`
}

BlueprintPhase is a an individual unit of execution.

func (*BlueprintPhase) DeepCopy

func (in *BlueprintPhase) DeepCopy() *BlueprintPhase

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

func (*BlueprintPhase) DeepCopyInto

func (in *BlueprintPhase) DeepCopyInto(out *BlueprintPhase)

DeepCopyInto handles BlueprintPhase deep copies, copying the receiver, writing into out. in must be non-nil. The auto-generated function does not handle the map[string]interface{} type

type CacheSizeSettings

type CacheSizeSettings struct {
	// Metadata size should be in specified in MB
	Metadata *int `json:"metadata,omitempty"`
	// Content size should be in specified in MB
	Content *int `json:"content,omitempty"`
}

CacheSizeSettings are the metadata/content cache size details that can be used while establishing connection to the kopia repository

func (*CacheSizeSettings) DeepCopy

func (in *CacheSizeSettings) DeepCopy() *CacheSizeSettings

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

func (*CacheSizeSettings) DeepCopyInto

func (in *CacheSizeSettings) DeepCopyInto(out *CacheSizeSettings)

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

type Configuration

type Configuration struct {
	// CacheDirectory is an optional field to specify kopia cache directory
	CacheDirectory string `json:"cacheDirectory,omitempty"`
	// LogDirectory is an optional field to specify kopia log directory
	LogDirectory string `json:"logDirectory,omitempty"`
	// ConfigFilePath is an optional field to specify kopia config file path
	ConfigFilePath string `json:"configFilePath,omitempty"`
}

Configuration can be used to specify the optional fields used for repository operations

func (*Configuration) DeepCopy

func (in *Configuration) DeepCopy() *Configuration

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

func (*Configuration) DeepCopyInto

func (in *Configuration) DeepCopyInto(out *Configuration)

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

type Credential

type Credential struct {
	// Type represents the information about how the credentials are provided for the respective object storage.
	Type CredentialType `json:"type"`
	// KeyPair represents the key-value map used for the Credential of Type KeyPair.
	KeyPair *KeyPair `json:"keyPair,omitempty"`
	// Secret represents the Kubernetes Secret Object used for the Credential of Type Secret.
	Secret *ObjectReference `json:"secret,omitempty"`
	// KopiaServerSecret represents the secret being used by Credential of Type Kopia.
	KopiaServerSecret *KopiaServerSecret `json:"kopiaServerSecret,omitempty"`
}

Credential

func (*Credential) DeepCopy

func (in *Credential) DeepCopy() *Credential

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

func (*Credential) DeepCopyInto

func (in *Credential) DeepCopyInto(out *Credential)

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

type CredentialType

type CredentialType string

CredentialType

const (
	CredentialTypeKeyPair CredentialType = "keyPair"
	CredentialTypeSecret  CredentialType = "secret"
	CredentialTypeKopia   CredentialType = "kopia"
)

type Error

type Error struct {
	// Message is the actual error message that is displayed in case of errors.
	Message string `json:"message"`
}

Error represents an error that occurred when executing an actionset.

func (*Error) DeepCopy

func (in *Error) DeepCopy() *Error

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

func (*Error) DeepCopyInto

func (in *Error) DeepCopyInto(out *Error)

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

type JSONMap

type JSONMap sp.JSONMap

JSONMap contains PodOverride specs.

func (JSONMap) DeepCopy

func (in JSONMap) DeepCopy() JSONMap

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

func (*JSONMap) DeepCopyInto

func (in *JSONMap) DeepCopyInto(out *JSONMap)

DeepCopyInto handles JSONMap deep copies, copying the receiver, writing into out. in must be non-nil. The auto-generated function does not handle the map[string]interface{} type

type KeyPair

type KeyPair struct {
	// IDField specifies the corresponding key in the secret where the AWS Key ID value is stored.
	IDField string `json:"idField"`
	// SecretField specifies the corresponding key in the secret where the AWS Secret Key value is stored.
	SecretField string `json:"secretField"`
	// Secret represents a Kubernetes Secret object storing the KeyPair credentials.
	Secret ObjectReference `json:"secret"`
}

KeyPair

func (*KeyPair) DeepCopy

func (in *KeyPair) DeepCopy() *KeyPair

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

func (*KeyPair) DeepCopyInto

func (in *KeyPair) DeepCopyInto(out *KeyPair)

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

type KopiaServerSecret

type KopiaServerSecret struct {
	// Username represents the username used to connect to the Kopia Server.
	Username string `json:"username,omitempty"`
	// Hostname represents the hostname used to connect to the Kopia Server.
	Hostname string `json:"hostname,omitempty"`
	// UserPassphrase is the user password used to connect to the Kopia Server.
	UserPassphrase *KopiaServerSecretRef `json:"userPassphrase,omitempty"`
	// TLSCert is the certificate used to connect to the Kopia Server.
	TLSCert *KopiaServerSecretRef `json:"tlsCert,omitempty"`
	// ConnectOptions represents a map of options which can be used to connect to the Kopia Server.
	ConnectOptions map[string]int `json:"connectOptions,omitempty"`
}

KopiaServerSecret contains credentials to connect to Kopia server

func (*KopiaServerSecret) DeepCopy

func (in *KopiaServerSecret) DeepCopy() *KopiaServerSecret

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

func (*KopiaServerSecret) DeepCopyInto

func (in *KopiaServerSecret) DeepCopyInto(out *KopiaServerSecret)

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

type KopiaServerSecretRef

type KopiaServerSecretRef struct {
	// Key represents the corresponding key in the secret where the required
	// credential or certificate value is stored.
	Key string `json:"key"`
	// Secret is the K8s secret object where the creds related to the Kopia Server are stored.
	Secret *ObjectReference `json:"secret"`
}

KopiaServerSecretRef refers to K8s secrets containing Kopia creds

func (*KopiaServerSecretRef) DeepCopy

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

func (*KopiaServerSecretRef) DeepCopyInto

func (in *KopiaServerSecretRef) DeepCopyInto(out *KopiaServerSecretRef)

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

type Location

type Location struct {
	// Type specifies the kind of object storage that would be used to upload the
	// backup objects. Currently supported values are: "GCS", "S3Compliant",
	// and "Azure".
	Type LocationType `json:"type"`
	// Bucket represents the bucket on the object storage where the backup is uploaded.
	Bucket string `json:"bucket"`
	// Endpoint specifies the endpoint where the object storage is accessible at.
	Endpoint string `json:"endpoint"`
	// Prefix is the string that would be prepended to the object path in the
	// bucket where the backup objects are uploaded.
	Prefix string `json:"prefix"`
	// Region represents the region of the bucket specified above.
	Region string `json:"region"`
}

Location

func (*Location) DeepCopy

func (in *Location) DeepCopy() *Location

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

func (*Location) DeepCopyInto

func (in *Location) DeepCopyInto(out *Location)

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

type LocationType

type LocationType string

LocationType

const (
	LocationTypeGCS         LocationType = "gcs"
	LocationTypeS3Compliant LocationType = "s3Compliant"
	LocationTypeAzure       LocationType = "azure"
	LocationTypeKopia       LocationType = "kopia"
)

type ObjectReference

type ObjectReference struct {
	// API version of the referent.
	APIVersion string `json:"apiVersion"`
	// API Group of the referent.
	Group string `json:"group"`
	// Resource name of the referent.
	Resource string `json:"resource"`
	// Kind of the referent.
	// More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
	Kind string `json:"kind"`
	// Name of the referent.
	// More info: http://kubernetes.io/docs/user-guide/identifiers#names
	Name string `json:"name"`
	// Namespace of the referent.
	// More info: http://kubernetes.io/docs/user-guide/namespaces
	Namespace string `json:"namespace,omitempty"`
}

ObjectReference refers to a kubernetes object.

func (*ObjectReference) DeepCopy

func (in *ObjectReference) DeepCopy() *ObjectReference

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

func (*ObjectReference) DeepCopyInto

func (in *ObjectReference) DeepCopyInto(out *ObjectReference)

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

type Phase

type Phase struct {
	// Name represents the name of the Blueprint phase.
	Name string `json:"name"`
	// State represents the current state of execution of the Blueprint phase.
	State State `json:"state"`
	// Output is the map of output artifacts produced by the Blueprint phase.
	Output map[string]interface{} `json:"output,omitempty"`
	// Progress represents the phase execution progress.
	Progress PhaseProgress `json:"progress,omitempty"`
}

Phase is subcomponent of an action.

func (*Phase) DeepCopy

func (in *Phase) DeepCopy() *Phase

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

func (*Phase) DeepCopyInto

func (in *Phase) DeepCopyInto(out *Phase)

DeepCopyInto handles the Phase deep copies, copying the receiver, writing into out. in must be non-nil. This is a workaround to handle the map[string]interface{} output type

type PhaseProgress

type PhaseProgress struct {
	// ProgressPercent represents the execution progress in percentage.
	ProgressPercent string `json:"progressPercent,omitempty"`
	// SizeUploadedB represents the size of data uploaded in Bytes at a given time during phase execution.
	// This field will be empty for phases which do not involve data movement.
	SizeUploadedB int64 `json:"sizeUploadedB,omitempty"`
	// EstimatedUploadSizeB represents the total estimated size of data in Bytes
	// that will be uploaded during the phase execution.
	// This field will be empty for phases which do not involve data movement.
	EstimatedUploadSizeB int64 `json:"estinatedUploadSizeB,omitempty"`
	// EstimatedTimeSeconds is the estimated time required in seconds to upload the
	// remaining data estimated with EstimatedUploadSizeB.
	// This field will be empty for phases which do not involve data movement.
	EstimatedTimeSeconds int64 `json:"estinatedTimeSeconds,omitempty"`
	// LastTransitionTime represents the last date time when the progress status
	// was received.
	LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"`
}

PhaseProgress represents the execution state of the phase.

func (*PhaseProgress) DeepCopy

func (in *PhaseProgress) DeepCopy() *PhaseProgress

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

func (*PhaseProgress) DeepCopyInto

func (in *PhaseProgress) DeepCopyInto(out *PhaseProgress)

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

type Profile

type Profile struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata"`
	// Location provides the information about the object storage that is going to be used by Kanister to upload the backup objects.
	Location Location `json:"location"`
	// Credential represents the credentials associated with the Location.
	Credential Credential `json:"credential"`
	// SkipSSLVerify is a boolean that specifies whether skipping SSL verification
	// is allowed when operating with the Location.
	// If omitted from the CR definition, it defaults to false
	SkipSSLVerify bool `json:"skipSSLVerify"`
}

Profile captures information about a storage location for backup artifacts and corresponding credentials, that will be made available to a Blueprint phase.

func (*Profile) DeepCopy

func (in *Profile) DeepCopy() *Profile

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

func (*Profile) DeepCopyInto

func (in *Profile) DeepCopyInto(out *Profile)

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

func (*Profile) DeepCopyObject

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

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

type ProfileList

type ProfileList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	// Items represents a list of Profiles.
	Items []*Profile `json:"items"`
}

ProfileList is the definition of a list of Profiles

func (*ProfileList) DeepCopy

func (in *ProfileList) DeepCopy() *ProfileList

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

func (*ProfileList) DeepCopyInto

func (in *ProfileList) DeepCopyInto(out *ProfileList)

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

func (*ProfileList) DeepCopyObject

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

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

type Repository

type Repository struct {
	// Path for the repository, it will be a relative sub path
	// within the path prefix specified in the location
	// More info: https://kopia.io/docs/reference/command-line/common/#commands-to-manipulate-repository
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	RootPath string `json:"rootPath"`
	// If specified, these values will be used by the controller to
	// override default username when connecting to the
	// repository from the server.
	Username string `json:"username,omitempty"`
	// If specified, these values will be used by the controller to
	// override default hostname when connecting to the
	// repository from the server.
	Hostname string `json:"hostname,omitempty"`
	// PasswordSecretRef has the password required to connect to kopia repository
	PasswordSecretRef corev1.SecretReference `json:"passwordSecretRef"`
	CacheSizeSettings CacheSizeSettings      `json:"cacheSizeSettings,omitempty"`
	Configuration     Configuration          `json:"configuration,omitempty"`
}

Repository has the details required by the repository server to connect to kopia repository +kubebuilder:validation:XValidation:rule="!has(oldSelf.rootPath) || has(self.rootPath)",message="rootPath field must not be allowed to be removed"

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.

type RepositoryServer

type RepositoryServer struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Spec defines the spec of repository server.
	// It has all the details required to start the kopia repository server
	Spec RepositoryServerSpec `json:"spec"`
	// Status refers to the current status of the repository server.
	Status RepositoryServerStatus `json:"status,omitempty"`
}

RepositoryServer manages the lifecycle of Kopia Repository Server within a Pod

func (*RepositoryServer) DeepCopy

func (in *RepositoryServer) DeepCopy() *RepositoryServer

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

func (*RepositoryServer) DeepCopyInto

func (in *RepositoryServer) DeepCopyInto(out *RepositoryServer)

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

func (*RepositoryServer) DeepCopyObject

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

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

type RepositoryServerList

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

RepositoryServerList is the definition of a list of RepositoryServers

func (*RepositoryServerList) DeepCopy

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

func (*RepositoryServerList) DeepCopyInto

func (in *RepositoryServerList) DeepCopyInto(out *RepositoryServerList)

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

func (*RepositoryServerList) DeepCopyObject

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

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

type RepositoryServerProgress

type RepositoryServerProgress string

RepositoryServerProgress is the field users would check to know the state of RepositoryServer

const (
	// Ready represents the ready state of the repository server
	Ready RepositoryServerProgress = "Ready"

	// Failed represents the terminated state of the repository server CR due to any unforeseen errors
	Failed RepositoryServerProgress = "Failed"

	// Pending indicates the pending state of the RepositoryServer CR when Reconcile callback is in progress
	Pending RepositoryServerProgress = "Pending"
)

type RepositoryServerSpec

type RepositoryServerSpec struct {
	// Storage references the backend store where a repository already exists
	// and the credential necessary to connect to the backend store
	Storage Storage `json:"storage"`
	// Repository has the details required by the repository server
	// to connect to kopia repository
	Repository Repository `json:"repository"`
	// Server has the details of all the secrets required to start
	// the kopia repository server
	Server Server `json:"server"`
}

RepositoryServerSpec is the specification for the RepositoryServer

func (*RepositoryServerSpec) DeepCopy

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

func (*RepositoryServerSpec) DeepCopyInto

func (in *RepositoryServerSpec) DeepCopyInto(out *RepositoryServerSpec)

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

type RepositoryServerStatus

type RepositoryServerStatus struct {
	Conditions []metav1.Condition       `json:"conditions,omitempty"`
	ServerInfo ServerInfo               `json:"serverInfo,omitempty"`
	Progress   RepositoryServerProgress `json:"progress,omitempty"`
}

RepositoryServerStatus is the status for the RepositoryServer. This should only be updated by the controller

func (*RepositoryServerStatus) DeepCopy

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

func (*RepositoryServerStatus) DeepCopyInto

func (in *RepositoryServerStatus) DeepCopyInto(out *RepositoryServerStatus)

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

type Server

type Server struct {
	UserAccess UserAccess `json:"userAccess"`
	// AdminSecretRef has the username and password required to start the
	// kopia repository server
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	AdminSecretRef corev1.SecretReference `json:"adminSecretRef"`
	// TLSSecretRef has the certificates required for kopia repository
	// client server connection
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	TLSSecretRef corev1.SecretReference `json:"tlsSecretRef"`
}

Server details required for starting the repository proxy server and initializing the repository client users +kubebuilder:validation:XValidation:rule="!has(oldSelf.adminSecretRef) || has(self.adminSecretRef)",message="adminSecretRef field must not be allowed to be removed" +kubebuilder:validation:XValidation:rule="!has(oldSelf.tlsSecretRef) || has(self.tlsSecretRef)",message="tlsSecretRef field must not be allowed to be removed"

func (*Server) DeepCopy

func (in *Server) DeepCopy() *Server

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

func (*Server) DeepCopyInto

func (in *Server) DeepCopyInto(out *Server)

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

type ServerInfo

type ServerInfo struct {
	PodName     string `json:"podName,omitempty"`
	ServiceName string `json:"serviceName,omitempty"`
}

ServerInfo describes all the information required by the client users to connect to the repository server

func (*ServerInfo) DeepCopy

func (in *ServerInfo) DeepCopy() *ServerInfo

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

func (*ServerInfo) DeepCopyInto

func (in *ServerInfo) DeepCopyInto(out *ServerInfo)

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

type State

type State string

State is the current state of a phase of execution.

const (
	// StatePending mean this action or phase has yet to be executed.
	StatePending State = "pending"
	// StateRunning means this action or phase is currently executing.
	StateRunning State = "running"
	// StateFailed means this action or phase was unsuccessful.
	StateFailed State = "failed"
	// StateComplete means this action or phase finished successfully.
	StateComplete State = "complete"
)

type Storage

type Storage struct {
	// SecretRef has the details of the object storage (location)
	// where the kopia would backup the data
	// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
	SecretRef corev1.SecretReference `json:"secretRef"`
	// CredentialSecretRef stores the credentials required
	// to connect to the object storage specified in `SecretRef` field
	CredentialSecretRef corev1.SecretReference `json:"credentialSecretRef"`
}

Storage references the backend store where a repository already exists and the credential necessary to connect to the backend store +kubebuilder:validation:XValidation:rule="!has(oldSelf.secretRef) || has(self.secretRef)",message="secretRef field must not be allowed to be removed"

func (*Storage) DeepCopy

func (in *Storage) DeepCopy() *Storage

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

func (*Storage) DeepCopyInto

func (in *Storage) DeepCopyInto(out *Storage)

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

type UserAccess

type UserAccess struct {
	// UserAccessSecretRef stores the list of hostname and passwords used by kopia clients
	// to connect to kopia repository server
	UserAccessSecretRef corev1.SecretReference `json:"userAccessSecretRef"`
	// Username is the user required by client to connect to kopia repository server
	Username string `json:"username"`
}

UserAccess has the details of the user credentials required by client to connect to kopia repository server

func (*UserAccess) DeepCopy

func (in *UserAccess) DeepCopy() *UserAccess

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

func (*UserAccess) DeepCopyInto

func (in *UserAccess) DeepCopyInto(out *UserAccess)

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

Jump to

Keyboard shortcuts

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