AppManager: Reuse cross-cluster port forwarding logic

Services define single open port with optional cluster and
outer layer converts it to cross cluster bindings.

Change-Id: I2f83270d19aaa367789d19a3ffbdf3a2158c1cf8
diff --git a/core/installer/dodo_app_test.go b/core/installer/dodo_app_test.go
index 6c4df1f..25ce4a3 100644
--- a/core/installer/dodo_app_test.go
+++ b/core/installer/dodo_app_test.go
@@ -3,6 +3,7 @@
 import (
 	"bytes"
 	"encoding/json"
+	"fmt"
 	"testing"
 
 	"cuelang.org/go/cue/errors"
@@ -269,6 +270,7 @@
 		t.Fatal(err)
 	}
 	t.Log(string(r.Raw))
+	t.Log(fmt.Sprintf("%+v", r.Ports))
 }
 
 const exposeRemoteClusterPublicNetwork = `