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!")
 	}