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_test.go b/core/installer/schema_test.go
index 04375bf..32baa40 100644
--- a/core/installer/schema_test.go
+++ b/core/installer/schema_test.go
@@ -89,3 +89,15 @@
 		t.Fatal("is network")
 	}
 }
+
+const emptyInput = "input: {}"
+
+func TestIsNotNetworkEmptyInput(t *testing.T) {
+	v, err := ParseCueAppConfig(CueAppData{"/test.cue": []byte(emptyInput)})
+	if err != nil {
+		t.Fatal(err)
+	}
+	if isNetwork(v.LookupPath(cue.ParsePath("input"))) {
+		t.Fatal("not really network")
+	}
+}