app: remove JSON based schema, and each App returns single namespace

Change-Id: I2ced82edd1251edc592f7ae0156d5ea3c81865c2
diff --git a/core/installer/bootstrapper.go b/core/installer/bootstrapper.go
index fa1a997..b981573 100644
--- a/core/installer/bootstrapper.go
+++ b/core/installer/bootstrapper.go
@@ -388,17 +388,12 @@
 		if err != nil {
 			return err
 		}
-		namespaces := make([]string, len(app.Namespaces()))
-		for i, n := range app.Namespaces() {
-			namespaces[i], err = nsGen.Generate(n)
-			if err != nil {
-				return err
-			}
+		nms, err := nsGen.Generate(app.Namespace())
+		if err != nil {
+			return err
 		}
-		for _, n := range namespaces {
-			if err := nsCreator.Create(n); err != nil {
-				return err
-			}
+		if err := nsCreator.Create(nms); err != nil {
+			return err
 		}
 		derived := Derived{
 			Global: Values{
@@ -407,9 +402,7 @@
 			Release: Release{},
 			Values:  make(map[string]any),
 		}
-		if len(namespaces) > 0 {
-			derived.Release.Namespace = namespaces[0]
-		}
+		derived.Release.Namespace = nms
 		values := map[string]any{}
 		return repo.InstallApp(app, filepath.Join("/infrastructure", app.Name()), values, derived)
 	}
@@ -497,17 +490,12 @@
 	if err != nil {
 		return err
 	}
-	namespaces := make([]string, len(app.Namespaces()))
-	for i, n := range app.Namespaces() {
-		namespaces[i], err = nsGen.Generate(n)
-		if err != nil {
-			return err
-		}
+	nms, err := nsGen.Generate(app.Namespace())
+	if err != nil {
+		return err
 	}
-	for _, n := range namespaces {
-		if err := nsCreator.Create(n); err != nil {
-			return err
-		}
+	if err := nsCreator.Create(nms); err != nil {
+		return err
 	}
 	derived := Derived{
 		Global: Values{
@@ -520,9 +508,7 @@
 			"sshPrivateKey": string(keys.RawPrivateKey()),
 		},
 	}
-	if len(namespaces) > 0 {
-		derived.Release.Namespace = namespaces[0]
-	}
+	derived.Release.Namespace = nms
 	return repo.InstallApp(app, filepath.Join("/infrastructure", app.Name()), derived.Values, derived)
 }
 
@@ -532,17 +518,12 @@
 	if err != nil {
 		return err
 	}
-	namespaces := make([]string, len(app.Namespaces()))
-	for i, n := range app.Namespaces() {
-		namespaces[i], err = nsGen.Generate(n)
-		if err != nil {
-			return err
-		}
+	nms, err := nsGen.Generate(app.Namespace())
+	if err != nil {
+		return err
 	}
-	for _, n := range namespaces {
-		if err := nsCreator.Create(n); err != nil {
-			return err
-		}
+	if err := nsCreator.Create(nms); err != nil {
+		return err
 	}
 	derived := Derived{
 		Global: Values{
@@ -550,9 +531,7 @@
 		},
 		Values: map[string]any{},
 	}
-	if len(namespaces) > 0 {
-		derived.Release.Namespace = namespaces[0]
-	}
+	derived.Release.Namespace = nms
 	return repo.InstallApp(app, filepath.Join("/infrastructure", app.Name()), derived.Values, derived)
 }
 
@@ -603,7 +582,7 @@
 	if err != nil {
 		return err
 	}
-	ns, err := nsGen.Generate(app.Namespaces()[0])
+	ns, err := nsGen.Generate(app.Namespace())
 	if err != nil {
 		return err
 	}