charts: replace use of metallb-config-env with metallb-ipaddresspool
diff --git a/charts/metallb-config-env/.helmignore b/charts/metallb-config-env/.helmignore
deleted file mode 100644
index 0e8a0eb..0000000
--- a/charts/metallb-config-env/.helmignore
+++ /dev/null
@@ -1,23 +0,0 @@
-# Patterns to ignore when building packages.
-# This supports shell glob matching, relative path matching, and
-# negation (prefixed with !). Only one pattern per line.
-.DS_Store
-# Common VCS dirs
-.git/
-.gitignore
-.bzr/
-.bzrignore
-.hg/
-.hgignore
-.svn/
-# Common backup files
-*.swp
-*.bak
-*.tmp
-*.orig
-*~
-# Various IDEs
-.project
-.idea/
-*.tmproj
-.vscode/
diff --git a/charts/metallb-config-env/Chart.yaml b/charts/metallb-config-env/Chart.yaml
deleted file mode 100644
index b2daa62..0000000
--- a/charts/metallb-config-env/Chart.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-apiVersion: v2
-name: metallb-config-env
-description: A Helm chart to configure Metallb for one of the user PCloud environments
-type: application
-version: 0.0.1
-appVersion: "0.0.1"
diff --git a/charts/metallb-config-env/templates/ip-address-pool.yaml b/charts/metallb-config-env/templates/ip-address-pool.yaml
deleted file mode 100644
index 20639fb..0000000
--- a/charts/metallb-config-env/templates/ip-address-pool.yaml
+++ /dev/null
@@ -1,47 +0,0 @@
-apiVersion: metallb.io/v1beta1
-kind: IPAddressPool
-metadata:
-  name: {{ .Values.id }}
-  namespace: metallb-system
-spec:
-  addresses:
-  - {{ .Values.rest.from }}-{{ .Values.rest.to }}
----
-apiVersion: metallb.io/v1beta1
-kind: IPAddressPool
-metadata:
-  name: {{ .Values.id }}-ingress-private
-  namespace: metallb-system
-spec:
-  addresses:
-  - {{ .Values.ingressPrivate }}-{{ .Values.ingressPrivate }}
----
-apiVersion: metallb.io/v1beta1
-kind: IPAddressPool
-metadata:
-  name: {{ .Values.id }}-headscale
-  namespace: metallb-system
-spec:
-  addresses:
-  - {{ .Values.headscale }}-{{ .Values.headscale }}
----
-apiVersion: metallb.io/v1beta1
-kind: IPAddressPool
-metadata:
-  name: {{ .Values.id }}-soft-serve
-  namespace: metallb-system
-spec:
-  addresses:
-  - {{ .Values.softServe }}-{{ .Values.softServe }}
----
-apiVersion: metallb.io/v1beta1
-kind: L2Advertisement
-metadata:
-  name: l2-advertisement-{{ .Values.id }}
-  namespace: metallb-system
-spec:
-  ipAddressPools:
-  - {{ .Values.id }}
-  - {{ .Values.id }}-ingress-private
-  - {{ .Values.id }}-headscale
-  - {{ .Values.id }}-soft-serve
diff --git a/charts/metallb-config-env/values.yaml b/charts/metallb-config-env/values.yaml
deleted file mode 100644
index 30054d6..0000000
--- a/charts/metallb-config-env/values.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-id: example
-ingressPrivate: 10.1.0.1
-headscale: 10.1.0.2
-softServe: 10.1.0.3
-rest:
-  from: 10.1.0.10
-  to: 10.1.0.255
diff --git a/core/installer/app.go b/core/installer/app.go
index 774bea8..902e686 100644
--- a/core/installer/app.go
+++ b/core/installer/app.go
@@ -89,7 +89,6 @@
 		CreateAppCoreAuth(valuesTmpls, tmpls),
 		CreateAppHeadscale(valuesTmpls, tmpls),
 		CreateAppTailscaleProxy(valuesTmpls, tmpls),
-		CreateMetallbConfigEnv(valuesTmpls, tmpls),
 		CreateMetallbIPAddressPool(valuesTmpls, tmpls),
 		CreateEnvManager(valuesTmpls, tmpls),
 		CreateWelcome(valuesTmpls, tmpls),
@@ -385,22 +384,6 @@
 	}
 }
 
