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