siderolabs / talos

Talos Linux is a modern Linux distribution built for Kubernetes.
https://www.talos.dev
Mozilla Public License 2.0
6.45k stars 514 forks source link

Auto bootstrap for single-node clusters #6207

Closed maxpain closed 2 months ago

maxpain commented 2 years ago

Hi. It will be nice to have some autoBootstrap: true config option.

We deploy single-node clusters using talos.config kernel arg, generating yaml config on the fly on our web server, but actual bootstrapping requires us to run talosctl bootstrap command.

ShaunMaher commented 2 years ago

I was just about to submit a similar request.

We are using Terraform to deploy Talos single node cluster VMs into various VLANs, that Terraform cannot access (it can only access the VMware management network to create the VMs). Our goal is to have the VMs provision with Terraform, and after the bootstrap step, that I haven't yet worked out how to complete automatically, install the GitLab Kubernetes Cluster Agent, which will take over kubernetes management from that point. I'm just stuck in that middle point.

maxpain commented 2 years ago

@ShaunMaher I use init machine type instead of controlplane, it works! But Talos developers said that this is deprecated and will be removed in the future.

smira commented 2 years ago

We tried this, and it doesn't work quite good, that's why init type is deprecated. Probably for single-node clusters which are kind of extreme use case it will be fine, but auto-bootstrap has lots of issues for multi-node control planes, when doing upgrades, node replacement, etc. That's the reason why init type is deprecated.

So we won't support more autoBootstrap options, and init type while deprecated still works.

alexandrem commented 1 year ago

I'm interested in keeping the init type functionality, so I'd like to have a confirmation if this is going away anytime soon or if it's simply marked as "deprecated" and not recommended.

We are using this to build a fleet of warm machines that are provisioned on-prem either on metal or virtual machines. These machines then get reconfigured on the fly to join clusters on-demand.

The init role helps in having these machines bootstrapped and ready for an OS upgrade before handing them to a cluster by our platform.

smira commented 1 year ago

we would rather say it's deprecated and not recommended, we try to hide it from our docs.

if you know all the pros and cons, it's fine to keep using init.

github-actions[bot] commented 2 months ago

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 7 days.

github-actions[bot] commented 2 months ago

This issue was closed because it has been stalled for 7 days with no activity.