mirror of https://github.com/dapr/cli.git
Rolling restart the sidecar injector during a restart
Signed-off-by: joshvanl <me@joshvanl.dev>
This commit is contained in:
parent
2903e50ebc
commit
9ca7c09402
|
|
@ -14,9 +14,11 @@ limitations under the License.
|
||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
|
@ -168,22 +170,43 @@ func logErrorAndExit(err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func restartControlPlaneService() error {
|
func restartControlPlaneService() error {
|
||||||
controlPlaneServices := []string{"deploy/dapr-sentry", "deploy/dapr-operator", "statefulsets/dapr-placement-server"}
|
controlPlaneServices := []string{
|
||||||
|
"deploy/dapr-sentry",
|
||||||
|
"deploy/dapr-sidecar-injector",
|
||||||
|
"deploy/dapr-operator",
|
||||||
|
"statefulsets/dapr-placement-server",
|
||||||
|
}
|
||||||
namespace, err := kubernetes.GetDaprNamespace()
|
namespace, err := kubernetes.GetDaprNamespace()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
print.FailureStatusEvent(os.Stdout, "Failed to fetch Dapr namespace")
|
print.FailureStatusEvent(os.Stdout, "Failed to fetch Dapr namespace")
|
||||||
}
|
}
|
||||||
for _, name := range controlPlaneServices {
|
|
||||||
|
errs := make([]error, len(controlPlaneServices))
|
||||||
|
var wg sync.WaitGroup
|
||||||
|
wg.Add(len(controlPlaneServices))
|
||||||
|
for i, name := range controlPlaneServices {
|
||||||
|
go func(i int, name string) {
|
||||||
|
defer wg.Done()
|
||||||
print.InfoStatusEvent(os.Stdout, fmt.Sprintf("Restarting %s..", name))
|
print.InfoStatusEvent(os.Stdout, fmt.Sprintf("Restarting %s..", name))
|
||||||
_, err := utils.RunCmdAndWait("kubectl", "rollout", "restart", name, "-n", namespace)
|
_, err := utils.RunCmdAndWait("kubectl", "rollout", "restart", "-n", namespace, name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error in restarting deployment %s. Error is %w", name, err)
|
errs[i] = fmt.Errorf("error in restarting deployment %s. Error is %w", name, err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
_, err = utils.RunCmdAndWait("kubectl", "rollout", "status", name, "-n", namespace)
|
_, err = utils.RunCmdAndWait("kubectl", "rollout", "status", "-n", namespace, name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error in checking status for deployment %s. Error is %w", name, err)
|
errs[i] = fmt.Errorf("error in checking status for deployment %s. Error is %w", name, err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
}(i, name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wg.Wait()
|
||||||
|
|
||||||
|
if err := errors.Join(errs...); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
print.SuccessStatusEvent(os.Stdout, "All control plane services have restarted successfully!")
|
print.SuccessStatusEvent(os.Stdout, "All control plane services have restarted successfully!")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue