datacopy

package
v0.14.2 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2024 License: Apache-2.0 Imports: 23 Imported by: 4

Documentation

Overview

Design for copy data from source PVC to destination PVC, continuously push statue into status channel for notifications

Index

Constants

View Source
const (
	DefaultCopyTimeout = time.Hour * 48

	SyncKeyComment = "SyncPubKey"

	SyncPubKeyFileName     = "key.pub"
	SyncPrivateKeyFileName = "key"
	SyncKeyConfigMapName   = "sync-key-config"

	SyncCertKey = "keys-pair"
)
View Source
const (
	DataCopyStatusPending = "pending"
	DataCopyStatusSuccess = "success"
	DataCopyStatusRunning = "running"
	DataCopyStatusFailed  = "failed"
)
View Source
const (
	SyncSrcName        = "source"
	SyncRemoteName     = "remote"
	SyncConfigMapName  = "sync-config"
	SyncJobLabelApp    = "hwameistor-datasync"
	SyncJobAffinityKey = "kubernetes.io/hostname"

	SyncSourceMountPoint = "/mnt/hwameistor/src/"
	SyncTargetMountPoint = "/mnt/hwameistor/dst/"

	SyncConfigSourceMountPointKey   = "sourceMountPoint"
	SyncConfigTargetMountPointKey   = "targetMountPoint"
	SyncConfigSourceNodeNameKey     = "sourceNode"
	SyncConfigTargetNodeNameKey     = "targetNode"
	SyncConfigVolumeNameKey         = "localVolume"
	SyncConfigSourceNodeReadyKey    = "sourceReady"
	SyncConfigTargetNodeReadyKey    = "targetReady"
	SyncConfigSourceNodeCompleteKey = "sourceCompleted"
	SyncConfigTargetNodeCompleteKey = "targetCompleted"
	SyncConfigSyncCompleteKey       = "syncCompleted"

	SyncTrue  string = "yes"
	SyncFalse string = "no"

	SyncJobFinalizer = "hwameistor.io/sync-job-protect"

	SyncToolJuiceSync = "juicesync"
)

Variables

This section is empty.

Functions

func GetConfigMapName added in v0.4.0

func GetConfigMapName(str1, str2 string) string

Types

type DataCopyManager

type DataCopyManager struct {
	// contains filtered or unexported fields
}

func NewDataCopyManager

func NewDataCopyManager(ctx context.Context, syncToolName string, dataCopyJobStatusAnnotationName string,
	client k8sclient.Client, statusCh chan *DataCopyStatus, namespace string, dataCheckNeed bool) (*DataCopyManager, error)

NewDataCopyManager return DataCopyManager instance

It will feedback copy process status continuously through statusCh, so it dose not need ResourceReady to poll resource status

func (*DataCopyManager) DeregisterRelatedJob

func (dcm *DataCopyManager) DeregisterRelatedJob(jobName string)

func (*DataCopyManager) GenerateSyncKeyConfigMap added in v0.12.4

func (dcm *DataCopyManager) GenerateSyncKeyConfigMap() *corev1.ConfigMap

func (*DataCopyManager) RegisterRelatedJob

func (dcm *DataCopyManager) RegisterRelatedJob(jobName string, resultCh chan *DataCopyStatus)

func (*DataCopyManager) Run

func (dcm *DataCopyManager) Run()

func (*DataCopyManager) Sync added in v0.12.4

func (dcm *DataCopyManager) Sync(jobName, srcNodeName, dstNodeName, volName string) error

type DataCopyStatus

type DataCopyStatus struct {
	UserData string
	JobName  string
	Phase    string
	Event    string
	Message  string
	// TODO
	Progress *Progress
}

type DataSyncer added in v0.12.4

type DataSyncer interface {
	Prepare(targetNodeName, sourceNodeName, lvName string) error
	StartSync(jobName, lvName, excludedRunningNodeName, runningNodeName string, dataCheckNeed bool) error
}

func NewSyncer added in v0.12.4

func NewSyncer(syncerName string, namespace string, client k8sclient.Client) DataSyncer

type JuiceSync added in v0.12.4

type JuiceSync struct {
	// contains filtered or unexported fields
}

func (*JuiceSync) Prepare added in v0.12.4

func (js *JuiceSync) Prepare(targetNodeName, sourceNodeName, volName string) (err error)

func (*JuiceSync) StartSync added in v0.12.4

func (js *JuiceSync) StartSync(jobName, volName, excludedRunningNodeName, runningNodeName string, dataCheckNeed bool) error

type Progress

type Progress struct{}

TODO

Jump to

Keyboard shortcuts

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