Skip to content

Commit 510f775

Browse files
authored
Merge pull request #6631 from devtron-labs/develop-main-sync-2jun-1
sync: Develop main sync
2 parents efe774f + c7bf17f commit 510f775

File tree

16 files changed

+118
-105
lines changed

16 files changed

+118
-105
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.

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,8 @@ require (
307307

308308
replace (
309309
github.com/argoproj/argo-workflows/v3 v3.5.13 => github.com/devtron-labs/argo-workflows/v3 v3.5.13
310-
github.com/devtron-labs/authenticator => github.com/devtron-labs/devtron-services/authenticator v0.0.0-20250526125952-d9add5acd6a4
311-
github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250526125952-d9add5acd6a4
310+
github.com/devtron-labs/authenticator => github.com/devtron-labs/devtron-services/authenticator v0.0.0-20250602065932-06089729a1c2
311+
github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250602065932-06089729a1c2
312312
github.com/go-check/check => github.com/go-check/check v0.0.0-20180628173108-788fd7840127
313313
github.com/googleapis/gnostic => github.com/googleapis/gnostic v0.5.5
314314
k8s.io/api => k8s.io/api v0.29.7

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -829,10 +829,10 @@ github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc h1:VRRKCwnzq
829829
github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
830830
github.com/devtron-labs/argo-workflows/v3 v3.5.13 h1:3pINq0gXOSeTw2z/vYe+j80lRpSN5Rp/8mfQORh8SmU=
831831
github.com/devtron-labs/argo-workflows/v3 v3.5.13/go.mod h1:/vqxcovDPT4zqr4DjR5v7CF8ggpY1l3TSa2CIG3jmjA=
832-
github.com/devtron-labs/devtron-services/authenticator v0.0.0-20250526125952-d9add5acd6a4 h1:oN526uO6xFroV22CvVAgnXHd8rXoIdTdQQ5qjBQ3tDE=
833-
github.com/devtron-labs/devtron-services/authenticator v0.0.0-20250526125952-d9add5acd6a4/go.mod h1:FfaLDXN1ZXxyRpnskBqVIYkpkWDCzBmDgIO9xqLnxdQ=
834-
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250526125952-d9add5acd6a4 h1:6IITdigvNJgWhEQ1T0KlzsYwT18G67H32ggBM0prxpk=
835-
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250526125952-d9add5acd6a4/go.mod h1:HQVUnQI7WHwVq89Bib/18xJqM89S1+xI0O7REctMMrA=
832+
github.com/devtron-labs/devtron-services/authenticator v0.0.0-20250602065932-06089729a1c2 h1:X0pXpqQrEEt+aXck0WTTokdNs0RfTVufotoATL10shw=
833+
github.com/devtron-labs/devtron-services/authenticator v0.0.0-20250602065932-06089729a1c2/go.mod h1:FfaLDXN1ZXxyRpnskBqVIYkpkWDCzBmDgIO9xqLnxdQ=
834+
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250602065932-06089729a1c2 h1:1uzqPQQvbQVyip6UU/YN8pYwjQOD8K8rEmql7HrrsBk=
835+
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250602065932-06089729a1c2/go.mod h1:HQVUnQI7WHwVq89Bib/18xJqM89S1+xI0O7REctMMrA=
836836
github.com/devtron-labs/go-bitbucket v0.9.60-beta h1:VEx1jvDgdtDPS6A1uUFoaEi0l1/oLhbr+90xOwr6sDU=
837837
github.com/devtron-labs/go-bitbucket v0.9.60-beta/go.mod h1:GnuiCesvh8xyHeMCb+twm8lBR/kQzJYSKL28ZfObp1Y=
838838
github.com/devtron-labs/protos v0.0.3-0.20250323220609-ecf8a0f7305e h1:U6UdYbW8a7xn5IzFPd8cywjVVPfutGJCudjePAfL/Hs=

pkg/appStore/installedApp/service/EAMode/deployment/EAModeDeploymentService.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func (impl *EAModeDeploymentServiceImpl) InstallApp(installAppVersionRequest *ap
145145
}
146146
}
147147
installReleaseRequest := &gRPC.InstallReleaseRequest{
148-
ChartName: appStoreAppVersion.Name,
148+
ChartName: appStoreDeploymentCommon.GetChartNameFromAppStoreApplicationVersion(appStoreAppVersion),
149149
ChartVersion: appStoreAppVersion.Version,
150150
ValuesYaml: installAppVersionRequest.ValuesOverrideYaml,
151151
ChartRepository: chartRepository,

pkg/appStore/installedApp/service/FullMode/deployment/InstalledAppGitOpsService.go

Lines changed: 1 addition & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,8 @@ package deployment
1818

1919
import (
2020
"context"
21-
"errors"
2221
"fmt"
2322
bean2 "github.com/devtron-labs/devtron/api/bean/gitOps"
24-
"github.com/devtron-labs/devtron/internal/sql/repository/pipelineConfig/bean/timelineStatus"
2523
"github.com/devtron-labs/devtron/internal/util"
2624
appStoreBean "github.com/devtron-labs/devtron/pkg/appStore/bean"
2725
appStoreDiscoverRepository "github.com/devtron-labs/devtron/pkg/appStore/discover/repository"
@@ -245,50 +243,6 @@ func (impl *FullModeDeploymentServiceImpl) createGitOpsRepo(gitOpsRepoName strin
245243
return repoUrl, isNew, err
246244
}
247245

248-
func (impl *FullModeDeploymentServiceImpl) updateValuesYamlInGit(installAppVersionRequest *appStoreBean.InstallAppVersionDTO) (*appStoreBean.InstallAppVersionDTO, error) {
249-
valuesString, err := impl.appStoreDeploymentCommonService.GetValuesString(installAppVersionRequest.AppStoreName, installAppVersionRequest.ValuesOverrideYaml)
250-
if err != nil {
251-
impl.Logger.Errorw("error in getting values string", "err", err)
252-
return nil, err
253-
}
254-
255-
valuesGitConfig, err := impl.getGitCommitConfig(installAppVersionRequest, valuesString, appStoreBean.VALUES_YAML_FILE)
256-
if err != nil {
257-
impl.Logger.Errorw("error in getting git commit config", "err", err)
258-
}
259-
260-
commitHash, _, err := impl.gitOperationService.CommitValues(context.Background(), valuesGitConfig)
261-
if err != nil {
262-
impl.Logger.Errorw("error in git commit", "err", err)
263-
return installAppVersionRequest, errors.New(timelineStatus.TIMELINE_STATUS_GIT_COMMIT_FAILED.ToString())
264-
}
265-
//update timeline status for git commit state
266-
installAppVersionRequest.GitHash = commitHash
267-
return installAppVersionRequest, nil
268-
}
269-
270-
func (impl *FullModeDeploymentServiceImpl) updateRequirementYamlInGit(installAppVersionRequest *appStoreBean.InstallAppVersionDTO, appStoreAppVersion *appStoreDiscoverRepository.AppStoreApplicationVersion) error {
271-
requirementsString, err := impl.appStoreDeploymentCommonService.GetRequirementsString(appStoreAppVersion)
272-
if err != nil {
273-
impl.Logger.Errorw("error in getting requirements string", "err", err)
274-
return err
275-
}
276-
277-
requirementsGitConfig, err := impl.getGitCommitConfig(installAppVersionRequest, requirementsString, appStoreBean.REQUIREMENTS_YAML_FILE)
278-
if err != nil {
279-
impl.Logger.Errorw("error in getting git commit config", "err", err)
280-
return err
281-
}
282-
283-
_, _, err = impl.gitOperationService.CommitValues(context.Background(), requirementsGitConfig)
284-
if err != nil {
285-
impl.Logger.Errorw("error in values commit", "err", err)
286-
return errors.New(timelineStatus.TIMELINE_STATUS_GIT_COMMIT_FAILED.ToString())
287-
}
288-
289-
return nil
290-
}
291-
292246
// createChartProxyAndGetPath parse chart in local directory and returns path of local dir and values.yaml
293247
func (impl *FullModeDeploymentServiceImpl) createChartProxyAndGetPath(installAppVersionRequest *appStoreBean.InstallAppVersionDTO) (*util.ChartCreateResponse, error) {
294248
chartCreateRequest := adapter.ParseChartCreateRequest(installAppVersionRequest.AppName, true)
@@ -370,7 +324,7 @@ func (impl *FullModeDeploymentServiceImpl) getValuesAndRequirementForGitConfig(i
370324
}
371325

372326
}
373-
values, err := impl.appStoreDeploymentCommonService.GetValuesString(appStoreAppVersion.AppStore.Name, installAppVersionRequest.ValuesOverrideYaml)
327+
values, err := impl.appStoreDeploymentCommonService.GetValuesString(appStoreAppVersion, installAppVersionRequest.ValuesOverrideYaml)
374328
if err != nil {
375329
impl.Logger.Errorw("error in getting values fot installedAppVersionRequest", "err", err)
376330
return nil, nil, err

pkg/appStore/installedApp/service/common/AppStoreDeploymentCommonService.go

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ import (
4747

4848
type AppStoreDeploymentCommonService interface {
4949
// GetValuesString will return values string from the given valuesOverrideYaml
50-
GetValuesString(chartName, valuesOverrideYaml string) (string, error)
50+
GetValuesString(appStoreApplicationVersion *appStoreDiscoverRepository.AppStoreApplicationVersion, valuesOverrideYaml string) (string, error)
5151
// GetRequirementsString will return requirement dependencies for the given appStoreVersionId
5252
GetRequirementsString(appStoreApplicationVersion *appStoreDiscoverRepository.AppStoreApplicationVersion) (string, error)
5353
// CreateChartProxyAndGetPath parse chart in local directory and returns path of local dir and values.yaml
@@ -169,7 +169,7 @@ func (impl *AppStoreDeploymentCommonServiceImpl) GetDeploymentHistoryInfoFromDB(
169169
return values, err
170170
}
171171

172-
func (impl AppStoreDeploymentCommonServiceImpl) GetValuesString(chartName, valuesOverrideYaml string) (string, error) {
172+
func (impl AppStoreDeploymentCommonServiceImpl) GetValuesString(appStoreApplicationVersion *appStoreDiscoverRepository.AppStoreApplicationVersion, valuesOverrideYaml string) (string, error) {
173173

174174
ValuesOverrideByte, err := yaml.YAMLToJSON([]byte(valuesOverrideYaml))
175175
if err != nil {
@@ -184,7 +184,7 @@ func (impl AppStoreDeploymentCommonServiceImpl) GetValuesString(chartName, value
184184
}
185185

186186
valuesMap := make(map[string]map[string]interface{})
187-
valuesMap[chartName] = dat
187+
valuesMap[GetChartNameFromAppStoreApplicationVersion(appStoreApplicationVersion)] = dat
188188
valuesByte, err := json.Marshal(valuesMap)
189189
if err != nil {
190190
impl.logger.Errorw("error in marshaling", "err", err)
@@ -193,23 +193,29 @@ func (impl AppStoreDeploymentCommonServiceImpl) GetValuesString(chartName, value
193193
return string(valuesByte), nil
194194
}
195195

196+
func GetChartNameFromAppStoreApplicationVersion(appStoreApplicationVersion *appStoreDiscoverRepository.AppStoreApplicationVersion) string {
197+
if len(appStoreApplicationVersion.Name) > 0 {
198+
return appStoreApplicationVersion.Name //we get this from chartMetadata in app sync job, so more reliable
199+
} else {
200+
return appStoreApplicationVersion.AppStore.Name
201+
}
202+
}
203+
196204
func (impl AppStoreDeploymentCommonServiceImpl) GetRequirementsString(appStoreAppVersion *appStoreDiscoverRepository.AppStoreApplicationVersion) (string, error) {
197205

198206
dependency := appStoreBean.Dependency{
199-
Name: appStoreAppVersion.AppStore.Name,
207+
Name: GetChartNameFromAppStoreApplicationVersion(appStoreAppVersion),
200208
Version: appStoreAppVersion.Version,
201209
}
202210
if appStoreAppVersion.AppStore.ChartRepo != nil {
203211
dependency.Repository = appStoreAppVersion.AppStore.ChartRepo.Url
204212
} else if appStoreAppVersion.AppStore.DockerArtifactStore != nil {
205-
dependency.Repository = appStoreAppVersion.AppStore.DockerArtifactStore.RegistryURL
206-
repositoryURL, repositoryName, err := sanitizeRepoNameAndURLForOCIRepo(dependency.Repository, dependency.Name)
213+
repositoryURL, repositoryName, err := sanitizeRepoNameAndURLForOCIRepo(appStoreAppVersion.AppStore.DockerArtifactStore.RegistryURL, appStoreAppVersion.AppStore.Name)
207214
if err != nil {
208215
impl.logger.Errorw("error in getting sanitized repository name and url", "repositoryURL", repositoryURL, "repositoryName", repositoryName, "err", err)
209216
return "", err
210217
}
211218
dependency.Repository = repositoryURL
212-
dependency.Name = repositoryName
213219
}
214220

215221
var dependencies []appStoreBean.Dependency

pkg/cluster/ClusterService.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -606,15 +606,6 @@ func (impl *ClusterServiceImpl) DeleteFromDb(bean *bean.ClusterBean, userId int3
606606
impl.logger.Errorw("error in deleting cluster", "id", bean.Id, "err", err)
607607
return "", err
608608
}
609-
k8sClient, err := impl.K8sUtil.GetCoreV1ClientInCluster()
610-
if err != nil {
611-
impl.logger.Errorw("error in getting in cluster k8s client", "err", err, "clusterName", bean.ClusterName)
612-
return "", nil
613-
}
614-
// TODO Asutosh: why we maintain this duplicate code ??
615-
secretName := ParseSecretNameForKubelinkInformer(bean.Id)
616-
err = impl.K8sUtil.DeleteSecret(clusterBean.DefaultNamespace, secretName, k8sClient)
617-
impl.logger.Errorw("error in deleting secret", "error", err)
618609
return existingCluster.ClusterName, nil
619610
}
620611

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
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
alter table kubernetes_resource_history drop column IF EXISTS version ;
2+
alter table kubernetes_resource_history drop column IF EXISTS action_metadata;
3+
alter table kubernetes_resource_history drop column IF EXISTS resource ;

0 commit comments

Comments
 (0)