installer: create namespaces with kube client
diff --git a/core/installer/welcome/welcome.go b/core/installer/welcome/welcome.go
index 04e08f5..d34580f 100644
--- a/core/installer/welcome/welcome.go
+++ b/core/installer/welcome/welcome.go
@@ -20,14 +20,16 @@
 var staticAssets embed.FS
 
 type Server struct {
-	port int
-	repo installer.RepoIO
+	port      int
+	repo      installer.RepoIO
+	nsCreator installer.NamespaceCreator
 }
 
-func NewServer(port int, repo installer.RepoIO) *Server {
+func NewServer(port int, repo installer.RepoIO, nsCreator installer.NamespaceCreator) *Server {
 	return &Server{
 		port,
 		repo,
+		nsCreator,
 	}
 }
 
@@ -86,7 +88,15 @@
 	}
 	// TODO(giolekva): accounts-ui create user req
 	{
-		appManager, err := installer.NewAppManager(s.repo)
+		config, err := s.repo.ReadConfig()
+		if err != nil {
+			return err
+		}
+		if err != nil {
+			return err
+		}
+		nsGen := installer.NewPrefixGenerator(config.Values.Id + "-")
+		appManager, err := installer.NewAppManager(s.repo, s.nsCreator)
 		if err != nil {
 			return err
 		}
@@ -96,7 +106,7 @@
 			if err != nil {
 				return err
 			}
-			if err := appManager.Install(*app, map[string]any{
+			if err := appManager.Install(*app, nsGen, map[string]any{
 				"GandiAPIToken": req.GandiAPIToken,
 			}); err != nil {
 				return err
@@ -107,7 +117,7 @@
 			if err != nil {
 				return err
 			}
-			if err := appManager.Install(*app, map[string]any{
+			if err := appManager.Install(*app, nsGen, map[string]any{
 				"Username": req.Username,
 				"IPSubnet": "10.1.0.0/24", // TODO(giolekva): this should be taken from the config generated during new env creation
 			}); err != nil {