Skip to content

Commit 3ea76a8

Browse files
author
李浩
committed
[ADD] 添加设置代理功能
1 parent 27affc0 commit 3ea76a8

File tree

2 files changed

+27
-5
lines changed

2 files changed

+27
-5
lines changed

Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ WORKDIR /go/src/github.com/choerodon/choerodon-cluster-agent
33
COPY . .
44
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 GO111MODULE=on go build -o ./choerodon-cluster-agent -mod=vendor -v ./cmd/manager
55

6-
FROM registry.cn-shanghai.aliyuncs.com/c7n/debian:1.1
6+
FROM registry.cn-shanghai.aliyuncs.com/c7n/cluster-agent-base:1.1.0
77

88
ENV USER_UID=33 \
99
TINI_VERSION=v0.19.0

pkg/gitops/gitops_ssh.go

+26-4
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,34 @@ import (
77
commandutil "github.com/choerodon/choerodon-cluster-agent/pkg/util/command"
88
"github.com/golang/glog"
99
"io/ioutil"
10+
"net/url"
1011
"os"
1112
"strings"
1213
)
1314

1415
const sshKeyPath = "/ssh-keys"
1516

1617
// 这个变量保存需要被替换的ssh地址
17-
var SshUrlMap = make(map[string]string)
18+
var SshRewriteUrlMap = make(map[string]string)
19+
var sshProxyMap = make(map[string]string)
1820

1921
func init() {
2022
rawOriginSshUrl := os.Getenv("ORIGIN_SSH_URL")
2123
rawOverrideSshUrl := os.Getenv("REWRITE_SSH_URL")
2224
if len(rawOriginSshUrl) == 0 || len(rawOverrideSshUrl) == 0 {
25+
if sshProxy, exist := os.LookupEnv("SSH_PROXY"); exist && sshProxy != "" {
26+
url, err := url.Parse(sshProxy)
27+
if err != nil {
28+
glog.Error(err.Error())
29+
os.Exit(1)
30+
}
31+
sshProxyMap["schema"] = url.Scheme
32+
if url.User != nil {
33+
sshProxyMap["username"] = url.User.Username()
34+
sshProxyMap["password"], _ = url.User.Password()
35+
}
36+
sshProxyMap["host"] = url.Host
37+
}
2338
return
2439
}
2540

@@ -29,7 +44,7 @@ func init() {
2944
return
3045
}
3146
for index, originSshUrl := range originSshUrls {
32-
SshUrlMap[originSshUrl] = overrideSshUrls[index]
47+
SshRewriteUrlMap[originSshUrl] = overrideSshUrls[index]
3348
}
3449
}
3550

@@ -79,8 +94,8 @@ func writeSSHkey(fileName, key string) error {
7994
}
8095

8196
func config(host, namespace string) string {
82-
if rewriteUrl, ok := SshUrlMap[host]; ok {
83-
glog.Infof("origin host %s has been rewrited to %s",host,rewriteUrl)
97+
if rewriteUrl, ok := SshRewriteUrlMap[host]; ok {
98+
glog.Infof("origin host %s has been rewrited to %s", host, rewriteUrl)
8499
host = rewriteUrl
85100
}
86101

@@ -99,6 +114,13 @@ func config(host, namespace string) string {
99114
result = result + fmt.Sprintf(" UserKnownHostsFile /dev/null\n")
100115
result = result + fmt.Sprintf(" IdentityFile %s/rsa-%s\n", sshKeyPath, namespace)
101116
result = result + fmt.Sprintf(" LogLevel error\n")
117+
if len(SshRewriteUrlMap) == 0 && len(sshProxyMap) != 0 {
118+
result = result + fmt.Sprintf(" ProxyCommand ncat --proxy-type %s --proxy-auth %s:%s --proxy %s %%h %%p\n",
119+
sshProxyMap["schema"],
120+
sshProxyMap["username"],
121+
sshProxyMap["password"],
122+
sshProxyMap["host"])
123+
}
102124
return result
103125
}
104126

0 commit comments

Comments
 (0)