AppManager: Support exposing cross-cluster ports
Change-Id: I4bdb3573209935f6777656ec2f3481e79d84a9c9
diff --git a/core/installer/cmd/app_manager.go b/core/installer/cmd/app_manager.go
index afc7d32..c2547d6 100644
--- a/core/installer/cmd/app_manager.go
+++ b/core/installer/cmd/app_manager.go
@@ -3,8 +3,8 @@
import (
"log"
"os"
-
- "golang.org/x/crypto/ssh"
+ "path/filepath"
+ "strings"
"github.com/giolekva/pcloud/core/installer"
"github.com/giolekva/pcloud/core/installer/server/appmanager"
@@ -80,20 +80,14 @@
if err != nil {
return err
}
- signer, err := ssh.ParsePrivateKey(sshKey)
+ items := strings.Split(appManagerFlags.repoAddr, "/")
+ ipPort := items[len(items)-2]
+ repoName := items[len(items)-1]
+ ssClient, err := soft.NewClient(ipPort, sshKey, log.Default())
if err != nil {
return err
}
- addr, err := soft.ParseRepositoryAddress(appManagerFlags.repoAddr)
- if err != nil {
- return err
- }
- repo, err := soft.CloneRepository(addr, signer)
- if err != nil {
- return err
- }
- log.Println("Cloned repository")
- repoIO, err := soft.NewRepoIO(repo, signer)
+ repoIO, err := ssClient.GetRepo(repoName)
if err != nil {
return err
}
@@ -112,7 +106,8 @@
PrivateSubdomain: "p",
DNSAPIAddr: appManagerFlags.dnsAPIAddr,
Repo: repoIO,
- NginxConfigPath: appManagerFlags.clusterProxyConfigPath,
+ ConfigPath: appManagerFlags.clusterProxyConfigPath,
+ ServicePath: filepath.Join(filepath.Dir(appManagerFlags.clusterProxyConfigPath), "proxy-backend-service.yaml"),
}
m, err := installer.NewAppManager(repoIO, nsc, jc, hf, vpnAPIClient, cnc, "/apps")
if err != nil {
@@ -145,6 +140,7 @@
}
s, err := appmanager.NewServer(
appManagerFlags.port,
+ ssClient,
repoIO,
m,
r,