Skip to content

Commit 56d9453

Browse files
committed
fix: panic in talosctl cluster show
This might happen with docker provisioner if the network is not found. Fixes #6793 Signed-off-by: Andrey Smirnov <[email protected]>
1 parent 38a5119 commit 56d9453

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

pkg/provision/providers/docker/reflect.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/siderolabs/talos/pkg/provision"
1515
)
1616

17+
//nolint:gocyclo
1718
func (p *provisioner) Reflect(ctx context.Context, clusterName, stateDirectory string) (provision.Cluster, error) {
1819
res := &result{
1920
clusterInfo: provision.ClusterInfo{
@@ -67,9 +68,15 @@ func (p *provisioner) Reflect(ctx context.Context, clusterName, stateDirectory s
6768
return nil, err
6869
}
6970

70-
addr, err := netip.ParseAddr(node.NetworkSettings.Networks[res.clusterInfo.Network.Name].IPAddress)
71-
if err != nil {
72-
return nil, err
71+
var ips []netip.Addr
72+
73+
if network, ok := node.NetworkSettings.Networks[res.clusterInfo.Network.Name]; ok {
74+
addr, err := netip.ParseAddr(network.IPAddress)
75+
if err != nil {
76+
return nil, err
77+
}
78+
79+
ips = append(ips, addr)
7380
}
7481

7582
res.clusterInfo.Nodes = append(res.clusterInfo.Nodes,
@@ -78,7 +85,7 @@ func (p *provisioner) Reflect(ctx context.Context, clusterName, stateDirectory s
7885
Name: strings.TrimLeft(node.Names[0], "/"),
7986
Type: t,
8087

81-
IPs: []netip.Addr{addr},
88+
IPs: ips,
8289
})
8390
}
8491

0 commit comments

Comments
 (0)