Documentation ¶
Index ¶
- Constants
- Variables
- func EngineBinaryExistOnHostForImage(image string) bool
- func ErrorAlreadyExists(err error) bool
- func ErrorIsNotFound(err error) bool
- func GenerateEngineNameForVolume(vName string) string
- func GenerateReplicaNameForVolume(vName string) string
- func GetAPIServerAddressFromIP(ip string) string
- func GetCronJobNameForVolumeAndJob(vName, job string) string
- func GetCustomizedDefaultSettings() (map[string]string, error)
- func GetDaemonSetNameFromEngineImageName(engineImageName string) string
- func GetEngineBinaryDirectoryInContainerForImage(image string) string
- func GetEngineBinaryDirectoryOnHostForImage(image string) string
- func GetEngineImageChecksumName(image string) string
- func GetEngineImageLabels(engineImageName string) map[string]string
- func GetEngineImageNameFromDaemonSetName(dsName string) string
- func GetImageCanonicalName(image string) string
- func GetInstanceManagerComponentLabel() map[string]string
- func GetInstanceManagerLabels(node, engineImageName string, managerType InstanceManagerType) map[string]string
- func GetInstanceManagerWithEngineImageKeyLabel(engineImageName string) map[string]string
- func GetLonghornLabelComponentKey() string
- func GetLonghornLabelKey(name string) string
- func GetRandomEngineManagerName() string
- func GetRandomReplicaManagerName() string
- func GetReplicaMountedDataPath(dataPath string) string
- func GetVolumeLabels(volumeName string) map[string]string
- func LabelsToString(labels map[string]string) string
- func OverwriteBuiltInSettingsWithCustomizedValues() error
- func UnmarshalTolerations(tolerationSetting string) ([]v1.Toleration, error)
- func ValidateAndUnmarshalToleration(s string) (*v1.Toleration, error)
- func ValidateInitSetting(name, value string) (err error)
- func ValidateReplicaCount(count int) error
- type BackupStatus
- type Condition
- type ConditionStatus
- type DiskConditionType
- type DiskSpec
- type DiskStatus
- type EngineImageSpec
- type EngineImageState
- type EngineImageStatus
- type EngineSpec
- type EngineStatus
- type EngineVersionDetails
- type InstanceManagerSpec
- type InstanceManagerState
- type InstanceManagerStatus
- type InstanceManagerType
- type InstanceProcess
- type InstanceProcessSpec
- type InstanceProcessStatus
- type InstanceSpec
- type InstanceState
- type InstanceStatus
- type InstanceType
- type KubernetesStatus
- type NodeConditionType
- type NodeSpec
- type NodeStatus
- type NotFoundError
- type PurgeStatus
- type RecurringJob
- type RecurringJobType
- type ReplicaMode
- type ReplicaSpec
- type ReplicaStatus
- type RestoreStatus
- type Setting
- type SettingCategory
- type SettingDefinition
- type SettingName
- type SettingType
- type VolumeConditionType
- type VolumeFrontend
- type VolumeRobustness
- type VolumeSpec
- type VolumeState
- type VolumeStatus
- type WorkloadStatus
Constants ¶
View Source
const ( LonghornManagerDaemonSetName = "longhorn-manager" DriverDeployerName = "longhorn-driver-deployer" CSIAttacherName = "csi-attacher" CSIProvisionerName = "csi-provisioner" CSIPluginName = "longhorn-csi-plugin" )
View Source
const ( VolumeStateCreating = VolumeState("creating") VolumeStateAttached = VolumeState("attached") VolumeStateDetached = VolumeState("detached") VolumeStateAttaching = VolumeState("attaching") VolumeStateDetaching = VolumeState("detaching") VolumeStateDeleting = VolumeState("deleting") )
View Source
const ( VolumeRobustnessHealthy = VolumeRobustness("healthy") // during attached VolumeRobustnessDegraded = VolumeRobustness("degraded") // during attached VolumeRobustnessFaulted = VolumeRobustness("faulted") // during detached VolumeRobustnessUnknown = VolumeRobustness("unknown") )
View Source
const ( VolumeFrontendBlockDev = VolumeFrontend("blockdev") VolumeFrontendISCSI = VolumeFrontend("iscsi") )
View Source
const ( RecurringJobTypeSnapshot = RecurringJobType("snapshot") RecurringJobTypeBackup = RecurringJobType("backup") )
View Source
const ( InstanceStateRunning = InstanceState("running") InstanceStateStopped = InstanceState("stopped") InstanceStateError = InstanceState("error") InstanceStateStarting = InstanceState("starting") InstanceStateStopping = InstanceState("stopping") )
View Source
const ( EngineImageStateDeploying = "deploying" EngineImageStateReady = "ready" EngineImageStateIncompatible = "incompatible" EngineImageStateError = "error" )
View Source
const ( NodeConditionTypeReady = "Ready" NodeConditionTypeMountPropagation = "MountPropagation" )
View Source
const ( NodeConditionReasonManagerPodDown = "ManagerPodDown" NodeConditionReasonManagerPodMissing = "ManagerPodMissing" NodeConditionReasonKubernetesNodeGone = "KubernetesNodeGone" NodeConditionReasonKubernetesNodeNotReady = "KubernetesNodeNotReady" NodeConditionReasonKubernetesNodePressure = "KubernetesNodePressure" NodeConditionReasonUnknownNodeConditionTrue = "UnknownNodeConditionTrue" NodeConditionReasonNoMountPropagationSupport = "NoMountPropagationSupport" )
View Source
const ( DiskConditionTypeSchedulable = "Schedulable" DiskConditionTypeReady = "Ready" )
View Source
const ( DiskConditionReasonDiskPressure = "DiskPressure" DiskConditionReasonDiskFilesystemChanged = "DiskFilesystemChanged" DiskConditionReasonNoDiskInfo = "NoDiskInfo" )
View Source
const ( InstanceTypeEngine = InstanceType("engine") InstanceTypeReplica = InstanceType("replica") )
View Source
const ( InstanceManagerStateError = InstanceManagerState("error") InstanceManagerStateRunning = InstanceManagerState("running") InstanceManagerStateStopped = InstanceManagerState("stopped") InstanceManagerStateStarting = InstanceManagerState("starting") InstanceManagerStateUnknown = InstanceManagerState("unknown") )
View Source
const ( InstanceManagerTypeEngine = InstanceManagerType("engine") InstanceManagerTypeReplica = InstanceManagerType("replica") )
View Source
const ( SettingTypeString = SettingType("string") SettingTypeInt = SettingType("int") SettingTypeBool = SettingType("bool") )
View Source
const ( SettingNameBackupTarget = SettingName("backup-target") SettingNameBackupTargetCredentialSecret = SettingName("backup-target-credential-secret") SettingNameCreateDefaultDiskLabeledNodes = SettingName("create-default-disk-labeled-nodes") SettingNameDefaultDataPath = SettingName("default-data-path") SettingNameDefaultEngineImage = SettingName("default-engine-image") SettingNameReplicaSoftAntiAffinity = SettingName("replica-soft-anti-affinity") SettingNameStorageOverProvisioningPercentage = SettingName("storage-over-provisioning-percentage") SettingNameStorageMinimalAvailablePercentage = SettingName("storage-minimal-available-percentage") SettingNameUpgradeChecker = SettingName("upgrade-checker") SettingNameLatestLonghornVersion = SettingName("latest-longhorn-version") SettingNameDefaultReplicaCount = SettingName("default-replica-count") SettingNameGuaranteedEngineCPU = SettingName("guaranteed-engine-cpu") SettingNameDefaultLonghornStaticStorageClass = SettingName("default-longhorn-static-storage-class") SettingNameBackupstorePollInterval = SettingName("backupstore-poll-interval") SettingNameTaintToleration = SettingName("taint-toleration") )
View Source
const ( SettingCategoryGeneral = SettingCategory("general") SettingCategoryBackup = SettingCategory("backup") SettingCategoryScheduling = SettingCategory("scheduling") )
View Source
const ( LonghornKindVolume = "Volume" LonghornKindEngineImage = "EngineImage" LonghornKindInstanceManager = "InstanceManager" )
View Source
const ( DefaultAPIPort = 9500 DefaultReplicaPortCount = 15 DefaultEngineBinaryPath = "/usr/local/bin/longhorn" EngineBinaryDirectoryInContainer = "/engine-binaries/" EngineBinaryDirectoryOnHost = "/var/lib/rancher/longhorn/engine-binaries/" ReplicaMountedDataPathPrefix = "/host" LonghornNodeKey = "longhornnode" NodeCreateDefaultDiskLabel = "node.longhorn.io/create-default-disk" BaseImageLabel = "ranchervm-base-image" KubernetesStatusLabel = "KubernetesStatus" LonghornLabelKeyPrefix = "longhorn.io" LonghornLabelEngineImage = "engine-image" LonghornLabelInstanceManager = "instance-manager" LonghornLabelNode = "node" LonghornLabelInstanceManagerType = "instance-manager-type" LonghornLabelVolume = "longhornvolume" )
View Source
const ( CSIMinVersion = "v1.10.0" KubeletPluginWatcherMinVersion = "v1.12.0" )
View Source
const ( ReplicaModeRW = ReplicaMode("RW") ReplicaModeWO = ReplicaMode("WO") ReplicaModeERR = ReplicaMode("ERR") EnvNodeName = "NODE_NAME" EnvPodNamespace = "POD_NAMESPACE" EnvPodIP = "POD_IP" EnvServiceAccount = "SERVICE_ACCOUNT" AWSAccessKey = "AWS_ACCESS_KEY_ID" AWSSecretKey = "AWS_SECRET_ACCESS_KEY" AWSEndPoint = "AWS_ENDPOINTS" OptionFromBackup = "fromBackup" OptionNumberOfReplicas = "numberOfReplicas" OptionStaleReplicaTimeout = "staleReplicaTimeout" OptionBaseImage = "baseImage" OptionFrontend = "frontend" OptionDiskSelector = "diskSelector" OptionNodeSelector = "nodeSelector" // DefaultStaleReplicaTimeout in minutes. 48h by default DefaultStaleReplicaTimeout = "2880" EngineImageChecksumNameLength = 8 )
View Source
const (
EnvDefaultSettingPath = "DEFAULT_SETTING_PATH"
)
View Source
const ( // MaximumJobNameSize is calculated using // 1. NameMaximumLength is 40 // 2. Recurring suffix is 2 // 3. Maximum kubernetes name length is 63 // 4. cronjob pod suffix is 11 // 5. Dash and buffer for 2 MaximumJobNameSize = 8 )
View Source
const (
VolumeConditionReasonReplicaSchedulingFailure = "ReplicaSchedulingFailure"
)
View Source
const (
VolumeConditionTypeScheduled = "scheduled"
)
Variables ¶
View Source
var ( SettingDefinitions = map[SettingName]SettingDefinition{ SettingNameBackupTarget: SettingDefinitionBackupTarget, SettingNameBackupTargetCredentialSecret: SettingDefinitionBackupTargetCredentialSecret, SettingNameCreateDefaultDiskLabeledNodes: SettingDefinitionCreateDefaultDiskLabeledNodes, SettingNameDefaultDataPath: SettingDefinitionDefaultDataPath, SettingNameDefaultEngineImage: SettingDefinitionDefaultEngineImage, SettingNameReplicaSoftAntiAffinity: SettingDefinitionReplicaSoftAntiAffinity, SettingNameStorageOverProvisioningPercentage: SettingDefinitionStorageOverProvisioningPercentage, SettingNameStorageMinimalAvailablePercentage: SettingDefinitionStorageMinimalAvailablePercentage, SettingNameUpgradeChecker: SettingDefinitionUpgradeChecker, SettingNameLatestLonghornVersion: SettingDefinitionLatestLonghornVersion, SettingNameDefaultReplicaCount: SettingDefinitionDefaultReplicaCount, SettingNameGuaranteedEngineCPU: SettingDefinitionGuaranteedEngineCPU, SettingNameDefaultLonghornStaticStorageClass: SettingDefinitionDefaultLonghornStaticStorageClass, SettingNameBackupstorePollInterval: SettingDefinitionBackupstorePollInterval, SettingNameTaintToleration: SettingDefinitionTaintToleration, } SettingDefinitionBackupTarget = SettingDefinition{ DisplayName: "Backup Target", Description: "The target used for backup. Support NFS or S3.", Category: SettingCategoryBackup, Type: SettingTypeString, Required: false, ReadOnly: false, } SettingDefinitionBackupTargetCredentialSecret = SettingDefinition{ DisplayName: "Backup Target Credential Secret", Description: "The Kubernetes secret associated with the backup target.", Category: SettingCategoryBackup, Type: SettingTypeString, Required: false, ReadOnly: false, } SettingDefinitionBackupstorePollInterval = SettingDefinition{ DisplayName: "Backupstore Poll Interval", Description: "In seconds. The interval to poll the backup store for updating volumes' Last Backup field. Set to 0 to disable the polling.", Category: SettingCategoryBackup, Type: SettingTypeInt, Required: true, ReadOnly: false, Default: "300", } SettingDefinitionCreateDefaultDiskLabeledNodes = SettingDefinition{ DisplayName: "Create Default Disk on Labeled Nodes", Description: "Create default Disk automatically only on Nodes with the label " + "\"node.longhorn.io/create-default-disk=true\" if no other Disks exist. If disabled, default Disk will " + "be created on all new Nodes (only on first add).", Category: SettingCategoryGeneral, Type: SettingTypeBool, Required: true, ReadOnly: false, Default: "false", } SettingDefinitionDefaultDataPath = SettingDefinition{ DisplayName: "Default Data Path", Description: "Default path to use for storing data on a host", Category: SettingCategoryGeneral, Type: SettingTypeString, Required: true, ReadOnly: false, Default: "/var/lib/rancher/longhorn/", } SettingDefinitionDefaultEngineImage = SettingDefinition{ DisplayName: "Default Engine Image", Description: "The default engine image used by the manager. Can be changed on the manager starting command line only", Category: SettingCategoryGeneral, Type: SettingTypeString, Required: true, ReadOnly: true, } SettingDefinitionReplicaSoftAntiAffinity = SettingDefinition{ DisplayName: "Replica Soft Anti-Affinity", Description: "Allow scheduling on nodes with existing healthy replicas of the same volume", Category: SettingCategoryScheduling, Type: SettingTypeBool, Required: true, ReadOnly: false, Default: "true", } SettingDefinitionStorageOverProvisioningPercentage = SettingDefinition{ DisplayName: "Storage Over Provisioning Percentage", Description: "The over-provisioning percentage defines how much storage can be allocated relative to the hard drive's capacity", Category: SettingCategoryScheduling, Type: SettingTypeInt, Required: true, ReadOnly: false, Default: "500", } SettingDefinitionStorageMinimalAvailablePercentage = SettingDefinition{ DisplayName: "Storage Minimal Available Percentage", Description: "If one disk's available capacity to it's maximum capacity in % is less than the minimal available percentage, the disk would become unschedulable until more space freed up.", Category: SettingCategoryScheduling, Type: SettingTypeInt, Required: true, ReadOnly: false, Default: "10", } SettingDefinitionUpgradeChecker = SettingDefinition{ DisplayName: "Enable Upgrade Checker", Description: "Upgrade Checker will check for new Longhorn version periodically. When there is a new version available, it will notify the user using UI", Category: SettingCategoryGeneral, Type: SettingTypeBool, Required: true, ReadOnly: false, Default: "true", } SettingDefinitionLatestLonghornVersion = SettingDefinition{ DisplayName: "Latest Longhorn Version", Description: "The latest version of Longhorn available. Update by Upgrade Checker automatically", Category: SettingCategoryGeneral, Type: SettingTypeString, Required: false, ReadOnly: true, } SettingDefinitionDefaultReplicaCount = SettingDefinition{ DisplayName: "Default Replica Count", Description: "The default number of replicas when creating the volume from Longhorn UI. For Kubernetes, update the `numberOfReplicas` in the StorageClass", Category: SettingCategoryGeneral, Type: SettingTypeInt, Required: true, ReadOnly: false, Default: "3", } SettingDefinitionGuaranteedEngineCPU = SettingDefinition{ DisplayName: "Guaranteed Engine CPU", Description: "(EXPERIMENTAL FEATURE) Allow Longhorn Engine to have guaranteed CPU allocation. The value is " + "how many CPUs should be reserved for each Engine/Replica Manager Pod created by Longhorn. For example, " + "0.1 means one-tenth of a CPU. This will help maintain engine stability during high node workload. It " + "only applies to the Engine/Replica Manager Pods created after the setting took effect. WARNING: " + "Attaching of the volume may fail or stuck while using this feature due to the resource constraint. " + "Disabled (\"0\") by default.", Category: SettingCategoryGeneral, Type: SettingTypeInt, Required: true, ReadOnly: false, Default: "0", } SettingDefinitionDefaultLonghornStaticStorageClass = SettingDefinition{ DisplayName: "Default Longhorn Static StorageClass Name", Description: "The 'storageClassName' is for PV/PVC when creating PV/PVC for an existing Longhorn volume. Notice that it's unnecessary for users create the related StorageClass object in Kubernetes since the StorageClass would only be used as matching labels for PVC bounding purpose. By default 'longhorn-static'.", Category: SettingCategoryGeneral, Type: SettingTypeString, Required: false, ReadOnly: false, Default: "longhorn-static", } SettingDefinitionTaintToleration = SettingDefinition{ DisplayName: "Kubernetes Taint Toleration", Description: `By setting tolerations for Longhorn then adding taints for the nodes, the nodes with large storage can be dedicated to Longhorn only (to store replica data) and reject other general workloads. Before modifying toleration setting, all Longhorn volumes should be detached then Longhorn components will be restarted to apply new tolerations. And toleration update will take a while. Users cannot operate Longhorn system during update. Hence it's recommended to set toleration during Longhorn deployment. Multiple tolerations can be set here, and these tolerations are separated by semicolon. For example, "key1=value1:NoSchedule; key2:NoExecute". Notice that "kubernetes.io" is used as the key of all Kubernetes default tolerations, please do not contain this substring in your toleration setting.`, Category: SettingCategoryGeneral, Type: SettingTypeString, Required: false, ReadOnly: false, } )
View Source
var ( LonghornSystemKey = "longhorn" LonghornSystemValueManager = "manager" LonghornSystemValueEngineImage = "engine-image" )
View Source
var ( SettingNameList = []SettingName{ SettingNameBackupTarget, SettingNameBackupTargetCredentialSecret, SettingNameCreateDefaultDiskLabeledNodes, SettingNameDefaultDataPath, SettingNameDefaultEngineImage, SettingNameReplicaSoftAntiAffinity, SettingNameStorageOverProvisioningPercentage, SettingNameStorageMinimalAvailablePercentage, SettingNameUpgradeChecker, SettingNameLatestLonghornVersion, SettingNameDefaultReplicaCount, SettingNameGuaranteedEngineCPU, SettingNameDefaultLonghornStaticStorageClass, SettingNameBackupstorePollInterval, SettingNameTaintToleration, } )
Functions ¶
func ErrorAlreadyExists ¶
func ErrorIsNotFound ¶
func GetEngineImageLabels ¶
func GetImageCanonicalName ¶
func GetInstanceManagerLabels ¶
func GetInstanceManagerLabels(node, engineImageName string, managerType InstanceManagerType) map[string]string
func GetLonghornLabelComponentKey ¶
func GetLonghornLabelComponentKey() string
func GetLonghornLabelKey ¶
func GetRandomEngineManagerName ¶
func GetRandomEngineManagerName() string
func GetRandomReplicaManagerName ¶
func GetRandomReplicaManagerName() string
func GetVolumeLabels ¶
func LabelsToString ¶
func OverwriteBuiltInSettingsWithCustomizedValues ¶
func OverwriteBuiltInSettingsWithCustomizedValues() error
func UnmarshalTolerations ¶
func UnmarshalTolerations(tolerationSetting string) ([]v1.Toleration, error)
func ValidateAndUnmarshalToleration ¶
func ValidateAndUnmarshalToleration(s string) (*v1.Toleration, error)
func ValidateInitSetting ¶
func ValidateReplicaCount ¶
Types ¶
type BackupStatus ¶
type Condition ¶
type Condition struct { Type string `json:"type"` Status ConditionStatus `json:"status"` LastProbeTime string `json:"lastProbeTime"` LastTransitionTime string `json:"lastTransitionTime"` Reason string `json:"reason"` Message string `json:"message"` }
func GetDiskConditionFromStatus ¶
func GetDiskConditionFromStatus(status DiskStatus, conditionType DiskConditionType) Condition
func GetNodeConditionFromStatus ¶
func GetNodeConditionFromStatus(status NodeStatus, conditionType NodeConditionType) Condition
func GetVolumeConditionFromStatus ¶
func GetVolumeConditionFromStatus(status VolumeStatus, conditionType VolumeConditionType) Condition
GetVolumeConditionFromStatus returns a copy of v.Status.Condition[conditionType]
type ConditionStatus ¶
type ConditionStatus string
const ( ConditionStatusTrue ConditionStatus = "True" ConditionStatusFalse ConditionStatus = "False" ConditionStatusUnknown ConditionStatus = "Unknown" )
type DiskConditionType ¶
type DiskConditionType string
type DiskStatus ¶
type DiskStatus struct { Conditions map[DiskConditionType]Condition `json:"conditions"` StorageAvailable int64 `json:"storageAvailable"` StorageScheduled int64 `json:"storageScheduled"` StorageMaximum int64 `json:"storageMaximum"` ScheduledReplica map[string]int64 `json:"scheduledReplica"` }
func (*DiskStatus) DeepCopyInto ¶
func (n *DiskStatus) DeepCopyInto(to *DiskStatus)
type EngineImageSpec ¶
type EngineImageState ¶
type EngineImageState string
type EngineImageStatus ¶
type EngineImageStatus struct { State EngineImageState `json:"state"` RefCount int `json:"refCount"` NoRefSince string `json:"noRefSince"` EngineVersionDetails }
type EngineSpec ¶
type EngineSpec struct { InstanceSpec Frontend VolumeFrontend `json:"frontend"` ReplicaAddressMap map[string]string `json:"replicaAddressMap"` UpgradedReplicaAddressMap map[string]string `json:"upgradedReplicaAddressMap"` BackupVolume string `json:"backupVolume"` RequestedBackupRestore string `json:"requestedBackupRestore"` DisableFrontend bool `json:"disableFrontend"` }
func (*EngineSpec) DeepCopyInto ¶
func (e *EngineSpec) DeepCopyInto(to *EngineSpec)
type EngineStatus ¶
type EngineStatus struct { InstanceStatus ReplicaModeMap map[string]ReplicaMode `json:"replicaModeMap"` Endpoint string `json:"endpoint"` LastRestoredBackup string `json:"lastRestoredBackup"` BackupStatus map[string]*BackupStatus `json:"backupStatus"` RestoreStatus map[string]*RestoreStatus `json:"restoreStatus"` PurgeStatus map[string]*PurgeStatus `json:"purgeStatus"` }
func (*EngineStatus) DeepCopyInto ¶
func (e *EngineStatus) DeepCopyInto(to *EngineStatus)
type EngineVersionDetails ¶
type EngineVersionDetails struct { Version string `json:"version"` GitCommit string `json:"gitCommit"` BuildDate string `json:"buildDate"` CLIAPIVersion int `json:"cliAPIVersion"` CLIAPIMinVersion int `json:"cliAPIMinVersion"` ControllerAPIVersion int `json:"controllerAPIVersion"` ControllerAPIMinVersion int `json:"controllerAPIMinVersion"` DataFormatVersion int `json:"dataFormatVersion"` DataFormatMinVersion int `json:"dataFormatMinVersion"` }
type InstanceManagerSpec ¶
type InstanceManagerSpec struct { EngineImage string `json:"engineImage"` NodeID string `json:"nodeID"` OwnerID string `json:"ownerID"` Type InstanceManagerType `json:"type"` }
type InstanceManagerState ¶
type InstanceManagerState string
type InstanceManagerStatus ¶
type InstanceManagerStatus struct { CurrentState InstanceManagerState `json:"currentState"` Instances map[string]InstanceProcess `json:"instances"` IP string `json:"ip"` NodeBootID string `json:"nodeBootID"` }
func (*InstanceManagerStatus) DeepCopyInto ¶
func (n *InstanceManagerStatus) DeepCopyInto(to *InstanceManagerStatus)
type InstanceManagerType ¶
type InstanceManagerType string
type InstanceProcess ¶
type InstanceProcess struct { Spec InstanceProcessSpec `json:"spec"` Status InstanceProcessStatus `json:"status"` }
type InstanceProcessSpec ¶
type InstanceProcessSpec struct {
Name string `json:"name"`
}
type InstanceProcessStatus ¶
type InstanceProcessStatus struct { Endpoint string `json:"endpoint"` ErrorMsg string `json:"errorMsg"` Listen string `json:"listen"` PortEnd int32 `json:"portEnd"` PortStart int32 `json:"portStart"` State InstanceState `json:"state"` Type InstanceType `json:"type"` ResourceVersion int64 `json:"resourceVersion"` }
type InstanceSpec ¶
type InstanceState ¶
type InstanceState string
type InstanceStatus ¶
type InstanceType ¶
type InstanceType string
type KubernetesStatus ¶
type KubernetesStatus struct { PVName string `json:"pvName"` PVStatus string `json:"pvStatus"` // determine if PVC/Namespace is history or not Namespace string `json:"namespace"` PVCName string `json:"pvcName"` LastPVCRefAt string `json:"lastPVCRefAt"` // determine if Pod/Workload is history or not WorkloadsStatus []WorkloadStatus `json:"workloadsStatus"` LastPodRefAt string `json:"lastPodRefAt"` }
type NodeConditionType ¶
type NodeConditionType string
type NodeSpec ¶
type NodeSpec struct { Name string `json:"name"` Disks map[string]DiskSpec `json:"disks"` AllowScheduling bool `json:"allowScheduling"` Tags []string `json:"tags"` }
func (*NodeSpec) DeepCopyInto ¶
type NodeStatus ¶
type NodeStatus struct { Conditions map[NodeConditionType]Condition `json:"conditions"` DiskStatus map[string]DiskStatus `json:"diskStatus"` }
func (*NodeStatus) DeepCopyInto ¶
func (n *NodeStatus) DeepCopyInto(to *NodeStatus)
type NotFoundError ¶
type NotFoundError struct {
Name string
}
func (*NotFoundError) Error ¶
func (e *NotFoundError) Error() string
type PurgeStatus ¶
type RecurringJob ¶
type RecurringJobType ¶
type RecurringJobType string
type ReplicaMode ¶
type ReplicaMode string
type ReplicaSpec ¶
type ReplicaStatus ¶
type ReplicaStatus struct {
InstanceStatus
}
type RestoreStatus ¶
type SettingCategory ¶
type SettingCategory string
type SettingDefinition ¶
type SettingDefinition struct { DisplayName string `json:"displayName"` Description string `json:"description"` Category SettingCategory `json:"category"` Type SettingType `json:"type"` Required bool `json:"required"` ReadOnly bool `json:"readOnly"` Default string `json:"default"` }
type SettingName ¶
type SettingName string
type SettingType ¶
type SettingType string
type VolumeConditionType ¶
type VolumeConditionType string
type VolumeFrontend ¶
type VolumeFrontend string
type VolumeRobustness ¶
type VolumeRobustness string
type VolumeSpec ¶
type VolumeSpec struct { OwnerID string `json:"ownerID"` Size int64 `json:"size,string"` Frontend VolumeFrontend `json:"frontend"` FromBackup string `json:"fromBackup"` NumberOfReplicas int `json:"numberOfReplicas"` StaleReplicaTimeout int `json:"staleReplicaTimeout"` NodeID string `json:"nodeID"` MigrationNodeID string `json:"migrationNodeID"` PendingNodeID string `json:"pendingNodeID"` EngineImage string `json:"engineImage"` RecurringJobs []RecurringJob `json:"recurringJobs"` BaseImage string `json:"baseImage"` Standby bool `json:"Standby"` InitialRestorationRequired bool `json:"initialRestorationRequired"` DiskSelector []string `json:"diskSelector"` NodeSelector []string `json:"nodeSelector"` DisableFrontend bool `json:"disableFrontend"` }
func (*VolumeSpec) DeepCopyInto ¶
func (v *VolumeSpec) DeepCopyInto(to *VolumeSpec)
type VolumeState ¶
type VolumeState string
type VolumeStatus ¶
type VolumeStatus struct { State VolumeState `json:"state"` Robustness VolumeRobustness `json:"robustness"` CurrentImage string `json:"currentImage"` KubernetesStatus KubernetesStatus `json:"kubernetesStatus"` Conditions map[VolumeConditionType]Condition `json:"conditions"` LastBackup string `json:"lastBackup"` LastBackupAt string `json:"lastBackupAt"` }
func (*VolumeStatus) DeepCopyInto ¶
func (v *VolumeStatus) DeepCopyInto(to *VolumeStatus)
Click to show internal directories.
Click to hide internal directories.