-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add phases support to clusterctl #554
Comments
/assign |
I've added this to the weekly meeting topics for discussion. |
I am exercising a slightly different workflow when provisioning a k8s cluster with cluster API stack deployed. Basically trying to skip the requirement for bootstrapping cluster. Instead, I am running an actuator directly to provision a single master node and doing all the work there. In steps:
There is no pivoting so it's very simplified from the original workflow the
I consider this simplification useful since (e.g. in the case of the aws actuator), I only need a single binary that I execute and get a running cluster in AWS without existing cluster. So it's very demanding to have phases I can run in different order than the default sequence. |
@ingvagabund - for your workflow, how are you are running the cluster api stack on the master? Are you using labels / taints? |
I deploy the same manifests as generated by the [1] https://github.com/kubernetes-sigs/cluster-api/tree/master/config EDIT: node tainting can be done as part of user data script. Not saying it's the best way but sufficient for development purposes. |
/lifecycle active |
/milestone Next |
/area clusterctl |
@detiber Is this one still relevant? Should we punt to Next? |
@vincepri closing, since |
@detiber: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Currently the clusterctl workflows are pretty monolithic and more advanced usage (such as using existing clusters for bootstrapping, or avoiding pivoting the cluster-api components) has required adding additional flags. It would help if we exposed logical phases to users to allow them to create more advanced workflows without buying into the existing clusterctl workflows or having to leverage complex interactions between command line flags.
In order to avoid an incredibly large PR that introduces full phase support, I propose that we start breaking out existing logical functionality, re-using it from the existing monolithic workflows, exposing it as a phase, and then once there is a good set of logical phases the existing subcommands can be modified to perform the required phases step by step.
Per the conversation in the weekly cluster-api meeting on 24 Oct, 2018, these phases should be exposed under an
alpha
subcommand to avoid user expectations of long term support for the currently defined "phases".Proposed tasks (I suspect I may be missing a few in my initial attempt to break it down):
create-bootstrap-cluster
phase [clusterctl] add phases create-bootstrap-cluster subcommand #553apply-cluster-api-components
phase Create a phase for applying the Cluster API components #573apply-addons
phase Create a phase for applying the Addon components #577apply-cluster
phase [clusterctl] add phases for apply-machines and apply-cluster #581apply-machines
phase [clusterctl] add phases for apply-machines and apply-cluster #581pivot
phase (To pivot the provider components, clusters, and machine* objects from a source cluster to a target cluster) Add pivot phase to clusterctl and unify pivoting approach #731create cluster
command to use phasesdelete cluster
command to use phasesvalidate cluster
command to use phasesThe
pivot
phase mentioned above would require some changes to the existing workflow. Currently handling of pivoting is handled differently betweencreate
anddelete
actions. I would propose that the pivot should be modified to perform the following actions to create a more unified experience:The text was updated successfully, but these errors were encountered: