Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDILab开源决策智能平台
DI-orchestrator
提交
6cbd794c
D
DI-orchestrator
项目概览
OpenDILab开源决策智能平台
/
DI-orchestrator
上一次同步 2 年多
通知
1
Star
78
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DI-orchestrator
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6cbd794c
编写于
7月 17, 2021
作者:
L
liqingping
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: ignore pod and service AlreadyExsists error
上级
38671351
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
9 addition
and
19 deletion
+9
-19
controllers/dijob.go
controllers/dijob.go
+2
-4
controllers/pod.go
controllers/pod.go
+1
-1
server/http/dijob.go
server/http/dijob.go
+3
-12
server/http/pod.go
server/http/pod.go
+3
-2
未找到文件。
controllers/dijob.go
浏览文件 @
6cbd794c
...
...
@@ -54,10 +54,8 @@ func (r *DIJobReconciler) reconcileReplicas(ctx context.Context, job *div1alpha1
envs
[
dicommon
.
CoordinatorURLEnv
]
=
coorurl
diutil
.
AddEnvsToPod
(
coorpod
,
envs
)
if
coordinator
==
nil
{
if
err
:=
r
.
createPodAndService
(
ctx
,
job
,
coorpod
,
coorsvc
);
err
!=
nil
{
return
err
}
if
err
:=
r
.
createPodAndService
(
ctx
,
job
,
coorpod
,
coorsvc
);
err
!=
nil
{
return
err
}
// update job status
...
...
controllers/pod.go
浏览文件 @
6cbd794c
...
...
@@ -45,7 +45,7 @@ func (r *DIJobReconciler) reconcilePodsAndServices(ctx context.Context, job *div
gpus
:=
int
(
rs
.
GPU
.
Value
())
diutil
.
AddPortsToService
(
svc
,
gpus
,
port
)
}
if
err
:=
r
.
createService
(
ctx
,
job
,
svc
);
err
!=
nil
{
if
err
:=
r
.
createService
(
ctx
,
job
,
svc
);
err
!=
nil
&&
!
errors
.
IsAlreadyExists
(
err
)
{
return
err
}
}
...
...
server/http/dijob.go
浏览文件 @
6cbd794c
...
...
@@ -150,15 +150,6 @@ func (s *DIServer) createReplicas(
replicaType
string
,
agtemplate
*
corev1
.
PodTemplateSpec
)
([]
string
,
error
)
{
var
defaultPort
int32
switch
replicaType
{
case
dicommon
.
CollectorName
:
defaultPort
=
dicommon
.
DefaultCollectorPort
case
dicommon
.
LearnerName
:
defaultPort
=
dicommon
.
DefaultLearnerPort
default
:
}
results
:=
[]
string
{}
// create pods and services
for
i
:=
0
;
i
<
resources
.
Replicas
;
i
++
{
...
...
@@ -209,7 +200,7 @@ func (s *DIServer) createReplicas(
// build ddp learner pod
pod
,
svc
,
_
,
err
=
buildDDPLearnerPodAndService
(
template
,
ownRefer
,
aggOwnRefer
,
jobName
,
namespace
,
replicaType
,
defaultPort
,
*
replicaResource
,
volumes
)
jobName
,
namespace
,
replicaType
,
*
replicaResource
,
volumes
)
if
err
!=
nil
{
return
results
,
err
}
...
...
@@ -275,7 +266,7 @@ func (s *DIServer) createReplicas(
// build ddp learner pod
pod
,
svc
,
_
,
err
=
buildDDPLearnerPodAndService
(
template
,
ownRefer
,
aggOwnRefer
,
jobName
,
namespace
,
replicaType
,
defaultPort
,
resources
,
volumes
)
jobName
,
namespace
,
replicaType
,
resources
,
volumes
)
if
err
!=
nil
{
return
results
,
err
}
...
...
@@ -327,7 +318,7 @@ func buildDDPLearnerPodAndService(template *corev1.PodTemplateSpec,
ownRefer
metav1
.
OwnerReference
,
aggOwnRefer
metav1
.
OwnerReference
,
jobName
,
namespace
,
replicaType
string
,
defaultPort
int32
,
resources
commontypes
.
ResourceQuantity
,
volumes
[]
corev1
.
Volume
)
(
*
corev1
.
Pod
,
*
corev1
.
Service
,
int32
,
error
)
{
resources
commontypes
.
ResourceQuantity
,
volumes
[]
corev1
.
Volume
)
(
*
corev1
.
Pod
,
*
corev1
.
Service
,
int32
,
error
)
{
pod
,
svc
,
port
,
err
:=
diutil
.
BuildPodAndService
(
template
.
DeepCopy
(),
ownRefer
,
jobName
,
namespace
,
dicommon
.
DDPLearnerName
,
volumes
)
if
err
!=
nil
{
...
...
server/http/pod.go
浏览文件 @
6cbd794c
...
...
@@ -7,6 +7,7 @@ import (
mapset
"github.com/deckarep/golang-set"
corev1
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/errors"
k8serrors
"k8s.io/apimachinery/pkg/api/errors"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
...
...
@@ -125,7 +126,7 @@ func (s *DIServer) getServiceByKey(key string) (*corev1.Service, error) {
func
(
s
*
DIServer
)
createPodAndService
(
namespace
string
,
pod
*
corev1
.
Pod
,
service
*
corev1
.
Service
)
(
*
corev1
.
Pod
,
error
)
{
// create pod
newpod
,
err
:=
s
.
createPod
(
namespace
,
pod
)
if
err
!=
nil
{
if
err
!=
nil
&&
!
errors
.
IsAlreadyExists
(
err
)
{
return
nil
,
err
}
...
...
@@ -143,7 +144,7 @@ func (s *DIServer) createPodAndService(namespace string, pod *corev1.Pod, servic
service
.
OwnerReferences
=
append
(
service
.
OwnerReferences
,
ownRefer
)
// create service
if
err
:=
s
.
createService
(
namespace
,
service
);
err
!=
nil
{
if
err
:=
s
.
createService
(
namespace
,
service
);
err
!=
nil
&&
!
errors
.
IsAlreadyExists
(
err
)
{
return
newpod
,
err
}
return
newpod
,
nil
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录