Installer: Clean up RepoIO interface

Change-Id: If80d7be1460c725b7df9d1d27c9354cb9141acfe
diff --git a/core/installer/cmd/app_manager.go b/core/installer/cmd/app_manager.go
index 47210fc..621ad87 100644
--- a/core/installer/cmd/app_manager.go
+++ b/core/installer/cmd/app_manager.go
@@ -72,12 +72,10 @@
 		return err
 	}
 	log.Println("Cloned repository")
-	repoIO := installer.NewRepoIO(repo, signer)
-	config, err := repoIO.ReadConfig()
+	repoIO, err := installer.NewRepoIO(repo, signer)
 	if err != nil {
 		return err
 	}
-	log.Println("Read config")
 	kube, err := newNSCreator()
 	if err != nil {
 		return err
@@ -86,6 +84,11 @@
 	if err != nil {
 		return err
 	}
+	config, err := m.Config()
+	if err != nil {
+		return err
+	}
+	log.Println("Read config")
 	log.Println("Creating repository")
 	var r installer.AppRepository
 	if appManagerFlags.appRepoAddr != "" {
diff --git a/core/installer/cmd/bootstrap.go b/core/installer/cmd/bootstrap.go
index 9b68529..e6385b5 100644
--- a/core/installer/cmd/bootstrap.go
+++ b/core/installer/cmd/bootstrap.go
@@ -106,6 +106,7 @@
 		installer.NewFSChartLoader(bootstrapFlags.chartsDir),
 		nsCreator,
 		installer.NewActionConfigFactory(rootFlags.kubeConfig),
+		installer.NewInMemoryAppRepository(installer.CreateAllApps()),
 	)
 	return b.Run(envConfig)
 }
diff --git a/core/installer/cmd/env_manager.go b/core/installer/cmd/env_manager.go
index 196110f..0142bee 100644
--- a/core/installer/cmd/env_manager.go
+++ b/core/installer/cmd/env_manager.go
@@ -64,7 +64,10 @@
 		return err
 	}
 	log.Printf("Cloned repo: %s\n", envManagerFlags.repoName)
-	repoIO := installer.NewRepoIO(repo, sshKey.Signer())
+	repoIO, err := installer.NewRepoIO(repo, sshKey.Signer())
+	if err != nil {
+		return err
+	}
 	nsCreator, err := newNSCreator()
 	if err != nil {
 		return err
diff --git a/core/installer/cmd/welcome.go b/core/installer/cmd/welcome.go
index 43578b2..4390fcf 100644
--- a/core/installer/cmd/welcome.go
+++ b/core/installer/cmd/welcome.go
@@ -80,13 +80,17 @@
 	if err != nil {
 		return err
 	}
+	repoIO, err := installer.NewRepoIO(repo, signer)
+	if err != nil {
+		return err
+	}
 	nsCreator, err := newNSCreator()
 	if err != nil {
 		return err
 	}
 	s := welcome.NewServer(
 		welcomeFlags.port,
-		installer.NewRepoIO(repo, signer),
+		repoIO,
 		nsCreator,
 		welcomeFlags.createAccountAddr,
 		welcomeFlags.loginAddr,