1
0
mirror of https://github.com/rancher/rke.git synced 2025-08-01 23:33:39 +00:00

Run state save in a worker pool

This commit is contained in:
moelsayed 2018-10-19 20:56:45 +02:00 committed by Alena Prokharchyk
parent 90c426d73e
commit b7d98733cf

View File

@ -11,6 +11,7 @@ import (
"github.com/rancher/rke/k8s"
"github.com/rancher/rke/log"
"github.com/rancher/rke/pki"
"github.com/rancher/rke/util"
"github.com/rancher/types/apis/management.cattle.io/v3"
"github.com/sirupsen/logrus"
"golang.org/x/sync/errgroup"
@ -156,10 +157,18 @@ func saveStateToNodes(ctx context.Context, uniqueHosts []*hosts.Host, clusterSta
return err
}
var errgrp errgroup.Group
for _, host := range uniqueHosts {
runHost := host
hostsQueue := util.GetObjectQueue(uniqueHosts)
for w := 0; w < WorkerThreads; w++ {
errgrp.Go(func() error {
return pki.DeployStateOnPlaneHost(ctx, runHost, alpineImage, prsMap, string(clusterFile))
var errList []error
for host := range hostsQueue {
err := pki.DeployStateOnPlaneHost(ctx, host.(*hosts.Host), alpineImage, prsMap, string(clusterFile))
if err != nil {
errList = append(errList, err)
}
}
return util.ErrList(errList)
})
}
if err := errgrp.Wait(); err != nil {