k0s icon indicating copy to clipboard operation
k0s copied to clipboard

Document how to "join" controllers when external etcd is used

Open twz123 opened this issue 10 months ago • 8 comments

When using external etcd, k0s refuses to create controller join tokens:

$ k0s token create --role controller
Error: refusing to create token: cannot join controller into current storage 

This is because join tokens aren't needed in this case. Just spin up another controller with the same config and that's it.

This needs to be documented somewhere, and the CLI error message might be more helpful. It might even include a link to the (not yet existing) documentation for this.

twz123 avatar Apr 17 '24 13:04 twz123

As an adjacent observation, k0s allows join tokens for external MySQL or Postgres databases via kine. The situation for those storage types seems to be essentially the same as for external etcd. So I wonder if it would make more sense to simply allow join tokens for external etcd as well, or also refusing to create join tokens for any non-internal-etcd storage.

twz123 avatar Apr 17 '24 14:04 twz123

So I wonder if it would make more sense to simply allow join tokens for external etcd as well

IMO this would make sense

jnummelin avatar Apr 22 '24 08:04 jnummelin

The issue is marked as stale since no activity has been recorded in 30 days

github-actions[bot] avatar May 22 '24 23:05 github-actions[bot]

This is because join tokens aren't needed in this case

They are needed. Through the k0s join api, authorized via the token, the other controllers get the shared CA etc. files

jnummelin avatar May 24 '24 11:05 jnummelin

The issue is marked as stale since no activity has been recorded in 30 days

github-actions[bot] avatar Jun 23 '24 23:06 github-actions[bot]

The issue is marked as stale since no activity has been recorded in 30 days

github-actions[bot] avatar Jul 24 '24 23:07 github-actions[bot]

The issue is marked as stale since no activity has been recorded in 30 days

github-actions[bot] avatar Aug 24 '24 23:08 github-actions[bot]

Through the k0s join api, authorized via the token, the other controllers get the shared CA etc. files

Unless we document that in case of external etcd, one needs to copy over the CA etc files before booting the next controller.

jnummelin avatar Sep 11 '24 11:09 jnummelin