-func CreateMetallbConfigEnv(fs embed.FS, tmpls *template.Template) App {
-	schema, err := fs.ReadFile("values-tmpl/metallb-config-env.jsonschema")
-	if err != nil {
-		panic(err)
-	}
-	return App{
-		"metallb-config-env",
-		[]string{"metallb-config"},
-		[]*template.Template{
-			tmpls.Lookup("metallb-config-env.yaml"),
-		},
-		string(schema),
-		tmpls.Lookup("metallb-config-env.md"),
-	}
-}
-
 func CreateMetallbIPAddressPool(fs embed.FS, tmpls *template.Template) App {
 	schema, err := fs.ReadFile("values-tmpl/metallb-ipaddresspool.jsonschema")
 	if err != nil {
diff --git a/core/installer/values-tmpl/metallb-config-env.jsonschema b/core/installer/values-tmpl/metallb-config-env.jsonschema
deleted file mode 100644
index 6eca710..0000000
--- a/core/installer/values-tmpl/metallb-config-env.jsonschema
+++ /dev/null
@@ -1,17 +0,0 @@
-{
-  "type": "object",
-  "properties": {
-    "IngressPrivate": { "type": "string" },
-    "Headscale": { "type": "string" },
-    "SoftServe": { "type": "string" },
-    "Rest": {
-      "type": "object",
-      "properties": {
-        "From": { "type": "string" },
-        "To": { "type": "string" }
-      },
-      "additionalProperties": false
-    }
-  },
-  "additionalProperties": false
-}
diff --git a/core/installer/values-tmpl/metallb-config-env.md b/core/installer/values-tmpl/metallb-config-env.md
deleted file mode 100644
index 257cc56..0000000
--- a/core/installer/values-tmpl/metallb-config-env.md
+++ /dev/null
@@ -1 +0,0 @@
-foo
diff --git a/core/installer/values-tmpl/metallb-config-env.yaml b/core/installer/values-tmpl/metallb-config-env.yaml
deleted file mode 100644
index defa5ec..0000000
--- a/core/installer/values-tmpl/metallb-config-env.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-apiVersion: helm.toolkit.fluxcd.io/v2beta1
-kind: HelmRelease
-metadata:
-  name: metallb-config-env
-  namespace: {{ .Release.Namespace }}
-spec:
-  chart:
-    spec:
-      chart: charts/metallb-config-env
-      sourceRef:
-        kind: GitRepository
-        name: pcloud
-        namespace: {{ .Global.Id }}
-  interval: 1m0s
-  values:
-    id: {{ .Global.Id }}
-    ingressPrivate: {{ .Values.IngressPrivate }}
-    headscale: {{ .Values.Headscale }}
-    softServe: {{ .Values.SoftServe }}
-    rest:
-      from: {{ .Values.Rest.From }}
-      to: {{ .Values.Rest.To }}
diff --git a/core/installer/welcome/env.go b/core/installer/welcome/env.go
index 6fc03dc..4eea2c7 100644
--- a/core/installer/welcome/env.go
+++ b/core/installer/welcome/env.go
@@ -183,18 +183,39 @@
 	nsGen := installer.NewPrefixGenerator(req.Name + "-")
 	suffixGen := installer.NewEmptySuffixGenerator()
 	{
-		app, err := appsRepo.Find("metallb-config-env")
+		app, err := appsRepo.Find("metallb-ipaddresspool")
 		if err != nil {
 			return err
 		}
 		if err := appManager.Install(*app, nsGen, suffixGen, map[string]any{
-			"IngressPrivate": "10.1.0.1",
-			"Headscale":      "10.1.0.2",
-			"SoftServe":      "10.1.0.3",
-			"Rest": map[string]any{
-				"From": "10.1.0.100",
-				"To":   "10.1.0.255",
-			},
+			"Name":       fmt.Sprintf("%s-ingress-private", req.Name),
+			"From":       "10.1.0.1",
+			"To":         "10.1.0.1",
+			"AutoAssign": false,
+		}); err != nil {
+			return err
+		}
+		if err := appManager.Install(*app, nsGen, suffixGen, map[string]any{
+			"Name":       fmt.Sprintf("%s-headscale", req.Name),
+			"From":       "10.1.0.2",
+			"To":         "10.1.0.2",
+			"AutoAssign": false,
+		}); err != nil {
+			return err
+		}
+		if err := appManager.Install(*app, nsGen, suffixGen, map[string]any{
+			"Name":       fmt.Sprintf("%s-soft-serve", req.Name), // TODO(giolekva): rename to config repo
+			"From":       "10.1.0.3",
+			"To":         "10.1.0.3",
+			"AutoAssign": false,
+		}); err != nil {
+			return err
+		}
+		if err := appManager.Install(*app, nsGen, suffixGen, map[string]any{
+			"Name":       req.Name,
+			"From":       "10.1.0.100",
+			"To":         "10.1.0.254",
+			"AutoAssign": false,
 		}); err != nil {
 			return err
 		}