Skip to content

Commit 04a0842

Browse files
Merge pull request #1070 from renyunkang/delete-ns
delete devops namespace when deleting devops project
2 parents 168671e + e9e5c0a commit 04a0842

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

controllers/jenkins/devopsproject/devopsproject_controller.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,21 @@ func (c *Controller) syncHandler(key string) error {
342342
}
343343

344344
if delSuccess {
345+
// find all namespaces with the prefix of devopsproject
346+
namespaces, err := c.namespaceLister.List(labels.SelectorFromSet(labels.Set{constants.DevOpsProjectLabelKey: project.Name}))
347+
if err != nil {
348+
klog.ErrorS(err, fmt.Sprintf("failed to list namespaces when deleting devopsproject %s", key))
349+
return err
350+
}
351+
for _, ns := range namespaces {
352+
klog.Infof("deleting namespace %s for devopsproject %s", ns.Name, project.Name)
353+
err := c.client.CoreV1().Namespaces().Delete(context.Background(), ns.Name, metav1.DeleteOptions{})
354+
if err != nil && !errors.IsNotFound(err) {
355+
// do not return error, continue to delete other namespaces
356+
klog.ErrorS(err, fmt.Sprintf("failed to delete namespace %s for devopsproject %s", ns.Name, project.Name))
357+
}
358+
}
359+
345360
project.ObjectMeta.Finalizers = sliceutil.RemoveString(project.ObjectMeta.Finalizers, func(item string) bool {
346361
return item == devopsv1alpha3.DevOpsProjectFinalizerName
347362
})

0 commit comments

Comments
 (0)