Skip to content

Commit 03df24d

Browse files
committed
Merge branch 'main' into develop-main-sync-2jun-1
2 parents a455807 + 4ea9144 commit 03df24d

File tree

9 files changed

+41
-68
lines changed

9 files changed

+41
-68
lines changed

cmd/external-app/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.

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

0 commit comments

Comments
 (0)