fix: default proxmox ssh address from api url
This commit is contained in:
parent
fe0335442d
commit
ea732ebded
|
|
@ -115,6 +115,11 @@ func renderTerraformTFVars(cfg config.Config) string {
|
||||||
builder.WriteString(fmt.Sprintf(" %q = %q\n", node, iface))
|
builder.WriteString(fmt.Sprintf(" %q = %q\n", node, iface))
|
||||||
}
|
}
|
||||||
builder.WriteString("}\n")
|
builder.WriteString("}\n")
|
||||||
|
builder.WriteString("node_addresses = {\n")
|
||||||
|
for node, addr := range cfg.Talos.Proxmox.NodeAddresses {
|
||||||
|
builder.WriteString(fmt.Sprintf(" %q = %q\n", node, addr))
|
||||||
|
}
|
||||||
|
builder.WriteString("}\n")
|
||||||
builder.WriteString(fmt.Sprintf("create_vlan_interface = %t\n", cfg.Talos.Cluster.CreateVLANInterface))
|
builder.WriteString(fmt.Sprintf("create_vlan_interface = %t\n", cfg.Talos.Cluster.CreateVLANInterface))
|
||||||
builder.WriteString("image_cache_proxy = { enabled = false, ip = \"\", port = 3128 }\n")
|
builder.WriteString("image_cache_proxy = { enabled = false, ip = \"\", port = 3128 }\n")
|
||||||
builder.WriteString("nodes = [\n")
|
builder.WriteString("nodes = [\n")
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package config
|
package config
|
||||||
|
|
||||||
|
import "net/url"
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
WorkspaceDir string `yaml:"workspaceDir"`
|
WorkspaceDir string `yaml:"workspaceDir"`
|
||||||
Git GitConfig `yaml:"git"`
|
Git GitConfig `yaml:"git"`
|
||||||
|
|
@ -55,6 +57,7 @@ type TalosProxmoxConfig struct {
|
||||||
DefaultNode string `yaml:"defaultNode"`
|
DefaultNode string `yaml:"defaultNode"`
|
||||||
Pool string `yaml:"pool"`
|
Pool string `yaml:"pool"`
|
||||||
NodeInterfaces map[string]string `yaml:"nodeInterfaces"`
|
NodeInterfaces map[string]string `yaml:"nodeInterfaces"`
|
||||||
|
NodeAddresses map[string]string `yaml:"nodeAddresses"`
|
||||||
Insecure bool `yaml:"insecure"`
|
Insecure bool `yaml:"insecure"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -96,3 +99,11 @@ type TalosNetwork struct {
|
||||||
Gateway string `yaml:"gateway,omitempty"`
|
Gateway string `yaml:"gateway,omitempty"`
|
||||||
VLANID int `yaml:"vlanId"`
|
VLANID int `yaml:"vlanId"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c TalosProxmoxConfig) APIURLHost() string {
|
||||||
|
parsed, err := url.Parse(c.APIURL)
|
||||||
|
if err != nil || parsed.Hostname() == "" {
|
||||||
|
return "192.168.0.15"
|
||||||
|
}
|
||||||
|
return parsed.Hostname()
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -55,9 +55,11 @@ func RunBootstrapWizard(initial config.Config) (config.Config, error) {
|
||||||
printNodes(discovered)
|
printNodes(discovered)
|
||||||
cfg.Talos.Proxmox.DefaultNode = prompt(reader, "Default Proxmox node", fallback(cfg.Talos.Proxmox.DefaultNode, discovered[0].Name))
|
cfg.Talos.Proxmox.DefaultNode = prompt(reader, "Default Proxmox node", fallback(cfg.Talos.Proxmox.DefaultNode, discovered[0].Name))
|
||||||
cfg.Talos.Proxmox.NodeInterfaces = map[string]string{}
|
cfg.Talos.Proxmox.NodeInterfaces = map[string]string{}
|
||||||
|
cfg.Talos.Proxmox.NodeAddresses = map[string]string{}
|
||||||
for _, node := range discovered {
|
for _, node := range discovered {
|
||||||
fallbackIface := first(node.Networks, "vmbr0")
|
fallbackIface := first(node.Networks, "vmbr0")
|
||||||
cfg.Talos.Proxmox.NodeInterfaces[node.Name] = prompt(reader, fmt.Sprintf("Primary interface for %s", node.Name), fallbackIface)
|
cfg.Talos.Proxmox.NodeInterfaces[node.Name] = prompt(reader, fmt.Sprintf("Primary interface for %s", node.Name), fallbackIface)
|
||||||
|
cfg.Talos.Proxmox.NodeAddresses[node.Name] = prompt(reader, fmt.Sprintf("SSH/API hostname or IP for %s", node.Name), fallback(cfg.Talos.Proxmox.NodeAddresses[node.Name], cfg.Talos.Proxmox.APIURLHost()))
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg.Talos.Cluster.Name = prompt(reader, "Talos cluster name", fallback(cfg.Talos.Cluster.Name, "proxmox-talos-dev02-cluster"))
|
cfg.Talos.Cluster.Name = prompt(reader, "Talos cluster name", fallback(cfg.Talos.Cluster.Name, "proxmox-talos-dev02-cluster"))
|
||||||
|
|
@ -67,7 +69,7 @@ func RunBootstrapWizard(initial config.Config) (config.Config, error) {
|
||||||
cfg.Talos.Cluster.DNSServers = promptList(reader, "DNS servers", fallbackList(cfg.Talos.Cluster.DNSServers, []string{"192.168.0.222", "1.1.1.1"}))
|
cfg.Talos.Cluster.DNSServers = promptList(reader, "DNS servers", fallbackList(cfg.Talos.Cluster.DNSServers, []string{"192.168.0.222", "1.1.1.1"}))
|
||||||
cfg.Talos.Cluster.DiskStorage = prompt(reader, "Primary disk storage", fallback(cfg.Talos.Cluster.DiskStorage, firstStorageByCapability(discovered, storageSupportsDisk, "local-lvm")))
|
cfg.Talos.Cluster.DiskStorage = prompt(reader, "Primary disk storage", fallback(cfg.Talos.Cluster.DiskStorage, firstStorageByCapability(discovered, storageSupportsDisk, "local-lvm")))
|
||||||
cfg.Talos.Cluster.AdditionalStorage = prompt(reader, "Additional disk storage", fallback(cfg.Talos.Cluster.AdditionalStorage, cfg.Talos.Cluster.DiskStorage))
|
cfg.Talos.Cluster.AdditionalStorage = prompt(reader, "Additional disk storage", fallback(cfg.Talos.Cluster.AdditionalStorage, cfg.Talos.Cluster.DiskStorage))
|
||||||
cfg.Talos.Cluster.CreateVLANInterface = promptBool(reader, "Create VLAN interfaces", cfg.Talos.Cluster.CreateVLANInterface || !hasInitial(initial))
|
cfg.Talos.Cluster.CreateVLANInterface = promptBool(reader, "Create VLAN interfaces", true)
|
||||||
|
|
||||||
latestTalos := talos.LatestVersion()
|
latestTalos := talos.LatestVersion()
|
||||||
cfg.Talos.Image.TalosVersion = talos.NormalizeVersion(prompt(reader, "Talos version", fallback(cfg.Talos.Image.TalosVersion, latestTalos)))
|
cfg.Talos.Image.TalosVersion = talos.NormalizeVersion(prompt(reader, "Talos version", fallback(cfg.Talos.Image.TalosVersion, latestTalos)))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue