Skip to content

Commit 4ea9144

Browse files
fix: ea mode fixes (#6624)
* project deletion fix * delete cluster handling * update error handling in DeleteClusterSecret to avoid blocking on unreachable clusters
1 parent 4719ee4 commit 4ea9144

File tree

5 files changed

+22
-15
lines changed

5 files changed

+22
-15
lines changed

cmd/external-app/wire_gen.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/cluster/ClusterService.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -602,15 +602,6 @@ func (impl *ClusterServiceImpl) DeleteFromDb(bean *bean.ClusterBean, userId int3
602602
impl.logger.Errorw("error in deleting cluster", "id", bean.Id, "err", err)
603603
return "", err
604604
}
605-
k8sClient, err := impl.K8sUtil.GetCoreV1ClientInCluster()
606-
if err != nil {
607-
impl.logger.Errorw("error in getting in cluster k8s client", "err", err, "clusterName", bean.ClusterName)
608-
return "", nil
609-
}
610-
// TODO Asutosh: why we maintain this duplicate code ??
611-
secretName := ParseSecretNameForKubelinkInformer(bean.Id)
612-
err = impl.K8sUtil.DeleteSecret(clusterBean.DefaultNamespace, secretName, k8sClient)
613-
impl.logger.Errorw("error in deleting secret", "error", err)
614605
return existingCluster.ClusterName, nil
615606
}
616607

pkg/delete/DeleteService.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package delete
1919
import (
2020
"fmt"
2121
"github.com/devtron-labs/common-lib/utils/k8s"
22+
appRepository "github.com/devtron-labs/devtron/internal/sql/repository/app"
2223
dockerRegistryRepository "github.com/devtron-labs/devtron/internal/sql/repository/dockerRegistry"
2324
"github.com/devtron-labs/devtron/internal/util"
2425
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/repository"
@@ -58,6 +59,7 @@ type DeleteServiceImpl struct {
5859
dockerRegistryRepository dockerRegistryRepository.DockerArtifactStoreRepository
5960
K8sUtil k8s.K8sService
6061
k8sInformerFactory informer.K8sInformerFactory
62+
appRepository appRepository.AppRepository
6163
}
6264

6365
func NewDeleteServiceImpl(logger *zap.SugaredLogger,
@@ -70,6 +72,7 @@ func NewDeleteServiceImpl(logger *zap.SugaredLogger,
7072
dockerRegistryRepository dockerRegistryRepository.DockerArtifactStoreRepository,
7173
k8sInformerFactory informer.K8sInformerFactory,
7274
K8sUtil k8s.K8sService,
75+
appRepository appRepository.AppRepository,
7376
) *DeleteServiceImpl {
7477
return &DeleteServiceImpl{
7578
logger: logger,
@@ -82,6 +85,7 @@ func NewDeleteServiceImpl(logger *zap.SugaredLogger,
8285
dockerRegistryRepository: dockerRegistryRepository,
8386
K8sUtil: K8sUtil,
8487
k8sInformerFactory: k8sInformerFactory,
88+
appRepository: appRepository,
8589
}
8690
}
8791

@@ -94,7 +98,8 @@ func (impl DeleteServiceImpl) DeleteCluster(deleteRequest *bean2.ClusterBean, us
9498
err = impl.DeleteClusterSecret(deleteRequest, err)
9599
if err != nil {
96100
impl.logger.Errorw("error in deleting cluster secret", "clusterId", deleteRequest.Id, "error", err)
97-
return err
101+
// We are not returning error as it is not a blocking call as cluster can be unreachable at that time, and we have already deleted cluster from db.
102+
//return err
98103
}
99104
impl.k8sInformerFactory.DeleteClusterFromCache(clusterName)
100105
return nil
@@ -121,7 +126,17 @@ func (impl DeleteServiceImpl) DeleteEnvironment(deleteRequest *bean.EnvironmentB
121126
return nil
122127
}
123128
func (impl DeleteServiceImpl) DeleteTeam(deleteRequest *bean3.TeamRequest) error {
124-
err := impl.teamService.Delete(deleteRequest)
129+
//finding if this project is used in some app; if yes, will not perform delete operation
130+
apps, err := impl.appRepository.FindAppsByTeamId(deleteRequest.Id)
131+
if err != nil && err != pg.ErrNoRows {
132+
impl.logger.Errorw("err in deleting team", "teamId", deleteRequest.Id, "err", err)
133+
return err
134+
}
135+
if len(apps) > 0 {
136+
impl.logger.Errorw("err in deleting team, found apps in team", "teamName", deleteRequest.Name, "err", err)
137+
return fmt.Errorf(" Please delete all apps in this project before deleting this project")
138+
}
139+
err = impl.teamService.Delete(deleteRequest)
125140
if err != nil {
126141
impl.logger.Errorw("error in deleting team", "err", err, "deleteRequest", deleteRequest)
127142
return err

pkg/delete/DeleteServiceExtended.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,8 @@ func (impl DeleteServiceExtendedImpl) DeleteCluster(deleteRequest *bean2.Cluster
9999
err = impl.DeleteClusterSecret(deleteRequest, err)
100100
if err != nil {
101101
impl.logger.Errorw("error in deleting cluster secret", "clusterId", deleteRequest.Id, "error", err)
102-
return err
102+
// We are not returning error as it is not a blocking call as cluster can be unreachable at that time, and we have already deleted cluster from db.
103+
//return err
103104
}
104105
impl.k8sInformerFactory.DeleteClusterFromCache(clusterName)
105106
return nil

wire_gen.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)