types

package
v0.8.1-rc3 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2020 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

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 (
	InvalidEngineVersion = -1
)
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"
)

Functions

func EngineBinaryExistOnHostForImage

func EngineBinaryExistOnHostForImage(image string) bool

func ErrorAlreadyExists

func ErrorAlreadyExists(err error) bool

func ErrorIsNotFound

func ErrorIsNotFound(err error) bool

func GenerateEngineNameForVolume

func GenerateEngineNameForVolume(vName string) string

func GenerateReplicaNameForVolume

func GenerateReplicaNameForVolume(vName string) string

func GetAPIServerAddressFromIP

func GetAPIServerAddressFromIP(ip string) string

func GetCronJobNameForVolumeAndJob

func GetCronJobNameForVolumeAndJob(vName, job string) string

func GetCustomizedDefaultSettings

func GetCustomizedDefaultSettings() (map[string]string, error)

func GetDaemonSetNameFromEngineImageName

func GetDaemonSetNameFromEngineImageName(engineImageName string) string

func GetEngineBinaryDirectoryInContainerForImage

func GetEngineBinaryDirectoryInContainerForImage(image string) string

func GetEngineBinaryDirectoryOnHostForImage

func GetEngineBinaryDirectoryOnHostForImage(image string) string

func GetEngineImageChecksumName

func GetEngineImageChecksumName(image string) string

func GetEngineImageLabels

func GetEngineImageLabels(engineImageName string) map[string]string

func GetEngineImageNameFromDaemonSetName

func GetEngineImageNameFromDaemonSetName(dsName string) string

func GetImageCanonicalName

func GetImageCanonicalName(image string) string

func GetInstanceManagerComponentLabel

func GetInstanceManagerComponentLabel() map[string]string

func GetInstanceManagerLabels

func GetInstanceManagerLabels(node, engineImageName string, managerType InstanceManagerType) map[string]string

func GetInstanceManagerWithEngineImageKeyLabel

func GetInstanceManagerWithEngineImageKeyLabel(engineImageName string) map[string]string

func GetLonghornLabelComponentKey

func GetLonghornLabelComponentKey() string

func GetLonghornLabelKey

func GetLonghornLabelKey(name string) string

func GetRandomEngineManagerName

func GetRandomEngineManagerName() string

func GetRandomReplicaManagerName

func GetRandomReplicaManagerName() string

func GetReplicaMountedDataPath

func GetReplicaMountedDataPath(dataPath string) string

func GetVolumeLabels

func GetVolumeLabels(volumeName string) map[string]string

func LabelsToString

func LabelsToString(labels map[string]string) string

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 ValidateInitSetting(name, value string) (err error)

func ValidateReplicaCount

func ValidateReplicaCount(count int) error

Types

type BackupStatus

type BackupStatus struct {
	Progress     int    `json:"progress"`
	BackupURL    string `json:"backupURL,omitempty"`
	Error        string `json:"error,omitempty"`
	SnapshotName string `json:"snapshotName"`
	State        string `json:"state"`
}

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 DiskSpec

type DiskSpec struct {
	Path            string   `json:"path"`
	AllowScheduling bool     `json:"allowScheduling"`
	StorageReserved int64    `json:"storageReserved"`
	Tags            []string `json:"tags"`
}

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 EngineImageSpec struct {
	OwnerID string `json:"ownerID"`
	Image   string `json:"image"`
}

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 InstanceSpec struct {
	OwnerID      string        `json:"ownerID"`
	VolumeName   string        `json:"volumeName"`
	VolumeSize   int64         `json:"volumeSize,string"`
	NodeID       string        `json:"nodeID"`
	EngineImage  string        `json:"engineImage"`
	DesireState  InstanceState `json:"desireState"`
	LogRequested bool          `json:"logRequested"`
}

type InstanceState

type InstanceState string

type InstanceStatus

type InstanceStatus struct {
	InstanceManagerName string        `json:"instanceManagerName"`
	CurrentState        InstanceState `json:"currentState"`
	CurrentImage        string        `json:"currentImage"`
	IP                  string        `json:"ip"`
	Port                int           `json:"port"`
	Started             bool          `json:"started"`
	NodeBootID          string        `json:"nodeBootID"`
}

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

func (n *NodeSpec) DeepCopyInto(to *NodeSpec)

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 PurgeStatus struct {
	Error     string `json:"error"`
	IsPurging bool   `json:"isPurging"`
	Progress  int    `json:"progress"`
	State     string `json:"state"`
}

type RecurringJob

type RecurringJob struct {
	Name   string            `json:"name"`
	Task   RecurringJobType  `json:"task"`
	Cron   string            `json:"cron"`
	Retain int               `json:"retain"`
	Labels map[string]string `json:"labels"`
}

type RecurringJobType

type RecurringJobType string

type ReplicaMode

type ReplicaMode string

type ReplicaSpec

type ReplicaSpec struct {
	InstanceSpec
	EngineName string `json:"engineName"`
	HealthyAt  string `json:"healthyAt"`
	FailedAt   string `json:"failedAt"`
	DiskID     string `json:"diskID"`
	DataPath   string `json:"dataPath"`
	BaseImage  string `json:"baseImage"`
	Active     bool   `json:"active"`
}

type ReplicaStatus

type ReplicaStatus struct {
	InstanceStatus
}

type RestoreStatus

type RestoreStatus struct {
	IsRestoring  bool   `json:"isRestoring"`
	LastRestored string `json:"lastRestored"`
	Progress     int    `json:"progress,omitempty"`
	Error        string `json:"error,omitempty"`
	Filename     string `json:"filename,omitempty"`
	State        string `json:"state"`
	BackupURL    string `json:"backupURL"`
}

type Setting

type Setting struct {
	Value string `json:"value"`
}

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)

type WorkloadStatus

type WorkloadStatus struct {
	PodName      string `json:"podName"`
	PodStatus    string `json:"podStatus"`
	WorkloadName string `json:"workloadName"`
	WorkloadType string `json:"workloadType"`
}

Jump to

Keyboard shortcuts

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