Reconciler: Reconcile dodo Apps as well
Fix service-account assignment.
Change-Id: Ic66c46ae5b728e09ee9118f61e31ab860623bce0
diff --git a/core/installer/welcome/appmanager.go b/core/installer/welcome/appmanager.go
index 4fecf36..82421e9 100644
--- a/core/installer/welcome/appmanager.go
+++ b/core/installer/welcome/appmanager.go
@@ -25,7 +25,7 @@
port int
m *installer.AppManager
r installer.AppRepository
- reconciler tasks.Reconciler
+ reconciler *tasks.FixedReconciler
h installer.HelmReleaseMonitor
tasks map[string]tasks.Task
ta map[string]installer.EnvApp
@@ -64,7 +64,7 @@
port int,
m *installer.AppManager,
r installer.AppRepository,
- reconciler tasks.Reconciler,
+ reconciler *tasks.FixedReconciler,
h installer.HelmReleaseMonitor,
) (*AppManagerServer, error) {
tmpl, err := parseTemplatesAppManager(appTmpls)
@@ -239,10 +239,13 @@
appDir := fmt.Sprintf("/apps/%s", instanceId)
namespace := fmt.Sprintf("%s%s%s", env.NamespacePrefix, a.Namespace(), suffix)
t := tasks.NewInstallTask(s.h, func() (installer.ReleaseResources, error) {
- return s.m.Install(a, instanceId, appDir, namespace, values)
+ rr, err := s.m.Install(a, instanceId, appDir, namespace, values)
+ if err == nil {
+ ctx, _ := context.WithTimeout(context.Background(), 5*time.Second)
+ go s.reconciler.Reconcile(ctx)
+ }
+ return rr, err
})
- ctx, _ := context.WithTimeout(context.Background(), 2*time.Minute)
- go s.reconciler.Reconcile(ctx)
if _, ok := s.tasks[instanceId]; ok {
panic("MUST NOT REACH!")
}
diff --git a/core/installer/welcome/dodo_app.go b/core/installer/welcome/dodo_app.go
index fbf732b..a19fecf 100644
--- a/core/installer/welcome/dodo_app.go
+++ b/core/installer/welcome/dodo_app.go
@@ -21,6 +21,7 @@
"github.com/giolekva/pcloud/core/installer"
"github.com/giolekva/pcloud/core/installer/soft"
+ "github.com/giolekva/pcloud/core/installer/tasks"
"github.com/gorilla/mux"
"github.com/gorilla/securecookie"
@@ -106,6 +107,7 @@
appTmpls AppTmplStore
external bool
fetchUsersAddr string
+ reconciler tasks.Reconciler
logs map[string]string
}
@@ -133,6 +135,7 @@
env installer.EnvConfig,
external bool,
fetchUsersAddr string,
+ reconciler tasks.Reconciler,
) (*DodoAppServer, error) {
tmplts, err := parseTemplatesDodoApp(dodoAppTmplFS)
if err != nil {
@@ -169,6 +172,7 @@
appTmpls,
external,
fetchUsersAddr,
+ reconciler,
map[string]string{},
}
config, err := client.GetRepo(ConfigRepoName)
@@ -1004,6 +1008,8 @@
}
}()
}
+ ctx, _ := context.WithTimeout(context.Background(), 2*time.Minute)
+ go s.reconciler.Reconcile(ctx, s.namespace, "config")
return nil
}
@@ -1035,29 +1041,28 @@
} `json:"input"`
}
-func (s *DodoAppServer) updateDodoApp(appStatus installer.EnvApp, name, namespace string, networks []installer.Network) (installer.ReleaseResources, error) {
- fmt.Println("111")
+func (s *DodoAppServer) updateDodoApp(
+ appStatus installer.EnvApp,
+ name, namespace string,
+ networks []installer.Network,
+) (installer.ReleaseResources, error) {
repo, err := s.client.GetRepo(name)
if err != nil {
return installer.ReleaseResources{}, err
}
- fmt.Println("111")
hf := installer.NewGitHelmFetcher()
m, err := installer.NewAppManager(repo, s.nsc, s.jc, hf, "/.dodo")
if err != nil {
return installer.ReleaseResources{}, err
}
- fmt.Println("111")
appCfg, err := soft.ReadFile(repo, "app.cue")
if err != nil {
return installer.ReleaseResources{}, err
}
- fmt.Println("111")
app, err := installer.NewDodoApp(appCfg)
if err != nil {
return installer.ReleaseResources{}, err
}
- fmt.Println("111")
lg := installer.GitRepositoryLocalChartGenerator{"app", namespace}
var ret installer.ReleaseResources
if _, err := repo.Do(func(r soft.RepoFS) (string, error) {
@@ -1079,16 +1084,13 @@
installer.WithLocalChartGenerator(lg),
installer.WithNoLock(),
)
- fmt.Println("111")
if err != nil {
return "", err
}
- fmt.Println("111")
var rendered dodoAppRendered
if err := json.NewDecoder(bytes.NewReader(ret.RenderedRaw)).Decode(&rendered); err != nil {
return "", nil
}
- fmt.Println("111")
if _, err := m.Install(
appStatus,
"status",
@@ -1108,7 +1110,6 @@
); err != nil {
return "", err
}
- fmt.Println("111")
return "install app", nil
},
soft.WithCommitToBranch("dodo"),
@@ -1116,6 +1117,8 @@
); err != nil {
return installer.ReleaseResources{}, err
}
+ ctx, _ := context.WithTimeout(context.Background(), 2*time.Minute)
+ go s.reconciler.Reconcile(ctx, namespace, "app")
return ret, nil
}