blob: 53e5e74073bf985755170da8cab81daf55ca8726 [file] [log] [blame]
gio778577f2024-04-29 09:44:38 +04001package tasks
2
3import (
4 "fmt"
5 "time"
6
7 "github.com/giolekva/pcloud/core/installer"
8)
9
10func NewMonitorRelease(mon installer.HelmReleaseMonitor, rr installer.ReleaseResources) Task {
11 var t []Task
12 for _, h := range rr.Helm {
13 t = append(t, newMonitorHelm(mon, h))
14 }
15 return newConcurrentParentTask("Monitor", true, t...)
16}
17
18func newMonitorHelm(mon installer.HelmReleaseMonitor, h installer.Resource) Task {
19 t := newLeafTask(fmt.Sprintf("%s/%s", h.Namespace, h.Name), func() error {
20 for {
21 if ok, err := mon.IsReleased(h.Namespace, h.Name); err == nil && ok {
22 break
23 }
24 time.Sleep(5 * time.Second)
25 }
26 return nil
27 })
28 return &t
29}