create devops job with admin ns name
Signed-off-by: runzexia <runzexia@yunify.com>
This commit is contained in:
@@ -197,18 +197,7 @@ func (c *Controller) syncHandler(key string) error {
|
||||
if !sliceutil.HasString(project.ObjectMeta.Finalizers, devopsv1alpha3.DevOpsProjectFinalizerName) {
|
||||
copyProject.ObjectMeta.Finalizers = append(copyProject.ObjectMeta.Finalizers, devopsv1alpha3.DevOpsProjectFinalizerName)
|
||||
}
|
||||
// Check project exists, otherwise we will create it.
|
||||
_, err := c.devopsClient.GetDevOpsProject(key)
|
||||
if err != nil && devopsClient.GetDevOpsStatusCode(err) != http.StatusNotFound {
|
||||
klog.Error(err, fmt.Sprintf("failed to get project %s ", key))
|
||||
return err
|
||||
} else {
|
||||
_, err := c.devopsClient.CreateDevOpsProject(key)
|
||||
if err != nil {
|
||||
klog.Error(err, fmt.Sprintf("failed to get project %s ", key))
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if project.Status.AdminNamespace != "" {
|
||||
ns, err := c.namespaceLister.Get(project.Status.AdminNamespace)
|
||||
if err != nil && !errors.IsNotFound(err) {
|
||||
@@ -244,6 +233,7 @@ func (c *Controller) syncHandler(key string) error {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
// list ns by devops project
|
||||
namespaces, err := c.namespaceLister.List(
|
||||
@@ -283,6 +273,7 @@ func (c *Controller) syncHandler(key string) error {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if !reflect.DeepEqual(copyProject, project) {
|
||||
_, err := c.kubesphereClient.DevopsV1alpha3().DevOpsProjects().Update(copyProject)
|
||||
if err != nil {
|
||||
@@ -290,6 +281,18 @@ func (c *Controller) syncHandler(key string) error {
|
||||
return err
|
||||
}
|
||||
}
|
||||
// Check project exists, otherwise we will create it.
|
||||
_, err := c.devopsClient.GetDevOpsProject(copyProject.Status.AdminNamespace)
|
||||
if err != nil && devopsClient.GetDevOpsStatusCode(err) != http.StatusNotFound {
|
||||
klog.Error(err, fmt.Sprintf("failed to get project %s ", key))
|
||||
return err
|
||||
} else {
|
||||
_, err := c.devopsClient.CreateDevOpsProject(copyProject.Status.AdminNamespace)
|
||||
if err != nil {
|
||||
klog.Error(err, fmt.Sprintf("failed to get project %s ", key))
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
// Finalizers processing logic
|
||||
|
||||
@@ -301,8 +301,8 @@ func TestDoNothing(t *testing.T) {
|
||||
f.devopsProjectLister = append(f.devopsProjectLister, project)
|
||||
f.namespaceLister = append(f.namespaceLister, ns)
|
||||
f.objects = append(f.objects, project)
|
||||
f.initDevOpsProject = []string{project.Name}
|
||||
f.expectDevOpsProject = []string{project.Name}
|
||||
f.initDevOpsProject = []string{ns.Name}
|
||||
f.expectDevOpsProject = []string{ns.Name}
|
||||
|
||||
f.run(getKey(project, t))
|
||||
}
|
||||
@@ -318,8 +318,8 @@ func TestUpdateProjectFinalizers(t *testing.T) {
|
||||
f.namespaceLister = append(f.namespaceLister, ns)
|
||||
f.objects = append(f.objects, project)
|
||||
f.kubeobjects = append(f.kubeobjects, ns)
|
||||
f.initDevOpsProject = []string{project.Name}
|
||||
f.expectDevOpsProject = []string{project.Name}
|
||||
f.initDevOpsProject = []string{ns.Name}
|
||||
f.expectDevOpsProject = []string{ns.Name}
|
||||
expectUpdateProject := project.DeepCopy()
|
||||
expectUpdateProject.Finalizers = []string{devops.DevOpsProjectFinalizerName}
|
||||
f.expectUpdateDevOpsProjectAction(expectUpdateProject)
|
||||
@@ -337,8 +337,8 @@ func TestUpdateProjectStatus(t *testing.T) {
|
||||
f.namespaceLister = append(f.namespaceLister, ns)
|
||||
f.objects = append(f.objects, project)
|
||||
f.kubeobjects = append(f.kubeobjects, ns)
|
||||
f.initDevOpsProject = []string{project.Name}
|
||||
f.expectDevOpsProject = []string{project.Name}
|
||||
f.initDevOpsProject = []string{ns.Name}
|
||||
f.expectDevOpsProject = []string{ns.Name}
|
||||
expectUpdateProject := project.DeepCopy()
|
||||
expectUpdateProject.Status.AdminNamespace = nsName
|
||||
f.expectUpdateDevOpsProjectAction(expectUpdateProject)
|
||||
@@ -356,8 +356,8 @@ func TestUpdateNsOwnerReference(t *testing.T) {
|
||||
f.namespaceLister = append(f.namespaceLister, ns)
|
||||
f.objects = append(f.objects, project)
|
||||
f.kubeobjects = append(f.kubeobjects, ns)
|
||||
f.initDevOpsProject = []string{project.Name}
|
||||
f.expectDevOpsProject = []string{project.Name}
|
||||
f.initDevOpsProject = []string{ns.Name}
|
||||
f.expectDevOpsProject = []string{ns.Name}
|
||||
expectUpdateNs := newNamespace(nsName, projectName, false, true)
|
||||
|
||||
f.expectUpdateNamespaceAction(expectUpdateNs)
|
||||
@@ -370,7 +370,7 @@ func TestCreateDevOpsProjects(t *testing.T) {
|
||||
ns := newNamespace("test-123", "test", true, true)
|
||||
f.devopsProjectLister = append(f.devopsProjectLister, project)
|
||||
f.objects = append(f.objects, project)
|
||||
f.expectDevOpsProject = []string{project.Name}
|
||||
f.expectDevOpsProject = []string{""}
|
||||
|
||||
// because generateName not work in fakeClient, so DevOpsProject would not be update
|
||||
// f.expectUpdateDevOpsProjectAction(project)
|
||||
|
||||
Reference in New Issue
Block a user