Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Bk Bcs
Commits
52404f47
Unverified
Commit
52404f47
authored
4 years ago
by
Jim
Committed by
GitHub
4 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #776 from DeveloperJim/master
自动化测试问题修复
parents
ae95343e
ae280d67
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
bcs-common/pkg/bcsapi/clustermanager.go
+5
-5
bcs-common/pkg/bcsapi/clustermanager.go
bcs-k8s/bcs-kube-agent/app/report.go
+12
-6
bcs-k8s/bcs-kube-agent/app/report.go
bcs-k8s/bcs-kube-agent/app/websocket.go
+1
-1
bcs-k8s/bcs-kube-agent/app/websocket.go
bcs-mesos/bcs-mesos-driver/mesosdriver/websocket.go
+2
-2
bcs-mesos/bcs-mesos-driver/mesosdriver/websocket.go
bcs-services/bcs-cluster-manager/internal/actions/clustercredential/list.go
+1
-1
...luster-manager/internal/actions/clustercredential/list.go
bcs-services/bcs-cluster-manager/internal/actions/clustercredential/update.go
+1
-1
...ster-manager/internal/actions/clustercredential/update.go
bcs-services/bcs-cluster-manager/internal/tunnel/tunnelserver.go
+3
-5
...vices/bcs-cluster-manager/internal/tunnel/tunnelserver.go
bcs-services/bcs-gateway-discovery/app/zookeeper.go
+6
-2
bcs-services/bcs-gateway-discovery/app/zookeeper.go
bcs-services/bcs-gateway-discovery/go.mod
+2
-2
bcs-services/bcs-gateway-discovery/go.mod
bcs-services/bcs-gateway-discovery/plugins/apisix/bkbcs-auth/bkbcs.lua
+10
-10
...bcs-gateway-discovery/plugins/apisix/bkbcs-auth/bkbcs.lua
with
43 additions
and
35 deletions
+43
-35
bcs-common/pkg/bcsapi/clustermanager.go
+
5
-
5
View file @
52404f47
...
@@ -17,6 +17,7 @@ import (
...
@@ -17,6 +17,7 @@ import (
"fmt"
"fmt"
"math/rand"
"math/rand"
"time"
"time"
"context"
"github.com/Tencent/bk-bcs/bcs-common/common/blog"
"github.com/Tencent/bk-bcs/bcs-common/common/blog"
cm
"github.com/Tencent/bk-bcs/bcs-common/pkg/bcsapi/clustermanager"
cm
"github.com/Tencent/bk-bcs/bcs-common/pkg/bcsapi/clustermanager"
...
@@ -28,14 +29,12 @@ import (
...
@@ -28,14 +29,12 @@ import (
)
)
// XRequestID insert X-Request-ID
// XRequestID insert X-Request-ID
func
XRequestID
()
*
grpc
.
HeaderCallOption
{
func
XRequestID
()
context
.
Context
{
requestID
:=
map
[
string
]
string
{
requestID
:=
map
[
string
]
string
{
"X-Request-Id"
:
uuid
.
New
()
.
String
(),
"X-Request-Id"
:
uuid
.
New
()
.
String
(),
}
}
md
:=
metadata
.
New
(
requestID
)
md
:=
metadata
.
New
(
requestID
)
return
&
grpc
.
HeaderCallOption
{
return
metadata
.
NewOutgoingContext
(
context
.
Background
(),
md
)
HeaderAddr
:
&
md
,
}
}
}
// NewClusterManager create ClusterManager SDK implementation
// NewClusterManager create ClusterManager SDK implementation
...
@@ -61,11 +60,12 @@ func NewClusterManager(config *Config) cm.ClusterManagerClient {
...
@@ -61,11 +60,12 @@ func NewClusterManager(config *Config) cm.ClusterManagerClient {
opts
=
append
(
opts
,
grpc
.
WithInsecure
())
opts
=
append
(
opts
,
grpc
.
WithInsecure
())
}
}
var
conn
*
grpc
.
ClientConn
var
conn
*
grpc
.
ClientConn
var
err
error
maxTries
:=
3
maxTries
:=
3
for
i
:=
0
;
i
<
maxTries
;
i
++
{
for
i
:=
0
;
i
<
maxTries
;
i
++
{
selected
:=
rand
.
Intn
(
1024
)
%
len
(
config
.
Hosts
)
selected
:=
rand
.
Intn
(
1024
)
%
len
(
config
.
Hosts
)
addr
:=
config
.
Hosts
[
selected
]
addr
:=
config
.
Hosts
[
selected
]
conn
,
err
:
=
grpc
.
Dial
(
addr
,
opts
...
)
conn
,
err
=
grpc
.
Dial
(
addr
,
opts
...
)
if
err
!=
nil
{
if
err
!=
nil
{
blog
.
Errorf
(
"Create clsuter manager grpc client with %s error: %s"
,
addr
,
err
.
Error
())
blog
.
Errorf
(
"Create clsuter manager grpc client with %s error: %s"
,
addr
,
err
.
Error
())
continue
continue
...
...
This diff is collapsed.
Click to expand it.
bcs-k8s/bcs-kube-agent/app/report.go
+
12
-
6
View file @
52404f47
...
@@ -103,11 +103,13 @@ func reportToBke(kubeClient *kubernetes.Clientset, cfg *rest.Config) {
...
@@ -103,11 +103,13 @@ func reportToBke(kubeClient *kubernetes.Clientset, cfg *rest.Config) {
request
=
gorequest
.
New
()
.
TLSClientConfig
(
tlsConfig
)
request
=
gorequest
.
New
()
.
TLSClientConfig
(
tlsConfig
)
}
}
userToken
:=
os
.
Getenv
(
"USER_TOKEN"
)
userToken
:=
os
.
Getenv
(
"USER_TOKEN"
)
if
len
(
userToken
)
!=
0
{
if
len
(
userToken
)
==
0
{
request
.
AppendHeader
(
"Authorization"
,
"Bearer "
+
userToken
)
blog
.
Errorf
(
"lost USER_TOKEN env parameter"
)
panic
(
"lost USER_TOKEN env parameter"
)
}
}
resp
,
respBody
,
errs
:=
request
.
Put
(
bkeURL
)
.
resp
,
respBody
,
errs
:=
request
.
Put
(
bkeURL
)
.
Send
(
clusterInfoParams
)
.
End
()
Set
(
"Authorization"
,
"Bearer "
+
userToken
)
.
Send
(
clusterInfoParams
)
.
End
()
if
len
(
errs
)
>
0
{
if
len
(
errs
)
>
0
{
blog
.
Errorf
(
"unable to connect to the bke server: %s"
,
errs
[
0
]
.
Error
())
blog
.
Errorf
(
"unable to connect to the bke server: %s"
,
errs
[
0
]
.
Error
())
// sleep a while to try again, avoid trying in loop
// sleep a while to try again, avoid trying in loop
...
@@ -115,9 +117,13 @@ func reportToBke(kubeClient *kubernetes.Clientset, cfg *rest.Config) {
...
@@ -115,9 +117,13 @@ func reportToBke(kubeClient *kubernetes.Clientset, cfg *rest.Config) {
continue
continue
}
}
if
resp
.
StatusCode
>=
400
{
if
resp
.
StatusCode
>=
400
{
codeName
:=
json
.
Get
([]
byte
(
respBody
),
"code
_name"
)
.
ToString
()
codeName
:=
json
.
Get
([]
byte
(
respBody
),
"code
"
)
.
ToInt
()
message
:=
json
.
Get
([]
byte
(
respBody
),
"message"
)
.
ToString
()
message
:=
json
.
Get
([]
byte
(
respBody
),
"message"
)
.
ToString
()
blog
.
Errorf
(
"Error updating cluster credential to bke, response code: %s, response message: %s"
,
codeName
,
message
)
blog
.
Errorf
(
"Error updating cluster credential to bke, response code: %s, response message: %s"
,
codeName
,
message
,
)
}
}
select
{
select
{
...
...
This diff is collapsed.
Click to expand it.
bcs-k8s/bcs-kube-agent/app/websocket.go
+
1
-
1
View file @
52404f47
...
@@ -43,7 +43,7 @@ const (
...
@@ -43,7 +43,7 @@ const (
Cluster
=
"BCS-API-Tunnel-ClusterId"
Cluster
=
"BCS-API-Tunnel-ClusterId"
// ModuleName module name for kube agent
// ModuleName module name for kube agent
ModuleName
=
"kube
-
agent"
ModuleName
=
"kubeagent"
)
)
func
getenv
(
env
string
)
(
string
,
error
)
{
func
getenv
(
env
string
)
(
string
,
error
)
{
...
...
This diff is collapsed.
Click to expand it.
bcs-mesos/bcs-mesos-driver/mesosdriver/websocket.go
+
2
-
2
View file @
52404f47
...
@@ -39,7 +39,7 @@ const (
...
@@ -39,7 +39,7 @@ const (
// Cluster ID for ws tunnel
// Cluster ID for ws tunnel
Cluster
=
"BCS-API-Tunnel-ClusterId"
Cluster
=
"BCS-API-Tunnel-ClusterId"
// ModuleName definition
// ModuleName definition
ModuleName
=
"mesos
-
driver"
ModuleName
=
"mesosdriver"
)
)
func
(
m
*
MesosDriver
)
buildWebsocketToAPI
()
error
{
func
(
m
*
MesosDriver
)
buildWebsocketToAPI
()
error
{
...
@@ -97,7 +97,7 @@ func (m *MesosDriver) buildWebsocketToAPI() error {
...
@@ -97,7 +97,7 @@ func (m *MesosDriver) buildWebsocketToAPI() error {
go
func
()
{
go
func
()
{
for
{
for
{
wsURL
:=
fmt
.
Sprintf
(
"wss://%s/bcsapi/v4/usermanager/v1/websocket/connect"
,
bcsAPIURL
.
Host
)
wsURL
:=
fmt
.
Sprintf
(
"wss://%s/bcsapi/v4/
cl
us
t
ermanager/v1/websocket/connect"
,
bcsAPIURL
.
Host
)
blog
.
Infof
(
"Connecting to %s with token %s"
,
wsURL
,
m
.
config
.
RegisterToken
)
blog
.
Infof
(
"Connecting to %s with token %s"
,
wsURL
,
m
.
config
.
RegisterToken
)
websocketDialer
.
ClientConnect
(
context
.
Background
(),
wsURL
,
headers
,
tlsConfig
,
nil
,
func
(
proto
,
address
string
)
bool
{
websocketDialer
.
ClientConnect
(
context
.
Background
(),
wsURL
,
headers
,
tlsConfig
,
nil
,
func
(
proto
,
address
string
)
bool
{
...
...
This diff is collapsed.
Click to expand it.
bcs-services/bcs-cluster-manager/internal/actions/clustercredential/list.go
+
1
-
1
View file @
52404f47
...
@@ -55,7 +55,7 @@ func (la *ListAction) listClusterCredential() error {
...
@@ -55,7 +55,7 @@ func (la *ListAction) listClusterCredential() error {
condM
[
"clusterID"
]
=
la
.
req
.
ClusterID
condM
[
"clusterID"
]
=
la
.
req
.
ClusterID
}
}
if
len
(
la
.
req
.
ClientMode
)
!=
0
{
if
len
(
la
.
req
.
ClientMode
)
!=
0
{
condM
[
"clientMode"
]
=
la
.
req
.
ClientMode
condM
[
"clientMod
ul
e"
]
=
la
.
req
.
ClientMode
}
}
if
len
(
la
.
req
.
ConnectMode
)
!=
0
{
if
len
(
la
.
req
.
ConnectMode
)
!=
0
{
condM
[
"connectMode"
]
=
la
.
req
.
ConnectMode
condM
[
"connectMode"
]
=
la
.
req
.
ConnectMode
...
...
This diff is collapsed.
Click to expand it.
bcs-services/bcs-cluster-manager/internal/actions/clustercredential/update.go
+
1
-
1
View file @
52404f47
...
@@ -52,7 +52,7 @@ func (ua *UpdateAction) updateCredential() error {
...
@@ -52,7 +52,7 @@ func (ua *UpdateAction) updateCredential() error {
ServerAddress
:
ua
.
req
.
ServerAddress
,
ServerAddress
:
ua
.
req
.
ServerAddress
,
CaCertData
:
ua
.
req
.
CaCertData
,
CaCertData
:
ua
.
req
.
CaCertData
,
UserToken
:
ua
.
req
.
UserToken
,
UserToken
:
ua
.
req
.
UserToken
,
ConnectMode
:
modules
.
BCSConnectMode
Tunnel
,
ConnectMode
:
modules
.
BCSConnectMode
Direct
,
}
}
if
err
:=
ua
.
model
.
PutClusterCredential
(
ua
.
ctx
,
newCredential
);
err
!=
nil
{
if
err
:=
ua
.
model
.
PutClusterCredential
(
ua
.
ctx
,
newCredential
);
err
!=
nil
{
return
err
return
err
...
...
This diff is collapsed.
Click to expand it.
bcs-services/bcs-cluster-manager/internal/tunnel/tunnelserver.go
+
3
-
5
View file @
52404f47
...
@@ -37,11 +37,9 @@ const (
...
@@ -37,11 +37,9 @@ const (
// Cluster http tunnel header
// Cluster http tunnel header
Cluster
=
"BCS-API-Tunnel-ClusterId"
Cluster
=
"BCS-API-Tunnel-ClusterId"
// KubeAgentModule http tunnel header
// KubeAgentModule http tunnel header
KubeAgentModule
=
"kube-agent"
KubeAgentModule
=
"kubeagent"
// K8sDriverModule http tunnel header
K8sDriverModule
=
"k8s-driver"
// MesosDriverModule http tunnel header
// MesosDriverModule http tunnel header
MesosDriverModule
=
"mesos
-
driver"
MesosDriverModule
=
"mesosdriver"
)
)
// RegisterCluster definition of tunnel cluster info
// RegisterCluster definition of tunnel cluster info
...
@@ -138,7 +136,7 @@ func (wts *WsTunnelServerCallback) authorizeTunnel(req *http.Request) (string, b
...
@@ -138,7 +136,7 @@ func (wts *WsTunnelServerCallback) authorizeTunnel(req *http.Request) (string, b
return
""
,
false
,
err
return
""
,
false
,
err
}
}
return
clusterID
,
true
,
nil
return
clusterID
,
true
,
nil
}
else
if
moduleName
==
MesosDriverModule
||
moduleName
==
K8sDriverModule
{
}
else
if
moduleName
==
MesosDriverModule
{
// for mesos, the registerCluster.Address is mesos-driver url.
// for mesos, the registerCluster.Address is mesos-driver url.
// one mesos cluster may have 3 or more mesos-driver,
// one mesos cluster may have 3 or more mesos-driver,
// so we should distinguish them, so use {clusterID}-{ip:port} as serverKey
// so we should distinguish them, so use {clusterID}-{ip:port} as serverKey
...
...
This diff is collapsed.
Click to expand it.
bcs-services/bcs-gateway-discovery/app/zookeeper.go
+
6
-
2
View file @
52404f47
...
@@ -14,7 +14,6 @@
...
@@ -14,7 +14,6 @@
package
app
package
app
import
(
import
(
"context"
"encoding/json"
"encoding/json"
"fmt"
"fmt"
"net/url"
"net/url"
...
@@ -172,7 +171,12 @@ func (s *DiscoveryServer) formatKubeAPIServerInfo(module string) ([]*register.Se
...
@@ -172,7 +171,12 @@ func (s *DiscoveryServer) formatKubeAPIServerInfo(module string) ([]*register.Se
ClientMode
:
modules
.
BCSModuleKubeagent
,
ClientMode
:
modules
.
BCSModuleKubeagent
,
ConnectMode
:
modules
.
BCSConnectModeDirect
,
ConnectMode
:
modules
.
BCSConnectModeDirect
,
}
}
clusterResp
,
err
:=
clusterCli
.
ListClusterCredential
(
context
.
Background
(),
req
,
bcsapi
.
XRequestID
())
if
clusterCli
==
nil
{
blog
.
Errorf
(
"create cluster manager cli from config: %+v failed, please check discovery"
,
config
)
return
nil
,
fmt
.
Errorf
(
"no available clustermanager client"
)
}
clusterResp
,
err
:=
clusterCli
.
ListClusterCredential
(
bcsapi
.
XRequestID
(),
req
)
if
err
!=
nil
{
if
err
!=
nil
{
blog
.
Errorf
(
"request all kube-apiserver cluster info from bcs-cluster-manager %s failed, %s"
,
node
.
Address
,
err
.
Error
())
blog
.
Errorf
(
"request all kube-apiserver cluster info from bcs-cluster-manager %s failed, %s"
,
node
.
Address
,
err
.
Error
())
return
nil
,
err
return
nil
,
err
...
...
This diff is collapsed.
Click to expand it.
bcs-services/bcs-gateway-discovery/go.mod
+
2
-
2
View file @
52404f47
...
@@ -3,12 +3,12 @@ module github.com/Tencent/bk-bcs/bcs-services/bcs-gateway-discovery
...
@@ -3,12 +3,12 @@ module github.com/Tencent/bk-bcs/bcs-services/bcs-gateway-discovery
go 1.14
go 1.14
replace (
replace (
github.com/Tencent/bk-bcs/bcs-common =>
github.com/Tencent/bk-bcs/bcs-common v0.0.0-20210204134536-62cbdd86fc35
github.com/Tencent/bk-bcs/bcs-common =>
../../bcs-common
github.com/coreos/bbolt v1.3.4 => go.etcd.io/bbolt v1.3.4
github.com/coreos/bbolt v1.3.4 => go.etcd.io/bbolt v1.3.4
github.com/coreos/etcd => github.com/coreos/etcd v3.3.18+incompatible
github.com/kevholditch/gokong => github.com/DeveloperJim/gokong v1.9.2
github.com/kevholditch/gokong => github.com/DeveloperJim/gokong v1.9.2
github.com/micro/go-micro/v2 => github.com/OvertimeDog/go-micro/v2 v2.9.3
github.com/micro/go-micro/v2 => github.com/OvertimeDog/go-micro/v2 v2.9.3
go.etcd.io/bbolt v1.3.4 => github.com/coreos/bbolt v1.3.4
go.etcd.io/bbolt v1.3.4 => github.com/coreos/bbolt v1.3.4
github.com/coreos/etcd => github.com/coreos/etcd v3.3.18+incompatible
google.golang.org/grpc => google.golang.org/grpc v1.26.0
google.golang.org/grpc => google.golang.org/grpc v1.26.0
)
)
...
...
This diff is collapsed.
Click to expand it.
bcs-services/bcs-gateway-discovery/plugins/apisix/bkbcs-auth/bkbcs.lua
+
10
-
10
View file @
52404f47
...
@@ -162,12 +162,7 @@ function BKUserCli:construct_identity(conf, request)
...
@@ -162,12 +162,7 @@ function BKUserCli:construct_identity(conf, request)
else
else
auth
.
resource_type
=
conf
.
module
auth
.
resource_type
=
conf
.
module
end
end
-- kubeagent & networkdetection has no ClusterId
-- kubeagent & mesosdriver construct ClusterId
local
headers
=
request
.
get_headers
()
if
not
headers
[
CLUSTER_HEADER
]
and
is_cluster_resource
(
conf
.
module
)
then
core
.
log
.
error
(
" user_cli get no BCS-ClusterID from request "
,
ngx
.
var
.
uri
)
return
nil
,
"lost BCS-ClusterID in header"
end
if
conf
.
module
==
KUBEAGENT
then
if
conf
.
module
==
KUBEAGENT
then
-- retrieve bcs-cluster-id from url as resource
-- retrieve bcs-cluster-id from url as resource
local
id_iterator
,
id_err
=
ngx
.
re
.
gmatch
(
ngx
.
var
.
uri
,
"BCS-K8S-([0-9]+[^/])"
)
local
id_iterator
,
id_err
=
ngx
.
re
.
gmatch
(
ngx
.
var
.
uri
,
"BCS-K8S-([0-9]+[^/])"
)
...
@@ -178,10 +173,15 @@ function BKUserCli:construct_identity(conf, request)
...
@@ -178,10 +173,15 @@ function BKUserCli:construct_identity(conf, request)
local
id
,
err
=
id_iterator
()
local
id
,
err
=
id_iterator
()
if
not
id
or
#
id
<
1
then
if
not
id
or
#
id
<
1
then
core
.
log
.
error
(
" user_cli parse kubernetes BCS-ClusterID in request "
,
ngx
.
var
.
uri
,
" failed, "
,
err
)
core
.
log
.
error
(
" user_cli parse kubernetes BCS-ClusterID in request "
,
ngx
.
var
.
uri
,
" failed, "
,
err
)
return
nil
,
"kuberentes BCS-ClusterID "
return
nil
,
"kuberentes BCS-ClusterID
parse failed
"
end
end
auth
.
resource
=
id
[
0
]
auth
.
resource
=
id
[
0
]
else
else
if
conf
.
module
==
MESOSDRIVER
then
local
headers
=
request
.
get_headers
()
if
not
headers
[
CLUSTER_HEADER
]
then
core
.
log
.
error
(
" user_cli get no BCS-ClusterID from request "
,
ngx
.
var
.
uri
)
return
nil
,
"lost BCS-ClusterID in header"
end
-- retrieve bcs-cluster-id from header
-- retrieve bcs-cluster-id from header
auth
.
resource
=
headers
[
CLUSTER_HEADER
]
auth
.
resource
=
headers
[
CLUSTER_HEADER
]
end
end
...
@@ -189,12 +189,12 @@ function BKUserCli:construct_identity(conf, request)
...
@@ -189,12 +189,12 @@ function BKUserCli:construct_identity(conf, request)
-- get token for http header
-- get token for http header
local
auth_header
=
request
.
get_headers
()
local
auth_header
=
request
.
get_headers
()
if
not
auth_header
[
"Authorization"
]
then
if
not
auth_header
[
"Authorization"
]
then
core
.
log
.
error
(
" user_cli get no Authorization from http header, request path:"
,
ngx
.
var
.
uri
)
core
.
log
.
error
(
" user_cli get no Authorization from http header, request path:"
,
ngx
.
var
.
uri
,
" header details: "
,
core
.
json
.
encode
(
auth_header
)
)
return
nil
,
"lost Authorization"
return
nil
,
"lost Authorization"
end
end
local
iterator
,
iter_err
=
ngx
.
re
.
gmatch
(
auth_header
[
"Authorization"
],
"
\\
s*[Bb]earer\\s+(.+)"
)
local
iterator
,
iter_err
=
ngx
.
re
.
gmatch
(
auth_header
[
"Authorization"
],
"
\\
s*[Bb]earer\\s+(.+)"
)
if
not
iterator
then
if
not
iterator
then
core
.
log
.
error
(
" user_cli search token for request "
,
ngx
.
var
.
uri
,
" failed, "
,
iter_err
)
core
.
log
.
error
(
" user_cli search token for request "
,
ngx
.
var
.
uri
,
" failed, "
,
iter_err
,
" Authorization: "
,
auth_header
[
"Authorization"
]
)
return
nil
,
"Authorization format error"
return
nil
,
"Authorization format error"
end
end
local
m
,
err
=
iterator
()
local
m
,
err
=
iterator
()
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment