Skip to content

Commit 8bf6a95

Browse files
authored
Merge pull request #59 from Jefftree/split-stuff
Move client libraries into separate module
2 parents 08d981c + a43037a commit 8bf6a95

File tree

26 files changed

+1027
-1296
lines changed

26 files changed

+1027
-1296
lines changed

Makefile

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
ARCH ?= amd64
1616
ALL_ARCH = amd64 arm arm64 ppc64le s390x
1717

18+
GOPATH ?= $(GOPATH)
19+
1820
REGISTRY ?= gcr.io/$(shell gcloud config get-value project)
1921
STAGING_REGISTRY := gcr.io/k8s-staging-kas-network-proxy
2022

@@ -54,13 +56,13 @@ bin:
5456
.PHONY: build
5557
build: bin/proxy-agent bin/proxy-server bin/proxy-test-client
5658

57-
bin/proxy-agent: bin cmd/agent/main.go proto/agent/agent.pb.go
59+
bin/proxy-agent: proto/agent/agent.pb.go proto/client/client.pb.go bin cmd/agent/main.go
5860
GO111MODULE=on go build -o bin/proxy-agent cmd/agent/main.go
5961

60-
bin/proxy-test-client: bin cmd/client/main.go proto/proxy.pb.go
62+
bin/proxy-test-client: proto/client/client.pb.go bin cmd/client/main.go
6163
GO111MODULE=on go build -o bin/proxy-test-client cmd/client/main.go
6264

63-
bin/proxy-server: bin cmd/proxy/main.go proto/agent/agent.pb.go proto/proxy.pb.go
65+
bin/proxy-server: proto/agent/agent.pb.go proto/client/client.pb.go bin cmd/proxy/main.go
6466
GO111MODULE=on go build -o bin/proxy-server cmd/proxy/main.go
6567

6668
## --------------------------------------
@@ -73,18 +75,18 @@ bin/proxy-server: bin cmd/proxy/main.go proto/agent/agent.pb.go proto/proxy.pb.g
7375
## --------------------------------------
7476

7577
.PHONY: gen
76-
gen: proto/agent/agent.pb.go proto/proxy.pb.go mock_gen
78+
gen: proto/agent/agent.pb.go proto/client/client.pb.go mock_gen
79+
80+
proto/client/client.pb.go: konnectivity-client/proto/client/client.proto
81+
protoc -I . konnectivity-client/proto/client/client.proto --go_out=plugins=grpc:${GOPATH}/src
82+
cat hack/go-license-header.txt konnectivity-client/proto/client/client.pb.go > konnectivity-client/proto/client/client.licensed.go
83+
mv konnectivity-client/proto/client/client.licensed.go konnectivity-client/proto/client/client.pb.go
7784

7885
proto/agent/agent.pb.go: proto/agent/agent.proto
79-
protoc -I proto proto/agent/agent.proto --go_out=plugins=grpc:proto
86+
protoc -I . proto/agent/agent.proto --go_out=plugins=grpc:${GOPATH}/src
8087
cat hack/go-license-header.txt proto/agent/agent.pb.go > proto/agent/agent.licensed.go
8188
mv proto/agent/agent.licensed.go proto/agent/agent.pb.go
8289

83-
proto/proxy.pb.go: proto/proxy.proto
84-
protoc -I proto proto/proxy.proto --go_out=plugins=grpc:proto
85-
cat hack/go-license-header.txt proto/proxy.pb.go > proto/proxy.licensed.go
86-
mv proto/proxy.licensed.go proto/proxy.pb.go
87-
8890
## --------------------------------------
8991
## Certs
9092
## --------------------------------------
@@ -155,7 +157,7 @@ docker-push/proxy-agent: docker-build/proxy-agent
155157
${DOCKER_CMD} push ${AGENT_FULL_IMAGE}-$(ARCH):${TAG}
156158

157159
.PHONY: docker-build/proxy-server
158-
docker-build/proxy-server: cmd/proxy/main.go proto/agent/agent.pb.go proto/proxy.pb.go
160+
docker-build/proxy-server: cmd/proxy/main.go proto/agent/agent.pb.go
159161
@[ "${TAG}" ] || ( echo "TAG is not set"; exit 1 )
160162
echo "Building proxy-server for ${ARCH}"
161163
${DOCKER_CMD} build . --build-arg ARCH=$(ARCH) -f artifacts/images/server-build.Dockerfile -t ${SERVER_FULL_IMAGE}-$(ARCH):${TAG}
@@ -166,7 +168,7 @@ docker-push/proxy-server: docker-build/proxy-server
166168
${DOCKER_CMD} push ${SERVER_FULL_IMAGE}-$(ARCH):${TAG}
167169

168170
.PHONY: docker-build/proxy-test-client
169-
docker-build/proxy-test-client: cmd/client/main.go proto/agent/agent.pb.go proto/proxy.pb.go
171+
docker-build/proxy-test-client: cmd/client/main.go proto/agent/agent.pb.go
170172
@[ "${TAG}" ] || ( echo "TAG is not set"; exit 1 )
171173
echo "Building proxy-test-client for ${ARCH}"
172174
${DOCKER_CMD} build . --build-arg ARCH=$(ARCH) -f artifacts/images/client-build.Dockerfile -t ${TEST_CLIENT_FULL_IMAGE}-$(ARCH):${TAG}
@@ -249,4 +251,4 @@ release-alias-tag: # Adds the tag to the last build tag. BASE_REF comes from the
249251

250252
.PHONY: clean
251253
clean:
252-
rm -rf proto/agent/agent.pb.go proto/proxy.pb.go easy-rsa.tar.gz easy-rsa-master cfssl cfssljson certs bin proto/agent/mocks
254+
rm -rf proto/agent/agent.pb.go konnectivity-client/proto/client/client.pb.go easy-rsa.tar.gz easy-rsa-master cfssl cfssljson certs bin proto/agent/mocks

cmd/client/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import (
3434
"google.golang.org/grpc/credentials"
3535
"k8s.io/klog"
3636

37-
"sigs.k8s.io/apiserver-network-proxy/pkg/agent/client"
37+
"sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client"
3838
"sigs.k8s.io/apiserver-network-proxy/pkg/util"
3939
)
4040

cmd/proxy/main.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import (
4040
"k8s.io/client-go/tools/clientcmd"
4141
"sigs.k8s.io/apiserver-network-proxy/pkg/agent/agentserver"
4242
"sigs.k8s.io/apiserver-network-proxy/pkg/util"
43+
"sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client"
4344
"sigs.k8s.io/apiserver-network-proxy/proto/agent"
4445
)
4546

@@ -368,7 +369,7 @@ func (p *Proxy) runUDSMasterServer(ctx context.Context, o *ProxyRunOptions, serv
368369
var stop StopFunc
369370
if o.mode == "grpc" {
370371
grpcServer := grpc.NewServer()
371-
agent.RegisterProxyServiceServer(grpcServer, server)
372+
client.RegisterProxyServiceServer(grpcServer, server)
372373
var lc net.ListenConfig
373374
lis, err := lc.Listen(ctx, "unix", o.udsName)
374375
if err != nil {
@@ -445,7 +446,7 @@ func (p *Proxy) runMTLSMasterServer(ctx context.Context, o *ProxyRunOptions, ser
445446
if o.mode == "grpc" {
446447
serverOption := grpc.Creds(credentials.NewTLS(tlsConfig))
447448
grpcServer := grpc.NewServer(serverOption)
448-
agent.RegisterProxyServiceServer(grpcServer, server)
449+
client.RegisterProxyServiceServer(grpcServer, server)
449450
lis, err := net.Listen("tcp", addr)
450451
if err != nil {
451452
return nil, fmt.Errorf("failed to listen on %s: %v", addr, err)

go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,7 @@ require (
1919
k8s.io/apimachinery v0.17.1
2020
k8s.io/client-go v0.17.1
2121
k8s.io/klog v1.0.0
22+
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.0
2223
)
24+
25+
replace sigs.k8s.io/apiserver-network-proxy/konnectivity-client => ./konnectivity-client

konnectivity-client/go.mod

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module sigs.k8s.io/apiserver-network-proxy/konnectivity-client
2+
3+
go 1.13
4+
5+
require (
6+
github.com/golang/protobuf v1.3.2
7+
google.golang.org/grpc v1.26.0
8+
k8s.io/klog v1.0.0
9+
)

konnectivity-client/go.sum

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
2+
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
3+
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
4+
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
5+
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
6+
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
7+
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
8+
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
9+
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
10+
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
11+
github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
12+
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
13+
github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ=
14+
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
15+
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
16+
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
17+
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
18+
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
19+
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
20+
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
21+
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
22+
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
23+
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
24+
golang.org/x/net v0.0.0-20190311183353-d8887717615a h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=
25+
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
26+
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
27+
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
28+
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
29+
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
30+
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
31+
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
32+
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
33+
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
34+
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
35+
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
36+
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
37+
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
38+
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
39+
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
40+
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
41+
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
42+
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE=
43+
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
44+
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
45+
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
46+
google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg=
47+
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
48+
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
49+
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
50+
k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
51+
k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=

pkg/agent/client/client.go renamed to konnectivity-client/pkg/client/client.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import (
2727

2828
"google.golang.org/grpc"
2929
"k8s.io/klog"
30-
"sigs.k8s.io/apiserver-network-proxy/proto/agent"
30+
"sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client"
3131
)
3232

3333
// Tunnel provides ability to dial a connection through a tunnel.
@@ -44,7 +44,7 @@ type dialResult struct {
4444

4545
// grpcTunnel implements Tunnel
4646
type grpcTunnel struct {
47-
stream agent.ProxyService_ProxyClient
47+
stream client.ProxyService_ProxyClient
4848
pendingDial map[int64]chan<- dialResult
4949
conns map[int64]*conn
5050
pendingDialLock sync.RWMutex
@@ -59,9 +59,9 @@ func CreateGrpcTunnel(address string, opts ...grpc.DialOption) (Tunnel, error) {
5959
return nil, err
6060
}
6161

62-
client := agent.NewProxyServiceClient(c)
62+
grpcClient := client.NewProxyServiceClient(c)
6363

64-
stream, err := client.Proxy(context.Background())
64+
stream, err := grpcClient.Proxy(context.Background())
6565
if err != nil {
6666
return nil, err
6767
}
@@ -91,7 +91,7 @@ func (t *grpcTunnel) serve() {
9191
klog.Infof("[tracing] recv packet %+v", pkt)
9292

9393
switch pkt.Type {
94-
case agent.PacketType_DIAL_RSP:
94+
case client.PacketType_DIAL_RSP:
9595
resp := pkt.GetDialResponse()
9696
t.pendingDialLock.RLock()
9797
ch, ok := t.pendingDial[resp.Random]
@@ -105,7 +105,7 @@ func (t *grpcTunnel) serve() {
105105
connid: resp.ConnectID,
106106
}
107107
}
108-
case agent.PacketType_DATA:
108+
case client.PacketType_DATA:
109109
resp := pkt.GetData()
110110
// TODO: flow control
111111
t.connsLock.RLock()
@@ -117,7 +117,7 @@ func (t *grpcTunnel) serve() {
117117
} else {
118118
klog.Warningf("connection id %d not recognized", resp.ConnectID)
119119
}
120-
case agent.PacketType_CLOSE_RSP:
120+
case client.PacketType_CLOSE_RSP:
121121
resp := pkt.GetCloseResponse()
122122
t.connsLock.RLock()
123123
conn, ok := t.conns[resp.ConnectID]
@@ -155,10 +155,10 @@ func (t *grpcTunnel) Dial(protocol, address string) (net.Conn, error) {
155155
t.pendingDialLock.Unlock()
156156
}()
157157

158-
req := &agent.Packet{
159-
Type: agent.PacketType_DIAL_REQ,
160-
Payload: &agent.Packet_DialRequest{
161-
DialRequest: &agent.DialRequest{
158+
req := &client.Packet{
159+
Type: client.PacketType_DIAL_REQ,
160+
Payload: &client.Packet_DialRequest{
161+
DialRequest: &client.DialRequest{
162162
Protocol: protocol,
163163
Address: address,
164164
Random: random,

0 commit comments

Comments
 (0)