installer: use main config when creating new env
diff --git a/core/installer/welcome/env.go b/core/installer/welcome/env.go
index 4eea2c7..e08c073 100644
--- a/core/installer/welcome/env.go
+++ b/core/installer/welcome/env.go
@@ -98,24 +98,29 @@
}
{
repo, err := s.ss.GetRepo(req.Name)
- if repo == nil {
+ if err != nil {
return err
}
- if err := initNewEnv(s.ss, installer.NewRepoIO(repo, s.ss.Signer), s.nsCreator, req); err != nil {
+ var env installer.EnvConfig
+ r, err := s.repo.Reader("config.yaml")
+ if err != nil {
+ return err
+ }
+ defer r.Close()
+ if err := installer.ReadYaml(r, &env); err != nil {
+ return err
+ }
+ if err := initNewEnv(s.ss, installer.NewRepoIO(repo, s.ss.Signer), s.nsCreator, req, env); err != nil {
return err
}
}
{
- repo, err := s.ss.GetRepo("pcloud")
- if err != nil {
- return err
- }
ssPubKey, err := s.ss.GetPublicKey()
if err != nil {
return err
}
if err := addNewEnv(
- installer.NewRepoIO(repo, s.ss.Signer),
+ s.repo,
req,
keys,
ssPubKey,
@@ -126,22 +131,27 @@
return c.String(http.StatusOK, "OK")
}
-func initNewEnv(ss *soft.Client, r installer.RepoIO, nsCreator installer.NamespaceCreator, req createEnvReq) error {
+func initNewEnv(
+ ss *soft.Client,
+ r installer.RepoIO,
+ nsCreator installer.NamespaceCreator,
+ req createEnvReq,
+ env installer.EnvConfig,
+) error {
appManager, err := installer.NewAppManager(r, nsCreator)
if err != nil {
return err
}
appsRepo := installer.NewInMemoryAppRepository(installer.CreateAllApps())
- // TODO(giolekva): env name and ip should come from pcloud repo config.yaml
// TODO(giolekva): private domain can be configurable as well
config := installer.Config{
Values: installer.Values{
- PCloudEnvName: "pcloud",
+ PCloudEnvName: env.Name,
Id: req.Name,
ContactEmail: req.ContactEmail,
Domain: req.Domain,
PrivateDomain: fmt.Sprintf("p.%s", req.Domain),
- PublicIP: "46.49.35.44",
+ PublicIP: env.PublicIP,
NamespacePrefix: fmt.Sprintf("%s-", req.Name),
},
}