kubernetes/kubernetes

kubeadm feature flags

bogdando opened this issue · 7 comments

FEATURE REQUEST:

Add runtime/config feature flags for granular control of kubeadm init tasks. Like:

  • etcd clustering,
  • certs management,
  • container images pulling,
  • configs generation,
  • static pods definitions for system components,
  • essential addons installation.

Use case:
One may want to use hyperkube and do not pull images for apiserver and other components.
Or one may want to only run certs management tasks, or only re-generate configs or static manifests pods or only install addons. Having feature flags eases idempotent runs, co-existing with external CM systems like ansible or puppet and integration testing efforts a lot.

The feature flags, either CLI or config file based, should ease integration efforts and make the tool more flexible as well.

Related feature #11

Kubernetes version (use kubectl version): next

Environment:

  • Cloud provider or hardware configuration: any
  • OS (e.g. from /etc/os-release): any
  • Kernel (e.g. uname -a): any
  • Install tools: n/a
  • Others: n/a

Thank you for this @bogdando! We definitely want to make kubeadm support your use-case in kargo. We have just merged support for kubeadm init to read config from a file which will make it easier to add this level of granular control without making the user-facing CLI totally insane. I'll add discussion of this topic to the next SIG-cluster-lifecycle meeting next Tuesday at 9am, could you join that?

@lukemarsden thank you, I will

Also note that while being configurable is very nice to have, runtime flags must allow to specify which steps a user wants the kubeadm init do for him and which do not

This is now tracked as kubernetes/enhancements#138

pires commented

Just to add to what Luke said, there's file configuration support for kubeadm join as well.

Reopened as there is yet another optional place to track it

This issue was moved to kubernetes/kubeadm#22