Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
水淹萌龙
kubesphere
提交
5c8a087a
K
kubesphere
项目概览
水淹萌龙
/
kubesphere
与 Fork 源项目一致
Fork自
KubeSphere / kubesphere
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kubesphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
5c8a087a
编写于
4月 14, 2019
作者:
J
Jeff
提交者:
zryfish
4月 15, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add sidecar to router
上级
8e862caf
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
26 addition
and
24 deletion
+26
-24
pkg/models/routers/routers.go
pkg/models/routers/routers.go
+26
-24
未找到文件。
pkg/models/routers/routers.go
浏览文件 @
5c8a087a
...
...
@@ -44,6 +44,11 @@ var RouterNodeIPLabelSelector = map[string]string{
"node-role.kubernetes.io/master"
:
""
,
}
const
(
SERVICEMESH_ENABLED
=
"servicemesh.kubesphere.io/enabled"
SIDECAR_INJECT
=
"sidecar.istio.io/inject"
)
// get master node ip, if there are multiple master nodes,
// choose first one according by their names alphabetically
func
getMasterNodeIp
()
string
{
...
...
@@ -168,6 +173,13 @@ func CreateRouter(namespace string, routerType corev1.ServiceType, annotations m
yamls
,
err
:=
LoadYamls
()
injectSidecar
:=
false
if
enabled
,
ok
:=
annotations
[
SERVICEMESH_ENABLED
];
ok
{
if
enabled
==
"true"
{
injectSidecar
=
true
}
}
if
err
!=
nil
{
glog
.
Error
(
err
)
}
...
...
@@ -210,6 +222,13 @@ func CreateRouter(namespace string, routerType corev1.ServiceType, annotations m
deployment
.
Spec
.
Selector
.
MatchLabels
[
"project"
]
=
namespace
deployment
.
Spec
.
Template
.
Labels
[
"project"
]
=
namespace
if
injectSidecar
{
if
deployment
.
Spec
.
Template
.
Annotations
==
nil
{
deployment
.
Spec
.
Template
.
Annotations
=
make
(
map
[
string
]
string
,
0
)
}
deployment
.
Spec
.
Template
.
Annotations
[
SIDECAR_INJECT
]
=
"true"
}
// Isolate namespace
deployment
.
Spec
.
Template
.
Spec
.
Containers
[
0
]
.
Args
=
append
(
deployment
.
Spec
.
Template
.
Spec
.
Containers
[
0
]
.
Args
,
"--watch-namespace="
+
namespace
)
...
...
@@ -293,8 +312,6 @@ func DeleteRouter(namespace string) (*corev1.Service, error) {
// Update Ingress Controller Service, change type from NodePort to Loadbalancer or vice versa.
func
UpdateRouter
(
namespace
string
,
routerType
corev1
.
ServiceType
,
annotations
map
[
string
]
string
)
(
*
corev1
.
Service
,
error
)
{
k8sClient
:=
k8s
.
Client
()
var
router
*
corev1
.
Service
router
,
err
:=
GetRouter
(
namespace
)
...
...
@@ -309,31 +326,16 @@ func UpdateRouter(namespace string, routerType corev1.ServiceType, annotations m
return
nil
,
fmt
.
Errorf
(
"router not created yet"
)
}
// from LoadBalancer to NodePort, or vice-versa
if
router
.
Spec
.
Type
!=
routerType
{
router
,
err
=
DeleteRouter
(
namespace
)
router
,
err
=
DeleteRouter
(
namespace
)
if
err
!=
nil
{
glog
.
Error
(
err
)
}
router
,
err
=
CreateRouter
(
namespace
,
routerType
,
annotations
)
if
err
!=
nil
{
glog
.
Error
(
err
)
}
return
router
,
err
}
else
{
router
.
SetAnnotations
(
annotations
)
if
err
!=
nil
{
glog
.
Error
(
err
)
}
router
,
err
=
k8sClient
.
CoreV1
()
.
Services
(
constants
.
IngressControllerNamespace
)
.
Update
(
router
)
router
,
err
=
CreateRouter
(
namespace
,
routerType
,
annotations
)
if
err
!=
nil
{
glog
.
Error
(
err
)
return
router
,
err
}
if
err
!=
nil
{
glog
.
Error
(
err
)
}
addLoadBalancerIp
(
router
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录