installer: fully automate initial bootstrap and env creation
diff --git a/core/installer/values-tmpl/ingress-public.yaml b/core/installer/values-tmpl/ingress-public.yaml
index 43ae8bc..80a5efd 100644
--- a/core/installer/values-tmpl/ingress-public.yaml
+++ b/core/installer/values-tmpl/ingress-public.yaml
@@ -2,51 +2,52 @@
 kind: HelmRelease
 metadata:
   name: namespaces-ingress-public
-  namespace: {{ .Global.Id }}
+  namespace: {{ .Global.PCloudEnvName }}
 spec:
   chart:
     spec:
       chart: charts/namespaces
       sourceRef:
         kind: GitRepository
-        name: pcloud
-        namespace: {{ .Global.Id }}
+        name: {{ .Global.PCloudEnvName }}
+        namespace: {{ .Global.PCloudEnvName }}
   interval: 1m0s
   values:
-    pcloudInstanceId: {{ .Global.Id }}
-    namespacePrefix: {{ .Global.NamespacePrefix }}
+    pcloudInstanceId: ""
+    namespacePrefix: {{ .Global.PCloudEnvName }}-
     namespaces:
-    - app-ingress-public
+    - ingress-public
 ---
 apiVersion: helm.toolkit.fluxcd.io/v2beta1
 kind: HelmRelease
 metadata:
   name: ingress-public
-  namespace: {{ .Global.Id }}
+  namespace: {{ .Global.PCloudEnvName }}
 spec:
-  targetNamespace: {{ .Values.NamespacePrefix }}ingress-public
+  targetNamespace: {{ .Global.PCloudEnvName }}-ingress-public
   dependsOn:
     - name: namespaces-ingress-public
-      namespace: {{ .Global.Id }}
+      namespace: {{ .Global.PCloudEnvName }}
   chart:
     spec:
-      chart: ingress-nginx
-      version: 4.0.3
+      chart: charts/ingress-nginx
       sourceRef:
-        kind: HelmRepository
-        name: ingress-nginx
-        namespace: {{ .Values.Id }}
+        kind: GitRepository
+        name: pcloud
+        namespace: {{ .Global.PCloudEnvName }}
   interval: 1m0s
   values:
-    fullnameOverride: {{ .Values.Id }}-ingress-public
+    fullnameOverride: {{ .Global.PCloudEnvName }}-ingress-public
     controller:
       service:
         type: LoadBalancer
+        annotations:
+          metallb.universe.tf/loadBalancerIPs: 192.168.0.213 # TODO(giolekva): configurable
       ingressClassByName: true
       ingressClassResource:
-        name: {{ .Values.Id }}-ingress-public
+        name: {{ .Global.PCloudEnvName }}-ingress-public
         enabled: true
         default: false
-        controllerValue: k8s.io/{{ .Values.Id }}-ingress-public
+        controllerValue: k8s.io/{{ .Global.PCloudEnvName }}-ingress-public
       config:
-        proxy-body-size: 100M
+        proxy-body-size: 100M # TODO(giolekva): configurable