Env: configure urls and help documents
Change-Id: I9522e074575e0c1e67735462ac4cc266ab1ebb8c
diff --git a/core/installer/tasks/infra.go b/core/installer/tasks/infra.go
index 91d0fd9..e71de44 100644
--- a/core/installer/tasks/infra.go
+++ b/core/installer/tasks/infra.go
@@ -277,6 +277,42 @@
)
}
+func SetupLauncher(env installer.EnvConfig, st *state) Task {
+ t := newLeafTask("Setup", func() error {
+ user := fmt.Sprintf("%s-launcher", env.Id)
+ keys, err := installer.NewSSHKeyPair(user)
+ if err != nil {
+ return err
+ }
+ if err := st.ssClient.AddUser(user, keys.AuthorizedKey()); err != nil {
+ return err
+ }
+ if err := st.ssClient.AddReadWriteCollaborator("config", user); err != nil {
+ return err
+ }
+ app, err := installer.FindEnvApp(st.appsRepo, "launcher")
+ if err != nil {
+ return err
+ }
+ instanceId := app.Slug()
+ appDir := fmt.Sprintf("/apps/%s", instanceId)
+ namespace := fmt.Sprintf("%s%s", env.NamespacePrefix, app.Namespace())
+ if _, err := st.appManager.Install(app, instanceId, appDir, namespace, map[string]any{
+ "repoAddr": st.ssClient.GetRepoAddress("config"),
+ "sshPrivateKey": string(keys.RawPrivateKey()),
+ }); err != nil {
+ return err
+ }
+ return nil
+ })
+ return newSequentialParentTask(
+ "Launcher",
+ false,
+ &t,
+ waitForAddr(st.httpClient, fmt.Sprintf("https://launcher.%s", env.Domain)),
+ )
+}
+
func SetupHeadscale(env installer.EnvConfig, st *state) Task {
t := newLeafTask("Setup", func() error {
app, err := installer.FindEnvApp(st.appsRepo, "headscale")
@@ -370,37 +406,6 @@
return &t
}
-func SetupLauncher(env installer.EnvConfig, st *state) Task {
- t := newLeafTask("Application Launcher", func() error {
- user := fmt.Sprintf("%s-launcher", env.Id)
- keys, err := installer.NewSSHKeyPair(user)
- if err != nil {
- return err
- }
- if err := st.ssClient.AddUser(user, keys.AuthorizedKey()); err != nil {
- return err
- }
- if err := st.ssClient.AddReadWriteCollaborator("config", user); err != nil { //TODO(gio): add read only
- return err
- }
- app, err := installer.FindEnvApp(st.appsRepo, "launcher") // TODO(giolekva): configure
- if err != nil {
- return err
- }
- instanceId := app.Name()
- appDir := fmt.Sprintf("/apps/%s", instanceId)
- namespace := fmt.Sprintf("%s%s", env.NamespacePrefix, app.Namespace())
- if _, err := st.appManager.Install(app, instanceId, appDir, namespace, map[string]any{
- "repoAddr": st.ssClient.GetRepoAddress("config"),
- "sshPrivateKey": string(keys.RawPrivateKey()),
- }); err != nil {
- return err
- }
- return nil
- })
- return &t
-}
-
// TODO(gio-dns): remove
type DNSSecKey struct {
Basename string `json:"basename,omitempty"`