Documentation ¶
Overview ¶
Package v1alpha1 is the v1alpha1 version of the API. +groupName=cr.kanister.io +versionName=v1alpha1
Index ¶
- Constants
- Variables
- func Kind(kind string) schema.GroupKind
- func Resource(resource string) schema.GroupResource
- type ActionProgress
- type ActionSet
- type ActionSetList
- type ActionSetSpec
- type ActionSetStatus
- type ActionSpec
- type ActionStatus
- type Artifact
- type Blueprint
- type BlueprintAction
- type BlueprintList
- type BlueprintPhase
- type CacheSizeSettings
- type Configuration
- type Credential
- type CredentialType
- type Error
- type JSONMap
- type KeyPair
- type KopiaServerSecret
- type KopiaServerSecretRef
- type Location
- type LocationType
- type ObjectReference
- type Phase
- type PhaseProgress
- type Profile
- type ProfileList
- type Repository
- type RepositoryServer
- type RepositoryServerList
- type RepositoryServerProgress
- type RepositoryServerSpec
- type RepositoryServerStatus
- type Server
- type ServerInfo
- type State
- type Storage
- type UserAccess
Constants ¶
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" )
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 ¶
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme )
These variables are exported to help hook into this package's schemes.
var ActionSetResource = customresource.CustomResource{ Name: consts.ActionSetResourceName, Plural: consts.ActionSetResourceNamePlural, Group: ResourceGroup, Version: SchemeVersion, Scope: apiextensionsv1.NamespaceScoped, Kind: reflect.TypeOf(ActionSet{}).Name(), }
ActionSetResource is a CRD for actionsets.
var BlueprintResource = customresource.CustomResource{ Name: consts.BlueprintResourceName, Plural: consts.BlueprintResourceNamePlural, Group: ResourceGroup, Version: SchemeVersion, Scope: apiextensionsv1.NamespaceScoped, Kind: reflect.TypeOf(Blueprint{}).Name(), }
BlueprintResource is a CRD for blueprints.
var ProfileResource = customresource.CustomResource{ Name: consts.ProfileResourceName, Plural: consts.ProfileResourceNamePlural, Group: ResourceGroup, Version: SchemeVersion, Scope: apiextensionsv1.NamespaceScoped, Kind: reflect.TypeOf(Profile{}).Name(), }
ProfileResource is a CRD for blueprints.
var RepositoryServerResource = customresource.CustomResource{ Name: consts.RepositoryServerResourceName, Plural: consts.RepositoryServerResourceNamePlural, Group: ResourceGroup, Version: SchemeVersion, Scope: apiextensionsv1.NamespaceScoped, Kind: reflect.TypeOf(RepositoryServer{}).Name(), }
RepositoryServerResource is a CRD for blueprints.
var SchemeGroupVersion = schema.GroupVersion{Group: ResourceGroup, Version: SchemeVersion}
SchemeGroupVersion is group version used to register these objects
Functions ¶
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 total number of phases. PercentCompleted string `json:"percentCompleted,omitempty"` // SizeDownloadedB represents the size of data downloaded in Bytes at a given time during action execution. // This field will be empty for actions which do not involve data movement. SizeDownloadedB int64 `json:"sizeDownloadedB,omitempty"` // SizeUploadedB represents the size of data uploaded in Bytes at a given time during action execution. // This field will be empty for actions which do not involve data movement. SizeUploadedB int64 `json:"sizeUploadedB,omitempty"` // EstimatedDownloadSizeB represents the total estimated size of data in Bytes // that will be downloaded during the action execution. // This field will be empty for actions which do not involve data movement. EstimatedDownloadSizeB int64 `json:"estimatedDownloadSizeB,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:"estimatedUploadSizeB,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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionSet.
func (*ActionSet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ActionSet) DeepCopyObject ¶
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"` // PodLabels will be used to configure the labels of the pods that are created // by Kanister functions run by this ActionSet PodLabels map[string]string `json:"podLabels"` // PodAnnotations will be used to configure the annotations of the pods that created // by Kanister functions run by this ActionSet PodAnnotations map[string]string `json:"podAnnotations"` }
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Artifact.
func (*Artifact) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Blueprint.
func (*Blueprint) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Blueprint) DeepCopyObject ¶
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"` }
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
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Error.
func (*Error) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JSONMap ¶
JSONMap contains PodOverride specs.
func (JSONMap) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JSONMap.
func (*JSONMap) DeepCopyInto ¶
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"` }
func (*KeyPair) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyPair.
func (*KeyPair) DeepCopyInto ¶
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 ¶
func (in *KopiaServerSecretRef) DeepCopy() *KopiaServerSecretRef
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"` }
func (*Location) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Location.
func (*Location) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LocationType ¶
type LocationType string
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Phase.
func (*Phase) DeepCopyInto ¶
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"` // SizeDownloadedB represents the size of data downloaded in Bytes at a given time during phase execution. // This field will be empty for phases which do not involve data movement. SizeDownloadedB int64 `json:"sizeDownloadedB,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"` // EstimatedDownloadSizeB represents the total estimated size of data in Bytes // that will be downloaded during the phase execution. // This field will be empty for phases which do not involve data movement. EstimatedDownloadSizeB int64 `json:"estimatedDownloadSizeB,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:"estimatedUploadSizeB,omitempty"` // EstimatedTimeSeconds is the estimated time required in seconds to transfer the // remaining data estimated with EstimatedUploadSizeB/EstimatedDownloadSizeB. // 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Profile.
func (*Profile) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Profile) DeepCopyObject ¶
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 ¶
func (in *RepositoryServerList) DeepCopy() *RepositoryServerList
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 ¶
func (in *RepositoryServerSpec) DeepCopy() *RepositoryServerSpec
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 ¶
func (in *RepositoryServerStatus) DeepCopy() *RepositoryServerStatus
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Server.
func (*Server) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Storage.
func (*Storage) DeepCopyInto ¶
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.