Skip to content

Commit

Permalink
Restore sans manipulation that was removed in #772
Browse files Browse the repository at this point in the history
Signed-off-by: Kimmo Lehto <[email protected]>
  • Loading branch information
kke committed Nov 7, 2024
1 parent 81260d3 commit 90d8e96
Showing 1 changed file with 38 additions and 1 deletion.
39 changes: 38 additions & 1 deletion phase/configure_k0s.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"context"
"fmt"
gopath "path"
"slices"
"time"

"github.com/k0sproject/dig"
Expand Down Expand Up @@ -285,13 +286,49 @@ func (p *ConfigureK0s) configFor(h *cluster.Host) (string, error) {
cfg = p.newBaseConfig.Dup()
}

var addr string
var (
sans []string
addr string
)

if h.PrivateAddress != "" {
addr = h.PrivateAddress
} else {
addr = h.Address()
}

// convert sans from unmarshaled config into []string
oldsans := cfg.Dig("spec", "api", "sans")
switch oldsans := oldsans.(type) {
case []interface{}:
for _, v := range oldsans {
if s, ok := v.(string); ok {
sans = append(sans, s)
}
}
case []string:
sans = append(sans, oldsans...)
}

if !slices.Contains(sans, addr) {
sans = append(sans, addr)
log.Infof("%s: added %s to spec.api.sans", h, addr)
}

for i, c := range p.Config.Spec.Hosts.Controllers() {
if !slices.Contains(sans, c.Address()) {
sans = append(sans, c.Address())
log.Infof("%s: added controller %d address %s to spec.api.sans", h, i+1, c.Address())
}
if c.PrivateAddress != "" && !slices.Contains(sans, c.PrivateAddress) {
sans = append(sans, c.PrivateAddress)
log.Infof("%s: added controller %d private address %s to spec.api.sans", h, i+1, c.PrivateAddress)
}
}

log.Debugf("%s: using k0s spec.api.sans: %v", h, sans)
cfg.DigMapping("spec", "api")["sans"] = sans

if cfg.DigString("spec", "api", "address") == "" {
if onlyBindAddr, ok := cfg.Dig("spec", "api", "onlyBindToAddress").(bool); ok && onlyBindAddr {
cfg.DigMapping("spec", "api")["address"] = addr
Expand Down

0 comments on commit 90d8e96

Please sign in to comment.