Clusters: Support persistent storage on remote clusters.

With this merged users can request persistent volumes and PostgreSQL
instances on remote clusters.

This is achieved by Cluster manager installing open-iscsi on all
remote servers and running longhorn on top of them.

Change-Id: Ic1b24ede12fa32bb99f38e560207230437b45fd6
diff --git a/core/installer/schema.go b/core/installer/schema.go
index 3c9e237..7f8410f 100644
--- a/core/installer/schema.go
+++ b/core/installer/schema.go
@@ -64,9 +64,10 @@
 	kubeconfig: string
     ingressClassName: string
 }
-
 value: #Cluster
-value: { %s }
+
+#Schema: %s
+value: #Schema
 `
 
 func isCluster(v cue.Value) bool {
@@ -94,7 +95,7 @@
 
 const networkSchema = `
 #Network: {
-    name: string
+	name: string
 	ingressClass: string
 	certificateIssuer: string | *""
 	domain: string
@@ -102,9 +103,10 @@
 	reservePortAddr: string
 	deallocatePortAddr: string
 }
-
 value: #Network
-value: { %s }
+
+#Schema: %s
+value: #Schema
 `
 
 func isNetwork(v cue.Value) bool {
@@ -140,11 +142,11 @@
 	reservePortAddr: string
 	deallocatePortAddr: string
 }
-
 #Networks: [...#Network]
-
 value: #Networks
-value: %s
+
+#Schema: %s
+value: #Schema
 `
 
 func isMultiNetwork(v cue.Value) bool {
@@ -175,9 +177,10 @@
     enabled: bool | false
     groups: string | *""
 }
-
 value: #Auth
-value: { %s }
+
+#Schema: %s
+value: #Schema
 `
 
 func isAuth(v cue.Value) bool {
@@ -208,9 +211,10 @@
     public: string
     private: string
 }
-
 value: #SSHKey
-value: { %s }
+
+#Schema: %s
+value: #Schema
 `
 
 func isSSHKey(v cue.Value) bool {