installer-env: wait for services to be reachable
diff --git a/core/installer/tasks/init.go b/core/installer/tasks/init.go
index 2457c4d..f3818e3 100644
--- a/core/installer/tasks/init.go
+++ b/core/installer/tasks/init.go
@@ -9,6 +9,15 @@
"github.com/giolekva/pcloud/core/installer/soft"
)
+func SetupConfigRepoTask(env Env, st *state) Task {
+ return newSequentialParentTask(
+ "Configuration repository",
+ NewCreateConfigRepoTask(env, st),
+ CreateGitClientTask(env, st),
+ NewInitConfigRepoTask(env, st),
+ )
+}
+
func NewCreateConfigRepoTask(env Env, st *state) Task {
t := newLeafTask("Install Git server", func() error {
appsRepo := installer.NewInMemoryAppRepository(installer.CreateAllApps())
@@ -20,6 +29,7 @@
if err != nil {
return err
}
+ st.ssAdminKeys = ssAdminKeys
ssKeys, err := installer.NewSSHKeyPair(fmt.Sprintf("%s-config-repo-keys", env.Name))
if err != nil {
return err
@@ -50,9 +60,16 @@
if err := st.repo.InstallApp(*ssApp, filepath.Join("/environments", env.Name, "config-repo"), ssValues, derived); err != nil {
return err
}
+ return nil
+ })
+ return &t
+}
+
+func CreateGitClientTask(env Env, st *state) Task {
+ t := newLeafTask("Wait git server to come up", func() error {
ssClient, err := soft.WaitForClient(
fmt.Sprintf("soft-serve.%s.svc.cluster.local:%d", env.Name, 22),
- ssAdminKeys.RawPrivateKey(),
+ st.ssAdminKeys.RawPrivateKey(),
log.Default())
if err != nil {
return err