Installer: Separate infrastructure and environment apps.
Have two separate application managers, one for installing apps on the
dodo infra, and nother installing on individual environments.
Change-Id: I1b24f008e30c5533c48c22ea92328bc4bb7abc54
diff --git a/core/installer/cmd/app_manager.go b/core/installer/cmd/app_manager.go
index 621ad87..b6c083c 100644
--- a/core/installer/cmd/app_manager.go
+++ b/core/installer/cmd/app_manager.go
@@ -84,7 +84,7 @@
if err != nil {
return err
}
- config, err := m.Config()
+ env, err := m.Config()
if err != nil {
return err
}
@@ -110,7 +110,7 @@
r,
tasks.NewFluxcdReconciler( // TODO(gio): make reconciler address a flag
"http://fluxcd-reconciler.dodo-fluxcd-reconciler.svc.cluster.local",
- config.Values.Id,
+ env.Id,
),
)
return s.Start()
diff --git a/core/installer/cmd/bootstrap.go b/core/installer/cmd/bootstrap.go
index e6385b5..dc85470 100644
--- a/core/installer/cmd/bootstrap.go
+++ b/core/installer/cmd/bootstrap.go
@@ -3,8 +3,10 @@
import (
_ "embed"
"fmt"
+ "net"
"net/netip"
"os"
+ "strings"
"github.com/spf13/cobra"
@@ -34,7 +36,7 @@
"",
)
cmd.Flags().StringVar(
- &bootstrapFlags.envName,
+ &bootstrapFlags.publicIP,
"public-ip",
"",
"",
@@ -93,9 +95,10 @@
if err != nil {
return err
}
- envConfig := installer.EnvConfig{
- Name: bootstrapFlags.envName,
- PublicIP: bootstrapFlags.publicIP,
+ publicIPs, err := parseIPs(bootstrapFlags.publicIP)
+ envConfig := installer.BootstrapConfig{
+ InfraName: bootstrapFlags.envName,
+ PublicIP: publicIPs,
NamespacePrefix: fmt.Sprintf("%s-", bootstrapFlags.envName),
StorageDir: bootstrapFlags.storageDir,
VolumeDefaultReplicaCount: bootstrapFlags.volumeDefaultReplicaCount,
@@ -130,3 +133,15 @@
To: t,
}, nil
}
+
+func parseIPs(ip string) ([]net.IP, error) {
+ ret := make([]net.IP, 0)
+ for _, i := range strings.Split(ip, ",") {
+ ip := net.ParseIP(i)
+ if ip == nil {
+ return nil, fmt.Errorf("invalid ip: %s", i)
+ }
+ ret = append(ret, ip)
+ }
+ return ret, nil
+}