Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
凌波微步_大先生
dashboard
提交
3ecce3ff
D
dashboard
项目概览
凌波微步_大先生
/
dashboard
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dashboard
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3ecce3ff
编写于
2月 18, 2016
作者:
P
Piotr Bryk
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #369 from maciaszczykm/localhost-endpoint
Add external endpoint for cluster IP services
上级
127183e1
c0241880
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
74 addition
and
3 deletion
+74
-3
src/app/backend/replicationcontrollerdetail.go
src/app/backend/replicationcontrollerdetail.go
+23
-3
src/test/backend/replicationcontrollerdetail_test.go
src/test/backend/replicationcontrollerdetail_test.go
+51
-0
未找到文件。
src/app/backend/replicationcontrollerdetail.go
浏览文件 @
3ecce3ff
...
...
@@ -330,9 +330,7 @@ func getExternalEndpoints(replicationController api.ReplicationController, pods
if
service
.
Spec
.
Type
==
api
.
ServiceTypeNodePort
{
externalEndpoints
=
getNodePortEndpoints
(
replicationControllerPods
,
service
,
getNodeFn
)
}
if
service
.
Spec
.
Type
==
api
.
ServiceTypeLoadBalancer
{
}
else
if
service
.
Spec
.
Type
==
api
.
ServiceTypeLoadBalancer
{
for
_
,
ingress
:=
range
service
.
Status
.
LoadBalancer
.
Ingress
{
externalEndpoints
=
append
(
externalEndpoints
,
getExternalEndpoint
(
ingress
,
service
.
Spec
.
Ports
))
...
...
@@ -343,6 +341,28 @@ func getExternalEndpoints(replicationController api.ReplicationController, pods
}
}
if
len
(
externalEndpoints
)
==
0
&&
(
service
.
Spec
.
Type
==
api
.
ServiceTypeNodePort
||
service
.
Spec
.
Type
==
api
.
ServiceTypeLoadBalancer
)
{
externalEndpoints
=
getLocalhostEndpoints
(
service
)
}
return
externalEndpoints
}
// Returns localhost endpoints for specified node port or load balancer service.
func
getLocalhostEndpoints
(
service
api
.
Service
)
[]
Endpoint
{
var
externalEndpoints
[]
Endpoint
for
_
,
port
:=
range
service
.
Spec
.
Ports
{
externalEndpoints
=
append
(
externalEndpoints
,
Endpoint
{
Host
:
"localhost"
,
Ports
:
[]
ServicePort
{
{
Protocol
:
port
.
Protocol
,
Port
:
port
.
NodePort
,
},
},
})
}
return
externalEndpoints
}
...
...
src/test/backend/replicationcontrollerdetail_test.go
浏览文件 @
3ecce3ff
...
...
@@ -493,6 +493,57 @@ func TestGetNodePortEndpoints(t *testing.T) {
}
}
func
TestGetLocalhostEndpoints
(
t
*
testing
.
T
)
{
cases
:=
[]
struct
{
service
api
.
Service
expected
[]
Endpoint
}{
{
api
.
Service
{
Spec
:
api
.
ServiceSpec
{
Ports
:
[]
api
.
ServicePort
{
{
Protocol
:
"TCP"
,
NodePort
:
30100
,
},
{
Protocol
:
"TCP"
,
NodePort
:
30101
,
},
},
},
},
[]
Endpoint
{
{
Host
:
"localhost"
,
Ports
:
[]
ServicePort
{
{
Port
:
30100
,
Protocol
:
"TCP"
,
},
},
},
{
Host
:
"localhost"
,
Ports
:
[]
ServicePort
{
{
Port
:
30101
,
Protocol
:
"TCP"
,
},
},
},
},
},
}
for
_
,
c
:=
range
cases
{
actual
:=
getLocalhostEndpoints
(
c
.
service
)
if
!
reflect
.
DeepEqual
(
actual
,
c
.
expected
)
{
t
.
Errorf
(
"getLocalhostEndpoints(%+v) == %+v, expected %+v"
,
c
.
service
,
actual
,
c
.
expected
)
}
}
}
func
TestGetInternalEndpoint
(
t
*
testing
.
T
)
{
cases
:=
[]
struct
{
serviceName
,
namespace
string
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录