directvolumemigration

package
v0.0.0-...-a5e3609 Latest Latest
Warning

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

Go to latest
Published: Dec 8, 2020 License: Apache-2.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Created                      = ""
	Started                      = "Started"
	Prepare                      = "Prepare"
	CleanStaleRsyncResources     = "CleanStaleRsyncResources"
	CreateDestinationNamespaces  = "CreateDestinationNamespaces"
	DestinationNamespacesCreated = "DestinationNamespacesCreated"
	CreateDestinationPVCs        = "CreateDestinationPVCs"
	DestinationPVCsCreated       = "DestinationPVCsCreated"
	CreateStunnelConfig          = "CreateStunnelConfig"
	CreateRsyncConfig            = "CreateRsyncConfig"
	CreateRsyncRoute             = "CreateRsyncRoute"

	// Distinguish rsync transfer pod step from rsync client pod
	// i.e. Create transfer pod, ensure it is healthy, then start client pod
	CreateStunnelPodOnSource        = "CreateStunnelPodOnSource"
	EnsureStunnelPodOnSourceHealthy = "EnsureStunnelPodOnSourceHealthy"
	//Next two phases are on destination
	CreateRsyncTransferPods              = "CreateRsyncTransferPods"
	WaitForRsyncTransferPodsRunning      = "WaitForRsyncTransferPodsRunning"
	CreateStunnelClientPods              = "CreateStunnelClientPods"
	WaitForStunnelClientPodsRunning      = "WaitForStunnelClientPodsRunning"
	CreatePVProgressCRs                  = "CreatePVProgressCRs"
	CreateRsyncClientPods                = "CreateRsyncClientPods"
	WaitForRsyncClientPodsCompleted      = "WaitForRsyncClientPodsCompleted"
	Verification                         = "Verification"
	DeleteRsyncResources                 = "DeleteRsyncResources"
	WaitForRsyncResourcesTerminated      = "WaitForRsyncResourcesTerminated"
	WaitForStaleRsyncResourcesTerminated = "WaitForStaleRsyncResourcesTerminated"
	Completed                            = "Completed"
	MigrationFailed                      = "MigrationFailed"
)

Phases

View Source
const (
	InvalidSourceClusterRef      = "InvalidSourceClusterRef"
	InvalidDestinationClusterRef = "InvalidDestinationClusterRef"
	InvalidSourceCluster         = "InvalidSourceCluster"
	InvalidDestinationCluster    = "InvalidDestinationCluster"
	InvalidPVCs                  = "InvalidPVCs"
	SourceClusterNotReady        = "SourceClusterNotReady"
	DestinationClusterNotReady   = "DestinationClusterNotReady"
	PVCsNotFoundOnSourceCluster  = "PodsNotFoundOnSourceCluster"
	Running                      = "Running"
	Failed                       = "Failed"
	Succeeded                    = "Succeeded"
)

Types

View Source
const (
	NotFound    = "NotFound"
	NotSet      = "NotSet"
	NotDistinct = "NotDistinct"
	NotReady    = "NotReady"
)

Reasons

View Source
const (
	ReadyMessage                              = "Direct migration is ready"
	RunningMessage                            = "Step: %d/%d"
	InvalidSourceClusterReferenceMessage      = "The source cluster reference is invalid"
	InvalidDestinationClusterReferenceMessage = "The destination cluster reference is invalid"
	InvalidSourceClusterMessage               = "The source cluster is invalid"
	InvalidDestinationClusterMessage          = "The destination cluster is invalid"
	InvalidPVCsMessage                        = "The set of persistent volume claims is invalid"
	SourceClusterNotReadyMessage              = "The source cluster is not ready"
	DestinationClusterNotReadyMessage         = "The destination cluster is not ready"
	PVCsNotFoundOnSourceClusterMessage        = "The set of pvcs were not found on source cluster"
	SucceededMessage                          = "The migration has succeeded"
	FailedMessage                             = "The migration has failed.  See: Errors."
)

Messages

View Source
const (
	Critical = migapi.Critical
	Advisory = migapi.Advisory
)

Categories

View Source
const (
	True  = migapi.True
	False = migapi.False
)

Statuses

Variables

View Source
var FailedItinerary = Itinerary{
	Name: "VolumeMigrationFailed",
	Steps: []Step{
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
	},
}
View Source
var FastReQ = time.Duration(time.Millisecond * 100)

Requeue

View Source
var NoReQ = time.Duration(0)
View Source
var PollReQ = time.Duration(time.Second * 3)
View Source
var VolumeMigration = Itinerary{
	Name: "VolumeMigration",
	Steps: []Step{
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
		{/* contains filtered or unexported fields */},
	},
}

Functions

func Add

func Add(mgr manager.Manager) error

Add creates a new DirectVolumeMigration Controller and adds it to the Manager with default RBAC. The Manager will set fields on the Controller and Start it when the Manager is Started.

func GetDVMRefFromDPMP

func GetDVMRefFromDPMP(a handler.MapObject) []reconcile.Request

Types

type Itinerary

type Itinerary struct {
	Name  string
	Steps []Step
}

type ReconcileDirectVolumeMigration

type ReconcileDirectVolumeMigration struct {
	client.Client
	// contains filtered or unexported fields
}

ReconcileDirectVolumeMigration reconciles a DirectVolumeMigration object

func (*ReconcileDirectVolumeMigration) Reconcile

Reconcile reads that state of the cluster for a DirectVolumeMigration object and makes changes based on the state read and what is in the DirectVolumeMigration.Spec a Deployment as an example Automatically generate RBAC rules to allow the Controller to read and write Deployments +kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;patch;delete +kubebuilder:rbac:groups=apps,resources=deployments/status,verbs=get;update;patch +kubebuilder:rbac:groups=migration.openshift.io,resources=directvolumemigrations,verbs=get;list;watch;create;update;patch;delete; +kubebuilder:rbac:groups=migration.openshift.io,resources=directvolumemigrations/status,verbs=get;update;patch

type Step

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

Step

type Task

type Task struct {
	Log              logr.Logger
	Client           k8sclient.Client
	Owner            *migapi.DirectVolumeMigration
	SSHKeys          *sshKeys
	RsyncRoutes      map[string]string
	Phase            string
	PhaseDescription string
	Requeue          time.Duration
	Itinerary        Itinerary
	Errors           []string
}

A task that provides the complete migration workflow. Log - A controller's logger. Client - A controller's (local) client. Owner - A DirectVolumeMigration resource. Phase - The task phase. Requeue - The requeueAfter duration. 0 indicates no requeue. Itinerary - The phase itinerary. Errors - Migration errors. Failed - Task phase has failed.

func (*Task) Run

func (t *Task) Run() error

Jump to

Keyboard shortcuts

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