Skip to content

Commit

Permalink
Use kube API URL in token to validate controller connectivity
Browse files Browse the repository at this point in the history
Signed-off-by: Kimmo Lehto <[email protected]>
  • Loading branch information
kke committed Nov 25, 2024
1 parent 863e79d commit 6a5d5c7
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 7 deletions.
13 changes: 7 additions & 6 deletions phase/install_controllers.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,10 @@ func (p *InstallControllers) CleanUp() {

func (p *InstallControllers) After() error {
for i, h := range p.hosts {
h.Metadata.K0sJoinToken = ""
if h.Metadata.K0sJoinTokenID == "" {
continue
}
h.Metadata.K0sJoinToken = ""
err := p.Wet(p.leader, fmt.Sprintf("invalidate k0s join token for controller %s", h), func() error {
log.Debugf("%s: invalidating join token for controller %d", p.leader, i+1)
return p.leader.Exec(p.leader.Configurer.K0sCmdf("token invalidate --data-dir=%s %s", p.leader.K0sDataDir(), h.Metadata.K0sJoinTokenID), exec.Sudo(p.leader))
Expand All @@ -88,10 +88,9 @@ func (p *InstallControllers) After() error {

// Run the phase
func (p *InstallControllers) Run() error {
url := p.Config.Spec.InternalKubeAPIURL()
healthz := fmt.Sprintf("%s/healthz", url)

err := p.parallelDo(p.hosts, func(h *cluster.Host) error {
url := h.Metadata.K0sJoinTokenURL
healthz := fmt.Sprintf("%s/healthz", url)
if p.IsWet() || !p.leader.Metadata.DryRunFakeLeader {
log.Infof("%s: validating api connection to %s", h, url)
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
Expand Down Expand Up @@ -123,15 +122,17 @@ func (p *InstallControllers) Run() error {
return err
}
h.Metadata.K0sJoinToken = token
tokenID, err = cluster.TokenID(token)
tokenData, err := cluster.ParseToken(token)
if err != nil {
return err
}
log.Debugf("%s: join token ID: %s", p.leader, tokenID)
h.Metadata.K0sJoinTokenID = tokenID
h.Metadata.K0sJoinTokenID = tokenData.ID
h.Metadata.K0sJoinTokenURL = tokenData.URL
} else {
p.DryMsgf(p.leader, "generate a k0s join token for controller %s", h)
h.Metadata.K0sJoinTokenID = "dry-run"
h.Metadata.K0sJoinTokenURL = p.Config.Spec.KubeAPIURL()
}

log.Infof("%s: writing join token", h)
Expand Down
2 changes: 1 addition & 1 deletion phase/install_workers.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ func (p *InstallWorkers) After() error {
return nil
}
for i, h := range p.hosts {
h.Metadata.K0sJoinToken = ""
if h.Metadata.K0sJoinTokenID == "" {
continue
}
Expand All @@ -84,7 +85,6 @@ func (p *InstallWorkers) After() error {
if err != nil {
log.Warnf("%s: failed to invalidate worker join token: %v", p.leader, err)
}
h.Metadata.K0sJoinTokenID = ""
_ = p.Wet(h, "overwrite k0s join token file", func() error {
if err := h.Configurer.WriteFile(h, h.K0sJoinTokenPath(), "# overwritten by k0sctl after join\n", "0600"); err != nil {
log.Warnf("%s: failed to overwrite the join token file at %s", h, h.K0sJoinTokenPath())
Expand Down

0 comments on commit 6a5d5c7

Please sign in to comment.