Skip to content

Commit ac897bc

Browse files
committed
Merge remote-tracking branch 'origin/main' into chore-dependabot-fixes
2 parents 1dac6ca + 761efaa commit ac897bc

35 files changed

+725
-154
lines changed

Wire.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ import (
115115
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/FullMode/deploymentTypeChange"
116116
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/FullMode/resource"
117117
"github.com/devtron-labs/devtron/pkg/appWorkflow"
118+
"github.com/devtron-labs/devtron/pkg/argoRepositoryCreds"
118119
"github.com/devtron-labs/devtron/pkg/asyncProvider"
119120
"github.com/devtron-labs/devtron/pkg/attributes"
120121
"github.com/devtron-labs/devtron/pkg/build"
@@ -990,6 +991,9 @@ func InitializeApp() (*App, error) {
990991
common.NewDeploymentConfigServiceImpl,
991992
wire.Bind(new(common.DeploymentConfigService), new(*common.DeploymentConfigServiceImpl)),
992993

994+
argoRepositoryCreds.NewRepositorySecret,
995+
wire.Bind(new(argoRepositoryCreds.RepositorySecret), new(*argoRepositoryCreds.RepositorySecretImpl)),
996+
993997
repocreds.NewServiceClientImpl,
994998
wire.Bind(new(repocreds.ServiceClient), new(*repocreds.ServiceClientImpl)),
995999
)

api/restHandler/app/pipeline/configure/PipelineConfigRestHandler.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,10 @@ func NewPipelineRestHandlerImpl(pipelineBuilder pipeline.PipelineBuilder, Logger
199199
}
200200

201201
const (
202-
devtron = "DEVTRON"
203-
SSH_URL_PREFIX = "git@"
204-
HTTPS_URL_PREFIX = "https://"
202+
devtron = "DEVTRON"
203+
SSH_URL_PREFIX = "git@"
204+
HTTPS_URL_PREFIX = "https://"
205+
argoWFLogIdentifier = "argo=true"
205206
)
206207

207208
func (handler *PipelineConfigRestHandlerImpl) DeleteApp(w http.ResponseWriter, r *http.Request) {
@@ -515,7 +516,10 @@ func (handler *PipelineConfigRestHandlerImpl) streamOutput(w http.ResponseWriter
515516
if msgCounter <= lastSeenMsgId {
516517
continue
517518
}
518-
if strings.Contains(string(data), devtron) {
519+
520+
// only skip the logs of argo-wf if found at starting
521+
isAWFLog := msgCounter == 1 && strings.Contains(string(data), argoWFLogIdentifier)
522+
if strings.Contains(string(data), devtron) || isAWFLog {
519523
continue
520524
}
521525

api/restHandler/app/workflow/AppWorkflowRestHandler.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,9 +280,9 @@ func (impl AppWorkflowRestHandlerImpl) FindAppWorkflow(w http.ResponseWriter, r
280280
} else {
281281
workflows[bean3.Workflows] = []appWorkflow.AppWorkflowDto{}
282282
}
283-
isAppLevelGitOpsConfigured, err := impl.chartService.IsGitOpsRepoConfiguredForDevtronApps(appId)
283+
isAppLevelGitOpsConfigured, err := impl.chartService.IsGitOpsRepoConfiguredForDevtronApp(appId)
284284
if err != nil && !util.IsErrNoRows(err) {
285-
impl.Logger.Errorw("service err, IsGitOpsRepoConfiguredForDevtronApps", "appId", appId, "envIds", envIds, "err", err)
285+
impl.Logger.Errorw("service err, IsGitOpsRepoConfiguredForDevtronApp", "appId", appId, "envIds", envIds, "err", err)
286286
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
287287
return
288288
}

cmd/external-app/wire.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ import (
6666
repository4 "github.com/devtron-labs/devtron/pkg/appStore/chartGroup/repository"
6767
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/EAMode"
6868
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/FullMode/deployment"
69+
"github.com/devtron-labs/devtron/pkg/argoRepositoryCreds"
6970
"github.com/devtron-labs/devtron/pkg/attributes"
7071
delete2 "github.com/devtron-labs/devtron/pkg/delete"
7172
"github.com/devtron-labs/devtron/pkg/deployment/common"
@@ -245,6 +246,11 @@ func InitializeApp() (*App, error) {
245246

246247
common.NewDeploymentConfigServiceImpl,
247248
wire.Bind(new(common.DeploymentConfigService), new(*common.DeploymentConfigServiceImpl)),
249+
250+
wire.Bind(new(util4.K8sService), new(*util4.K8sServiceImpl)),
251+
252+
argoRepositoryCreds.NewRepositorySecret,
253+
wire.Bind(new(argoRepositoryCreds.RepositorySecret), new(*argoRepositoryCreds.RepositorySecretImpl)),
248254
)
249255
return &App{}, nil
250256
}

cmd/external-app/wire_gen.go

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

env_gen.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@
199199
| ORCH_HOST | http://devtroncd-orchestrator-service-prod.devtroncd/webhook/msg/nats | |
200200
| ORCH_TOKEN | | |
201201
| OTEL_COLLECTOR_URL | | |
202+
| PARALLELISM_LIMIT_FOR_TAG_PROCESSING | | |
202203
| PG_ADDR | 127.0.0.1 | |
203204
| PG_DATABASE | orchestrator | |
204205
| PG_EXPORT_PROM_METRICS | false | |

internal/sql/repository/deploymentConfig/repository.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,17 +134,15 @@ func (impl *RepositoryImpl) GetAppLevelConfigByAppIds(appIds []int) ([]*Deployme
134134
func (impl *RepositoryImpl) GetAppAndEnvLevelConfigsInBulk(appIdToEnvIdsMap map[int][]int) ([]*DeploymentConfig, error) {
135135
var result []*DeploymentConfig
136136
err := impl.dbConnection.Model(&result).
137-
WhereGroup(func(query *orm.Query) (*orm.Query, error) {
137+
WhereOrGroup(func(query *orm.Query) (*orm.Query, error) {
138138
for appId, envIds := range appIdToEnvIdsMap {
139139
if len(envIds) == 0 {
140140
continue
141141
}
142-
query = query.WhereOr(" app_id = ? and environment_id in (?) and active=true ", appId, pg.In(envIds))
142+
query = query.Where("app_id = ?", appId).Where("environment_id in (?)", pg.In((envIds))).Where("active = ?", true)
143143
}
144144
return query, nil
145-
}).
146-
Where("active = ?", true).
147-
Select()
145+
}).Select()
148146
return result, err
149147
}
150148

internal/sql/repository/pipelineConfig/PipelineRepository.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,11 @@ type PipelineRepository interface {
100100
FindAllPipelineCreatedCountInLast24Hour() (pipelineCount int, err error)
101101
FindAllDeletedPipelineCountInLast24Hour() (pipelineCount int, err error)
102102
FindActiveByEnvId(envId int) (pipelines []*Pipeline, err error)
103+
FindActivePipelineAppIdsByEnvId(envId int) ([]int, error)
103104
FindActivePipelineByEnvId(envId int) (pipelines []*Pipeline, err error)
104105
FindActiveByEnvIds(envId []int) (pipelines []*Pipeline, err error)
105106
FindActiveByInFilter(envId int, appIdIncludes []int) (pipelines []*Pipeline, err error)
107+
FindActivePipelineAppIdsByInFilter(envId int, appIdIncludes []int) ([]int, error)
106108
FindActiveByNotFilter(envId int, appIdExcludes []int) (pipelines []*Pipeline, err error)
107109
FindAllPipelinesByChartsOverrideAndAppIdAndChartId(chartOverridden bool, appId int, chartId int) (pipelines []*Pipeline, err error)
108110
FindActiveByAppIdAndPipelineId(appId int, pipelineId int) ([]*Pipeline, error)
@@ -128,6 +130,7 @@ type PipelineRepository interface {
128130
FindWithEnvironmentByCiIds(ctx context.Context, cIPipelineIds []int) ([]*Pipeline, error)
129131
FindDeploymentAppTypeByAppIdAndEnvId(appId, envId int) (string, error)
130132
FindByAppIdToEnvIdsMapping(appIdToEnvIds map[int][]int) ([]*Pipeline, error)
133+
FindDeploymentAppTypeByIds(ids []int) (pipelines []*Pipeline, err error)
131134
}
132135

133136
type CiArtifactDTO struct {
@@ -483,6 +486,15 @@ func (impl PipelineRepositoryImpl) FindActiveByEnvId(envId int) (pipelines []*Pi
483486
return pipelines, err
484487
}
485488

489+
func (impl PipelineRepositoryImpl) FindActivePipelineAppIdsByEnvId(envId int) ([]int, error) {
490+
var appIds []int
491+
err := impl.dbConnection.Model((*Pipeline)(nil)).Column("app_id").
492+
Where("environment_id = ?", envId).
493+
Where("deleted = ?", false).
494+
Select(&appIds)
495+
return appIds, err
496+
}
497+
486498
func (impl PipelineRepositoryImpl) FindActivePipelineByEnvId(envId int) (pipelines []*Pipeline, err error) {
487499
err = impl.dbConnection.Model(&pipelines).Column("pipeline.*", "App", "Environment").
488500
Where("environment_id = ?", envId).
@@ -509,6 +521,15 @@ func (impl PipelineRepositoryImpl) FindActiveByInFilter(envId int, appIdIncludes
509521
return pipelines, err
510522
}
511523

524+
func (impl PipelineRepositoryImpl) FindActivePipelineAppIdsByInFilter(envId int, appIdIncludes []int) ([]int, error) {
525+
var appIds []int
526+
err := impl.dbConnection.Model((*Pipeline)(nil)).Column("app_id").
527+
Where("environment_id = ?", envId).
528+
Where("app_id in (?)", pg.In(appIdIncludes)).
529+
Where("deleted = ?", false).Select(&appIds)
530+
return appIds, err
531+
}
532+
512533
func (impl PipelineRepositoryImpl) FindActiveByNotFilter(envId int, appIdExcludes []int) (pipelines []*Pipeline, err error) {
513534
err = impl.dbConnection.Model(&pipelines).Column("pipeline.*", "App", "Environment").
514535
Where("environment_id = ?", envId).
@@ -812,3 +833,9 @@ func (impl PipelineRepositoryImpl) FindByAppIdToEnvIdsMapping(appIdToEnvIds map[
812833
Select()
813834
return pipelines, err
814835
}
836+
837+
func (impl PipelineRepositoryImpl) FindDeploymentAppTypeByIds(ids []int) (pipelines []*Pipeline, err error) {
838+
err = impl.dbConnection.Model(&pipelines).Column("id", "app_id", "env_id", "deployment_app_type").
839+
Where("id in (?)", pg.In(ids)).Where("deleted = ?", false).Select()
840+
return pipelines, err
841+
}

pkg/appStore/chartGroup/ChartGroupService.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -963,7 +963,17 @@ func (impl *ChartGroupServiceImpl) performDeployStageOnAcd(installedAppVersion *
963963
installedAppVersion.Status == appStoreBean.GIT_ERROR {
964964
//step 2 git operation pull push
965965
//TODO: save git Timeline here
966-
appStoreGitOpsResponse, err := impl.fullModeDeploymentService.GenerateManifestAndPerformGitOperations(installedAppVersion)
966+
appStoreAppVersion, err := impl.appStoreApplicationVersionRepository.FindById(installedAppVersion.AppStoreVersion)
967+
if err != nil {
968+
impl.logger.Errorw("fetching error", "err", err)
969+
return nil, err
970+
}
971+
err = impl.fullModeDeploymentService.CreateArgoRepoSecretIfNeeded(appStoreAppVersion)
972+
if err != nil {
973+
impl.logger.Errorw("error in creating argo app repository secret", "appStoreApplicationVersionId", appStoreAppVersion.Id, "err", err)
974+
return nil, err
975+
}
976+
appStoreGitOpsResponse, err := impl.fullModeDeploymentService.GenerateManifestAndPerformGitOperations(installedAppVersion, appStoreAppVersion)
967977
if err != nil {
968978
impl.logger.Errorw(" error", "err", err)
969979
_, err = impl.appStoreDeploymentDBService.AppStoreDeployOperationStatusUpdate(installedAppVersion.InstalledAppId, appStoreBean.GIT_ERROR)

pkg/appStore/installedApp/service/AppStoreDeploymentDBService.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -623,11 +623,6 @@ func (impl *AppStoreDeploymentDBServiceImpl) createAppForAppStore(createRequest
623623
func (impl *AppStoreDeploymentDBServiceImpl) validateAndGetOverrideDeploymentAppType(installAppVersionRequest *appStoreBean.InstallAppVersionDTO, isGitOpsConfigured bool) (overrideDeploymentType string, err error) {
624624
// initialise OverrideDeploymentType to the given DeploymentType
625625
overrideDeploymentType = installAppVersionRequest.DeploymentAppType
626-
appStoreAppVersion, err := impl.appStoreApplicationVersionRepository.FindById(installAppVersionRequest.AppStoreVersion)
627-
if err != nil {
628-
impl.logger.Errorw("error in fetching app store application version", "err", err)
629-
return overrideDeploymentType, err
630-
}
631626

632627
// virtual environments only supports Manifest Download
633628
if installAppVersionRequest.Environment.IsVirtualEnvironment && util.IsManifestPush(installAppVersionRequest.DeploymentAppType) {
@@ -641,8 +636,7 @@ func (impl *AppStoreDeploymentDBServiceImpl) validateAndGetOverrideDeploymentApp
641636
}
642637

643638
// OCI chart currently supports HELM installation only
644-
isOCIRepo := appStoreAppVersion.AppStore.DockerArtifactStore != nil
645-
if isOCIRepo || getAppInstallationMode(installAppVersionRequest.AppOfferingMode) == globalUtil.SERVER_MODE_HYPERION {
639+
if getAppInstallationMode(installAppVersionRequest.AppOfferingMode) == globalUtil.SERVER_MODE_HYPERION {
646640
overrideDeploymentType = util.PIPELINE_DEPLOYMENT_TYPE_HELM
647641
} else {
648642
overrideDeploymentType, err = impl.deploymentTypeOverrideService.ValidateAndOverrideDeploymentAppType(overrideDeploymentType, isGitOpsConfigured, installAppVersionRequest.EnvironmentId)

pkg/appStore/installedApp/service/AppStoreDeploymentService.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,21 @@ func (impl *AppStoreDeploymentServiceImpl) InstallApp(installAppVersionRequest *
164164

165165
var gitOpsResponse *bean2.AppStoreGitOpsResponse
166166
if installedAppDeploymentAction.PerformGitOps {
167-
manifest, err := impl.fullModeDeploymentService.GenerateManifest(installAppVersionRequest)
167+
appStoreAppVersion, err := impl.appStoreApplicationVersionRepository.FindById(installAppVersionRequest.AppStoreVersion)
168+
if err != nil {
169+
impl.logger.Errorw("fetching error", "err", err)
170+
return nil, err
171+
}
172+
manifest, err := impl.fullModeDeploymentService.GenerateManifest(installAppVersionRequest, appStoreAppVersion)
168173
if err != nil {
169174
impl.logger.Errorw("error in performing manifest and git operations", "err", err)
170175
return nil, err
171176
}
177+
err = impl.fullModeDeploymentService.CreateArgoRepoSecretIfNeeded(appStoreAppVersion)
178+
if err != nil {
179+
impl.logger.Errorw("error in creating argo app repository secret", "appStoreApplicationVersionId", appStoreAppVersion.Id, "err", err)
180+
return nil, err
181+
}
172182
gitOpsResponse, err = impl.fullModeDeploymentService.GitOpsOperations(manifest, installAppVersionRequest)
173183
if err != nil {
174184
impl.logger.Errorw("error in doing gitops operation", "err", err)
@@ -729,12 +739,17 @@ func (impl *AppStoreDeploymentServiceImpl) UpdateInstalledApp(ctx context.Contex
729739
// manifest contains ChartRepoName where the valuesConfig and requirementConfig files will get committed
730740
// and that gitOpsRepoUrl is extracted from db inside GenerateManifest func and not from the current
731741
// orchestrator cm prefix and appName.
732-
manifest, err := impl.fullModeDeploymentService.GenerateManifest(upgradeAppRequest)
742+
manifest, err := impl.fullModeDeploymentService.GenerateManifest(upgradeAppRequest, appStoreAppVersion)
733743
if err != nil {
734744
impl.logger.Errorw("error in generating manifest for helm apps", "err", err)
735745
_ = impl.appStoreDeploymentDBService.UpdateInstalledAppVersionHistoryStatus(upgradeAppRequest.InstalledAppVersionHistoryId, pipelineConfig.WorkflowFailed)
736746
return nil, err
737747
}
748+
err = impl.fullModeDeploymentService.CreateArgoRepoSecretIfNeeded(appStoreAppVersion)
749+
if err != nil {
750+
impl.logger.Errorw("error in creating argo app repository secret", "appStoreApplicationVersionId", appStoreAppVersion.Id, "err", err)
751+
return nil, err
752+
}
738753
// required if gitOps repo name is changed, gitOps repo name will change if env variable which we use as suffix changes
739754
monoRepoMigrationRequired = impl.checkIfMonoRepoMigrationRequired(installedApp, deploymentConfig)
740755
argocdAppName := installedApp.App.AppName + "-" + installedApp.Environment.Name

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -414,11 +414,11 @@ func (impl *EAModeDeploymentServiceImpl) GitOpsOperations(manifestResponse *bean
414414
return nil, errors.New("this is not implemented")
415415
}
416416

417-
func (impl *EAModeDeploymentServiceImpl) GenerateManifestAndPerformGitOperations(installAppVersionRequest *appStoreBean.InstallAppVersionDTO) (*bean.AppStoreGitOpsResponse, error) {
417+
func (impl *EAModeDeploymentServiceImpl) GenerateManifestAndPerformGitOperations(installAppVersionRequest *appStoreBean.InstallAppVersionDTO, appStoreApplicationVersion *appStoreDiscoverRepository.AppStoreApplicationVersion) (*bean.AppStoreGitOpsResponse, error) {
418418
return nil, errors.New("this is not implemented")
419419
}
420420

421-
func (impl *EAModeDeploymentServiceImpl) GenerateManifest(installAppVersionRequest *appStoreBean.InstallAppVersionDTO) (manifestResponse *bean.AppStoreManifestResponse, err error) {
421+
func (impl *EAModeDeploymentServiceImpl) GenerateManifest(installAppVersionRequest *appStoreBean.InstallAppVersionDTO, appStoreApplicationVersion *appStoreDiscoverRepository.AppStoreApplicationVersion) (manifestResponse *bean.AppStoreManifestResponse, err error) {
422422
return nil, errors.New("this is not implemented")
423423
}
424424

@@ -445,3 +445,7 @@ func (impl *EAModeDeploymentServiceImpl) DeleteACD(acdAppName string, ctx contex
445445
func (impl *EAModeDeploymentServiceImpl) GetAcdAppGitOpsRepoURL(appName string, environmentName string) (string, error) {
446446
return "", errors.New("this is not implemented")
447447
}
448+
449+
func (impl *EAModeDeploymentServiceImpl) CreateArgoRepoSecretIfNeeded(appStoreApplicationVersion *appStoreDiscoverRepository.AppStoreApplicationVersion) error {
450+
return errors.New("this is not implemented")
451+
}

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
client "github.com/devtron-labs/devtron/api/helm-app/service"
2626
"github.com/devtron-labs/devtron/internal/sql/repository/pipelineConfig/bean/timelineStatus"
2727
"github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/common"
28+
"github.com/devtron-labs/devtron/pkg/argoRepositoryCreds"
2829
repository5 "github.com/devtron-labs/devtron/pkg/cluster/repository"
2930
"github.com/devtron-labs/devtron/pkg/deployment/common"
3031
commonBean "github.com/devtron-labs/devtron/pkg/deployment/gitOps/common/bean"
@@ -102,6 +103,7 @@ type FullModeDeploymentServiceImpl struct {
102103
environmentRepository repository5.EnvironmentRepository
103104
deploymentConfigService common.DeploymentConfigService
104105
chartTemplateService util.ChartTemplateService
106+
RepositorySecretService argoRepositoryCreds.RepositorySecret
105107
}
106108

107109
func NewFullModeDeploymentServiceImpl(
@@ -127,7 +129,8 @@ func NewFullModeDeploymentServiceImpl(
127129
gitOpsValidationService validation.GitOpsValidationService,
128130
environmentRepository repository5.EnvironmentRepository,
129131
deploymentConfigService common.DeploymentConfigService,
130-
chartTemplateService util.ChartTemplateService) *FullModeDeploymentServiceImpl {
132+
chartTemplateService util.ChartTemplateService,
133+
RepositorySecretService argoRepositoryCreds.RepositorySecret) *FullModeDeploymentServiceImpl {
131134
return &FullModeDeploymentServiceImpl{
132135
Logger: logger,
133136
acdClient: acdClient,
@@ -152,6 +155,7 @@ func NewFullModeDeploymentServiceImpl(
152155
environmentRepository: environmentRepository,
153156
deploymentConfigService: deploymentConfigService,
154157
chartTemplateService: chartTemplateService,
158+
RepositorySecretService: RepositorySecretService,
155159
}
156160
}
157161

0 commit comments

Comments
 (0)