Documentation ¶
Index ¶
Constants ¶
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
const ( InvalidSourceClusterRef = "InvalidSourceClusterRef" InvalidDestinationClusterRef = "InvalidDestinationClusterRef" InvalidSourceCluster = "InvalidSourceCluster" InvalidDestinationCluster = "InvalidDestinationCluster" InvalidPVCs = "InvalidPVCs" SourceClusterNotReady = "SourceClusterNotReady" DestinationClusterNotReady = "DestinationClusterNotReady" PVCsNotFoundOnSourceCluster = "PodsNotFoundOnSourceCluster" Running = "Running" Failed = "Failed" Succeeded = "Succeeded" )
Types
const ( NotFound = "NotFound" NotSet = "NotSet" NotDistinct = "NotDistinct" NotReady = "NotReady" )
Reasons
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
const ( Critical = migapi.Critical Advisory = migapi.Advisory )
Categories
const ( True = migapi.True False = migapi.False )
Statuses
Variables ¶
var FailedItinerary = Itinerary{ Name: "VolumeMigrationFailed", Steps: []Step{ {/* contains filtered or unexported fields */}, {/* contains filtered or unexported fields */}, }, }
var FastReQ = time.Duration(time.Millisecond * 100)
Requeue
var NoReQ = time.Duration(0)
var PollReQ = time.Duration(time.Second * 3)
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 ¶
Types ¶
type ReconcileDirectVolumeMigration ¶
type ReconcileDirectVolumeMigration struct { client.Client // contains filtered or unexported fields }
ReconcileDirectVolumeMigration reconciles a DirectVolumeMigration object
func (*ReconcileDirectVolumeMigration) Reconcile ¶
func (r *ReconcileDirectVolumeMigration) Reconcile(request reconcile.Request) (reconcile.Result, error)
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 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.