installer: separate suffix and prefix generation.

Reuse suffix for app dir name.
diff --git a/core/installer/app_manager.go b/core/installer/app_manager.go
index b5815e4..fccf0b2 100644
--- a/core/installer/app_manager.go
+++ b/core/installer/app_manager.go
@@ -3,6 +3,7 @@
 import (
 	"fmt"
 	"io/ioutil"
+	"path/filepath"
 
 	"sigs.k8s.io/yaml"
 )
@@ -42,17 +43,21 @@
 	return cfg, err
 }
 
-func (m *AppManager) Install(app App, ns NamespaceGenerator, config map[string]any) error {
+func (m *AppManager) Install(app App, ns NamespaceGenerator, suffixGen SuffixGenerator, config map[string]any) error {
 	// if err := m.repoIO.Fetch(); err != nil {
 	// 	return err
 	// }
+	suffix, err := suffixGen.Generate()
+	if err != nil {
+		return err
+	}
 	namespaces := make([]string, len(app.Namespaces))
 	for i, n := range app.Namespaces {
-		var err error
-		namespaces[i], err = ns.Generate(n)
+		ns, err := ns.Generate(n)
 		if err != nil {
 			return err
 		}
+		namespaces[i] = ns + suffix
 	}
 	for _, n := range namespaces {
 		if err := m.nsCreator.Create(n); err != nil {
@@ -73,5 +78,8 @@
 		}
 	}
 	// TODO(giolekva): use ns suffix for app directory
-	return m.repoIO.InstallApp(app, "apps", all)
+	return m.repoIO.InstallApp(
+		app,
+		filepath.Join("/apps", app.Name+suffix),
+		all)
 }