fix: mutex on ensureToolsNode to avoid duplicate container name causing error (#952)

pull/955/head
Thorsten Klein 3 years ago committed by GitHub
parent 9d00a6468f
commit 33bcd4d80a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      pkg/client/tools.go

@ -382,7 +382,13 @@ func runToolsNode(ctx context.Context, runtime runtimes.Runtime, cluster *k3d.Cl
return node, nil
}
var EnsureToolsNodeMutex sync.Mutex
func EnsureToolsNode(ctx context.Context, runtime runtimes.Runtime, cluster *k3d.Cluster) (*k3d.Node, error) {
// Mutex to prevent simultaneous creation of two tools-nodes, e.g. due to slow network connection cause the image pulling to take too long
// FIXME: could be prevented completely by having a smarter image pre-pulling mechanism
EnsureToolsNodeMutex.Lock()
defer EnsureToolsNodeMutex.Unlock()
var toolsNode *k3d.Node
toolsNode, err := runtime.GetNode(ctx, &k3d.Node{Name: fmt.Sprintf("%s-%s-tools", k3d.DefaultObjectNamePrefix, cluster.Name)})

Loading…
Cancel
Save