as per comment https://github.com/kubernetes/kubernetes/pull/70333#discussion_r229811268
in v1.12 we are exposing the kubeadm init workflow as phases, and moving all the other commands formerly hoster under kubeadm alpha phase to kubeadm alpha (without phases).
This re-shuffle includes also subcommands that are part of the kubeadm join workflow (e.g. preflight node, kubelet config download).
if there is consensus, we should start from those pieces and expose also the kubeadm join workflow as phases
old KEP for phases:
https://github.com/kubernetes/enhancements/blob/master/keps/sig-cluster-lifecycle/0029-20180918-kubeadm-phases-beta.md
(neolit123): here is document for discussing the phases for join:
https://docs.google.com/document/d/1nkTy7r1pBZvQT_YnuGHEQ5MrQZBaC2A7frXxzd6y7m0/edit?usp=sharing
we need to evict the Run method from join.go and move the logic to join phases.
the phase runner mechanic that we use in init.go should be used for that.
NOTE: the merging of PRs should happen in the exact order bellow.
item: move the fetching of init configuration to joinData struct + prepare for phases.
assigned: @neolit123
notes: we need to move the init config from Run() to joinData as an (e.g.) initConfig field.
this is is a preliminary step and has to happen before everything else
item: get args working for leaf phases
assigned: @ereslibre
item: phase name preflight
assigned: @MalloZup
note: includes the following logic:
item: phase name control-plane-prepare
assigned: @ereslibre
notes: function name is PrepareForHostingControlPlane
has these sub phases:
certs (create PKI assets)kubeconfigmanifestsplus an additional hidden phase named etcdCheck
if initConfiguration.Etcd.External == nil from PrepareForHostingControlPlane)item: phase name kubelet-start
assigned: @yagonobre
notes: function name is BootstrapKubelet
no sub phases, all logic in a single runner callback function.
item: phase name control-plane-join
assigned: @RA489
notes: main function name is PostInstallControlPlane but also code from Run()
has these sub phases:
etcd-localupload-configmark-control-planeitem: make a final check on the UX, with focus on args (e.g. evaluate if args should be made phase specific)
See document Auditing Join Phases
https://docs.google.com/document/d/1tqgjB_KJMeYAXHYqOuBKKpCLSzxVgSl-MUfXf7d8C8U/edit?usp=sharing
Decide on how to handle the extra arg (see comment on the issue)
https://github.com/kubernetes/kubeadm/issues/1375
assigned: TBD
Fix labels and help messages
assigned: @fabriziopandini
First pass on flags (add missing flags, optimize usage of discovery flags)
assigned: @fabriziopandini
Second pass on flags (check and remove flags marked as why?)
assigned: @neolit123
Cleanup of join output (all the message should be prefixed by the phase name, where possible print messages should be made equal to init)
assigned: @neolit123
Cleanup of preflight checks (join call preflight twice; make the second call skip checks already executed by the first one or make a new preflight check function for join control-plane)
assigned: @neolit123
I can work on it in the next cycle
/assign @yagonobre
/lifecycle active
@yagonobre great!
Looking forward for the draft of the list of phases to be implemented!
/assign
we are going to track the work in this issue and possibly have volunteers help us with that.
after this PR merged:
https://github.com/kubernetes/kubernetes/pull/72442
we need to solidify/define the list of phases for join.
I'm also willing to help with this effort, as of todays kubeadm office hours meeting.
I can also help with this effort.
taking control-plane-join phase.
@RA489 thanks, assigned.
as a reminder, please note that the PRs have to come in order.
preflight -> control plane -> .....
I can take control-plane-prepare phase
@neolit123 i can take the preflight one
thanks @ereslibre and @MalloZup .
the only vacant item now is kubelet-start
I can take kubelet-start
thanks you @yagonobre
@MalloZup: GitHub didn't allow me to assign the following users: MalloZup.
Note that only kubernetes members and repo collaborators can be assigned and that issues/PRs can only have 10 assignees at the same time.
For more information please see the contributor guide
In response to this:
/assign @MalloZup
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.
the base PR for phases in join has merged.
@MalloZup you can start with the PR for preflight.
@neolit123 thx for infos. yop i'm looking at it :rocket:
control-plane-prepare phase is ready for review in https://github.com/kubernetes/kubernetes/pull/73145/
thanks for everyone who contributed. all the PRs for phases are added.
we now need to focus on auditing them.
it will be OK to push bugfixes even after code freeze.
i will help next week or later this week to verify the join phases.
also this doc already has outlined some nits (thanks @fabriziopandini )
https://docs.google.com/document/d/1tqgjB_KJMeYAXHYqOuBKKpCLSzxVgSl-MUfXf7d8C8U/edit#
(if you don't see the comments on the right of the doc screen - make sure you zoom out)
we are pretty much done here, minus:
Decide on how to handle the extra arg (see comment on the issue)
1375
which is for 1.15.
and auditing.
closing this ticket as the work here is done.
leaving https://github.com/kubernetes/kubeadm/issues/1375 as a standalone ticket.