Skip to content

Define clusterctl move process #1525

@fabriziopandini

Description

@fabriziopandini

[2019-11-26 Updated] according to #1730 (comment) Pivot is now rebranded into Move; issue updated accordingly

User Story

As an operator I would like to move cluster objects and all the associated resources (Machines, Machine Depolyments etc.) from the current management cluster to another management cluster for any reason

Detailed Description

The clusterctl CAEP currently in flight assumes the user should brig its own management cluster, so technically the sequence bootstrap cluster -> pivot to -> management cluster is not necessary anymore.

However, the same CAEP consider pivoting a possible answer to different operational needs, e.g because of maintenance or replacement of the management cluster, so pivoting is still in scope.

With v1alpha3 in flight and the new assumptions around clusterctl - one binary for rule all the providers -, the implementation detail should be re-validated, keeping in mind also #1730 (comment) discussion that lead to transforming pivot into move.

Goals

    1. To define a moving process that can work on any clusterctl generated management cluster (with any provider or any combinations of providers)
    • To define how to move provider-specific objects (or eventually hierarchies of objects)
    1. To define conventions/requirements the above process should rely on e.g.
    1. To define move specializations, like e.g. move only clusters in a given namespace or move only a specific cluster
    1. To define eventual move side effects (e.g. If forcing cluster-api controllers to not reconcile resources will be implemented scaling down controllers, all the cluster objects stop to reconcile)
    1. To define preflight checks to be executed before move, e.g.
    • check all the required providers exists in the target cluster (how to identify required providers TBD)
    • other checks e.g. objects already exist in the target cluster

Non-Goals

    1. to support move for DIY management clusters (not created with clusterctl)
    1. to support move for clusters < v1alpha3 (TO BE CONFIRMED)

Anything else you would like to add:

There is a lot of learning from past experiences on pivoting, so I'm pasting below some comments from different threads. Feel free to add more.

/kind feature

Metadata

Metadata

Labels

area/clusterctlIssues or PRs related to clusterctlkind/featureCategorizes issue or PR as related to a new feature.lifecycle/activeIndicates that an issue or PR is actively being worked on by a contributor.priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions