Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
a1ab775
gitops plugin checking
manish-agrawal-ai Aug 29, 2022
ce27209
removed check which was handeled by vikram's commit
manish-agrawal-ai Aug 29, 2022
16cc141
reverted code which is handleled by vikram
manish-agrawal-ai Aug 29, 2022
24fbc75
fix reverted which was handeled by vikram
manish-agrawal-ai Aug 29, 2022
d03bfbf
Merge branch 'issue_2237' into gitops_acd_integration
manish-agrawal-ai Aug 31, 2022
4c88fa8
handling module installed status
manish-agrawal-ai Aug 31, 2022
fe868af
Db script
manish-agrawal-ai Aug 31, 2022
b56e7be
fix
manish-agrawal-ai Aug 31, 2022
8e8cde8
Merge branch 'main' into gitops_acd_integration
manish-agrawal-ai Sep 1, 2022
18c881e
argocd integration checks added
vikramdevtron Sep 1, 2022
8bf88f9
module installed status moved from cache to cron
manish-agrawal-ai Sep 1, 2022
af0844d
acd module insertion fix
manish-agrawal-ai Sep 2, 2022
5ea3b38
fix
manish-agrawal-ai Sep 2, 2022
f0654ca
Merge branch 'main' into gitops_acd_integration
vikramdevtron Sep 2, 2022
44e015a
incorporate review comments
vikramdevtron Sep 2, 2022
3cd3ceb
check removed for header token for helm
vikramdevtron Sep 2, 2022
f310ce0
Merge branch 'main' into gitops_acd_integration
vikramdevtron Sep 2, 2022
8a49e75
db migration for modularisation version modified
vikramdevtron Sep 2, 2022
1bf9b8d
fixes : 1) supporting module iunsertion as installed while installing…
manish-agrawal-ai Sep 3, 2022
1d79ebd
removes tokenHeader from acdToken fetch
vikramdevtron Sep 3, 2022
a5311d1
Merge branch 'gitops_acd_integration' of https://github.com/devtron-l…
vikramdevtron Sep 3, 2022
5b6d6ce
updated updateArgoCdUserDetail remove gitops check
vikramdevtron Sep 3, 2022
5f9ae4a
argocd user creation on git ops creation
vikramdevtron Sep 3, 2022
02b975c
db query fix
manish-agrawal-ai Sep 3, 2022
0e9ef11
Merge branch 'main' into gitops_acd_integration
vikramdevtron Sep 4, 2022
1b797de
migration file seq modified for acd module 73 to 74
vikramdevtron Sep 4, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions App.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,7 @@ func NewApp(router *router.MuxRouter,
sessionManager2 *authMiddleware.SessionManager,
) *App {
//check argo connection
err := versionService.CheckVersion()
if err != nil {
log.Panic(err)
}
//todo - check argo-cd version on acd integration installation
app := &App{
MuxRouter: router,
Logger: Logger,
Expand Down
4 changes: 2 additions & 2 deletions api/appStore/InstalledAppRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ func (handler *InstalledAppRestHandlerImpl) FetchAppDetailsForInstalledApp(w htt
}

func (handler *InstalledAppRestHandlerImpl) fetchResourceTree(w http.ResponseWriter, r *http.Request, token string, appDetail *bean2.AppDetailContainer) {
if appDetail.DeploymentAppType == util.PIPELINE_DEPLOYMENT_TYPE_ACD {
if util.IsAcdApp(appDetail.DeploymentAppType) {
acdAppName := appDetail.AppName + "-" + appDetail.EnvironmentName
query := &application2.ResourcesQuery{
ApplicationName: &acdAppName,
Expand Down Expand Up @@ -392,7 +392,7 @@ func (handler *InstalledAppRestHandlerImpl) fetchResourceTree(w http.ResponseWri
}
appDetail.ResourceTree = util2.InterfaceToMapAdapter(resp)
handler.Logger.Debugf("application %s in environment %s had status %+v\n", appDetail.InstalledAppId, appDetail.EnvironmentId, resp)
} else if appDetail.DeploymentAppType == util.PIPELINE_DEPLOYMENT_TYPE_HELM {
} else if util.IsHelmApp(appDetail.DeploymentAppType) {
config, err := handler.helmAppService.GetClusterConf(appDetail.ClusterId)
if err != nil {
handler.Logger.Errorw("error in fetching cluster detail", "err", err)
Expand Down
17 changes: 9 additions & 8 deletions api/appStore/deployment/AppStoreDeploymentRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) InstallApp(w http.ResponseWrite

//rbac block starts from here
var rbacObject string
if util2.GetDevtronVersion().ServerMode == util2.SERVER_MODE_HYPERION {
if util2.IsBaseStack() {
rbacObject = handler.enforcerUtilHelm.GetHelmObjectByClusterId(request.ClusterId, request.Namespace, request.AppName)
} else {
rbacObject = handler.enforcerUtil.GetHelmObjectByProjectIdAndEnvId(request.TeamId, request.EnvironmentId)
Expand Down Expand Up @@ -142,7 +142,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) InstallApp(w http.ResponseWrite
}
}(ctx.Done(), cn.CloseNotify())
}
if util2.GetDevtronVersion().ServerMode == util2.SERVER_MODE_HYPERION || request.AppOfferingMode == util2.SERVER_MODE_HYPERION {
if util2.IsBaseStack() || util2.IsHelmApp(request.AppOfferingMode) {
ctx = context.WithValue(r.Context(), "token", token)
} else {
acdToken, err := handler.argoUserService.GetLatestDevtronArgoCdUserToken()
Expand Down Expand Up @@ -195,7 +195,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) GetInstalledAppsByAppStoreId(w

//rbac block starts from here
var rbacObject string
if app.AppOfferingMode == util2.SERVER_MODE_HYPERION {
if util2.IsHelmApp(app.AppOfferingMode) {
rbacObject = handler.enforcerUtilHelm.GetHelmObjectByClusterId(app.ClusterId, app.Namespace, app.AppName)
} else {
rbacObject = handler.enforcerUtil.GetHelmObjectByAppNameAndEnvId(app.AppName, app.EnvironmentId)
Expand All @@ -212,6 +212,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) GetInstalledAppsByAppStoreId(w
}

func (handler AppStoreDeploymentRestHandlerImpl) DeleteInstalledApp(w http.ResponseWriter, r *http.Request) {

userId, err := handler.userAuthService.GetLoggedInUser(r)
if userId == 0 || err != nil {
common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized)
Expand Down Expand Up @@ -247,7 +248,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) DeleteInstalledApp(w http.Respo

//rbac block starts from here
var rbacObject string
if installedApp.AppOfferingMode == util2.SERVER_MODE_HYPERION {
if util2.IsHelmApp(installedApp.AppOfferingMode) {
rbacObject = handler.enforcerUtilHelm.GetHelmObjectByClusterId(installedApp.ClusterId, installedApp.Namespace, installedApp.AppName)
} else {
rbacObject = handler.enforcerUtil.GetHelmObjectByAppNameAndEnvId(installedApp.AppName, installedApp.EnvironmentId)
Expand Down Expand Up @@ -278,7 +279,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) DeleteInstalledApp(w http.Respo
}
}(ctx.Done(), cn.CloseNotify())
}
if util2.GetDevtronVersion().ServerMode == util2.SERVER_MODE_HYPERION || request.AppOfferingMode == util2.SERVER_MODE_HYPERION {
if util2.IsBaseStack() || util2.IsHelmApp(request.AppOfferingMode) {
ctx = context.WithValue(r.Context(), "token", token)
} else {
acdToken, err := handler.argoUserService.GetLatestDevtronArgoCdUserToken()
Expand Down Expand Up @@ -371,7 +372,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) UpdateInstalledApp(w http.Respo

//rbac block starts from here
var rbacObject string
if installedApp.AppOfferingMode == util2.SERVER_MODE_HYPERION {
if util2.IsHelmApp(installedApp.AppOfferingMode) {
rbacObject = handler.enforcerUtilHelm.GetHelmObjectByClusterId(installedApp.ClusterId, installedApp.Namespace, installedApp.AppName)
} else {
rbacObject = handler.enforcerUtil.GetHelmObject(installedApp.AppId, installedApp.EnvironmentId)
Expand All @@ -393,7 +394,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) UpdateInstalledApp(w http.Respo
}
}(ctx.Done(), cn.CloseNotify())
}
if util2.GetDevtronVersion().ServerMode == util2.SERVER_MODE_HYPERION || request.AppOfferingMode == util2.SERVER_MODE_HYPERION {
if util2.IsBaseStack() || util2.IsHelmApp(request.AppOfferingMode) {
ctx = context.WithValue(r.Context(), "token", token)
} else {
acdToken, err := handler.argoUserService.GetLatestDevtronArgoCdUserToken()
Expand Down Expand Up @@ -440,7 +441,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) GetInstalledAppVersion(w http.R

//rbac block starts from here
var rbacObject string
if dto.AppOfferingMode == util2.SERVER_MODE_HYPERION {
if util2.IsHelmApp(dto.AppOfferingMode) {
rbacObject = handler.enforcerUtilHelm.GetHelmObjectByClusterId(dto.ClusterId, dto.Namespace, dto.AppName)
} else {
rbacObject = handler.enforcerUtil.GetHelmObjectByAppNameAndEnvId(dto.AppName, dto.EnvironmentId)
Expand Down
8 changes: 4 additions & 4 deletions api/appStore/deployment/CommonDeploymentRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ func (handler *CommonDeploymentRestHandlerImpl) GetDeploymentHistory(w http.Resp
//rbac block starts from here
var rbacObject string
token := r.Header.Get("token")
if appOfferingMode == util2.SERVER_MODE_HYPERION {
if util2.IsHelmApp(appOfferingMode) {
rbacObject = handler.enforcerUtilHelm.GetHelmObjectByClusterId(installedAppDto.ClusterId, installedAppDto.Namespace, installedAppDto.AppName)
} else {
rbacObject = handler.enforcerUtil.GetHelmObjectByAppNameAndEnvId(installedAppDto.AppName, installedAppDto.EnvironmentId)
Expand Down Expand Up @@ -191,7 +191,7 @@ func (handler *CommonDeploymentRestHandlerImpl) GetDeploymentHistoryValues(w htt
//rbac block starts from here
var rbacObject string
token := r.Header.Get("token")
if appOfferingMode == util2.SERVER_MODE_HYPERION {
if util2.IsHelmApp(appOfferingMode) {
rbacObject = handler.enforcerUtilHelm.GetHelmObjectByClusterId(installedAppDto.ClusterId, installedAppDto.Namespace, installedAppDto.AppName)
} else {
rbacObject = handler.enforcerUtil.GetHelmObjectByAppNameAndEnvId(installedAppDto.AppName, installedAppDto.EnvironmentId)
Expand All @@ -209,7 +209,7 @@ func (handler *CommonDeploymentRestHandlerImpl) GetDeploymentHistoryValues(w htt
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
return
}
if appOfferingMode == util2.SERVER_MODE_HYPERION {
if util2.IsHelmApp(appOfferingMode) {
canUpdate := handler.enforcer.Enforce(token, casbin.ResourceHelmApp, casbin.ActionUpdate, rbacObject)
if !canUpdate && res != nil && res.Manifest != nil {
modifiedManifest, err := k8sObjectsUtil.HideValuesIfSecretForWholeYamlInput(*res.Manifest)
Expand Down Expand Up @@ -249,7 +249,7 @@ func (handler *CommonDeploymentRestHandlerImpl) RollbackApplication(w http.Respo
//rbac block starts from here
var rbacObject string
token := r.Header.Get("token")
if appOfferingMode == util2.SERVER_MODE_HYPERION {
if util2.IsHelmApp(appOfferingMode) {
rbacObject = handler.enforcerUtilHelm.GetHelmObjectByClusterId(installedAppDto.ClusterId, installedAppDto.Namespace, installedAppDto.AppName)
} else {
rbacObject = handler.enforcerUtil.GetHelmObjectByAppNameAndEnvId(installedAppDto.AppName, installedAppDto.EnvironmentId)
Expand Down
4 changes: 2 additions & 2 deletions api/cluster/ClusterRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ func (impl ClusterRestHandlerImpl) Save(w http.ResponseWriter, r *http.Request)
}
}(ctx.Done(), cn.CloseNotify())
}
if util2.GetDevtronVersion().ServerMode == util2.SERVER_MODE_HYPERION {
if util2.IsBaseStack() {
ctx = context.WithValue(ctx, "token", token)
} else {
acdToken, err := impl.argoUserService.GetLatestDevtronArgoCdUserToken()
Expand Down Expand Up @@ -258,7 +258,7 @@ func (impl ClusterRestHandlerImpl) Update(w http.ResponseWriter, r *http.Request
}
}(ctx.Done(), cn.CloseNotify())
}
if util2.GetDevtronVersion().ServerMode == util2.SERVER_MODE_HYPERION {
if util2.IsBaseStack() {
ctx = context.WithValue(ctx, "token", token)
} else {
acdToken, err := impl.argoUserService.GetLatestDevtronArgoCdUserToken()
Expand Down
5 changes: 3 additions & 2 deletions api/module/wire_module.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ package module

import (
"github.com/devtron-labs/devtron/pkg/module"
moduleRepo "github.com/devtron-labs/devtron/pkg/module/repo"
"github.com/google/wire"
)

var ModuleWireSet = wire.NewSet(
module.NewModuleActionAuditLogRepositoryImpl,
wire.Bind(new(module.ModuleActionAuditLogRepository), new(*module.ModuleActionAuditLogRepositoryImpl)),
module.NewModuleRepositoryImpl,
wire.Bind(new(module.ModuleRepository), new(*module.ModuleRepositoryImpl)),
moduleRepo.NewModuleRepositoryImpl,
wire.Bind(new(moduleRepo.ModuleRepository), new(*moduleRepo.ModuleRepositoryImpl)),
module.ParseModuleEnvConfig,
module.NewModuleServiceImpl,
wire.Bind(new(module.ModuleService), new(*module.ModuleServiceImpl)),
Expand Down
4 changes: 2 additions & 2 deletions api/restHandler/AppListingRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,7 @@ func (handler AppListingRestHandlerImpl) RedirectToLinkouts(w http.ResponseWrite
}

func (handler AppListingRestHandlerImpl) fetchResourceTree(w http.ResponseWriter, r *http.Request, token string, appId int, envId int, appDetail bean.AppDetailContainer) bean.AppDetailContainer {
if len(appDetail.AppName) > 0 && len(appDetail.EnvironmentName) > 0 && appDetail.DeploymentAppType == util.PIPELINE_DEPLOYMENT_TYPE_ACD {
if len(appDetail.AppName) > 0 && len(appDetail.EnvironmentName) > 0 && util.IsAcdApp(appDetail.DeploymentAppType) {
//RBAC enforcer Ends
acdAppName := appDetail.AppName + "-" + appDetail.EnvironmentName
query := &application2.ResourcesQuery{
Expand Down Expand Up @@ -620,7 +620,7 @@ func (handler AppListingRestHandlerImpl) fetchResourceTree(w http.ResponseWriter
}
appDetail.ResourceTree = util2.InterfaceToMapAdapter(resp)
handler.logger.Debugw("application environment status", "appId", appId, "envId", envId, "resp", resp)
} else if len(appDetail.AppName) > 0 && len(appDetail.EnvironmentName) > 0 && appDetail.DeploymentAppType == util.PIPELINE_DEPLOYMENT_TYPE_HELM {
} else if len(appDetail.AppName) > 0 && len(appDetail.EnvironmentName) > 0 && util.IsHelmApp(appDetail.DeploymentAppType) {
config, err := handler.helmAppService.GetClusterConf(appDetail.ClusterId)
if err != nil {
handler.logger.Errorw("error in fetching cluster detail", "err", err)
Expand Down
2 changes: 1 addition & 1 deletion api/restHandler/CoreAppRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -241,13 +241,13 @@ func (handler CoreAppRestHandlerImpl) CreateApp(w http.ResponseWriter, r *http.R
common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized)
return
}
token := r.Header.Get("token")
acdToken, err := handler.argoUserService.GetLatestDevtronArgoCdUserToken()
if err != nil {
handler.logger.Errorw("error in getting acd token", "err", err)
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
return
}
token := r.Header.Get("token")
ctx := context.WithValue(r.Context(), "token", acdToken)
var createAppRequest appBean.AppDetail
err = decoder.Decode(&createAppRequest)
Expand Down
16 changes: 8 additions & 8 deletions cmd/external-app/wire_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions internal/util/ChartService.go
Original file line number Diff line number Diff line change
Expand Up @@ -668,3 +668,11 @@ func (impl ChartTemplateServiceImpl) CreateReadmeInGitRepo(gitOpsRepoName string
}
return nil
}

func IsHelmApp(deploymentAppType string) bool {
return deploymentAppType == PIPELINE_DEPLOYMENT_TYPE_HELM
}

func IsAcdApp(deploymentAppType string) bool {
return deploymentAppType == PIPELINE_DEPLOYMENT_TYPE_ACD
}
11 changes: 6 additions & 5 deletions pkg/app/AppService.go
Original file line number Diff line number Diff line change
Expand Up @@ -594,6 +594,7 @@ func (impl AppServiceImpl) releasePipeline(pipeline *pipelineConfig.Pipeline, ar
}

func (impl AppServiceImpl) buildACDContext() (acdContext context.Context, err error) {
//this method should only call in case of argo-integration and gitops configured
acdToken, err := impl.argoUserService.GetLatestDevtronArgoCdUserToken()
if err != nil {
impl.logger.Errorw("error in getting acd token", "err", err)
Expand Down Expand Up @@ -753,7 +754,7 @@ func (impl AppServiceImpl) TriggerRelease(overrideRequest *bean.ValuesOverrideRe
userUploaded := false
var chartData *chartRepoRepository.ChartRef
referenceTemplatePath := path.Join(string(impl.refChartDir), envOverride.Chart.ReferenceTemplate)
if pipeline.DeploymentAppType == PIPELINE_DEPLOYMENT_TYPE_ACD {
if IsAcdApp(pipeline.DeploymentAppType) {
// CHART COMMIT and PUSH STARTS HERE, it will push latest version, if found modified on deployment template and overrides
gitOpsRepoName := impl.chartTemplateService.GetGitOpsRepoName(pipeline.App.AppName)

Expand Down Expand Up @@ -897,7 +898,7 @@ func (impl AppServiceImpl) TriggerRelease(overrideRequest *bean.ValuesOverrideRe
releaseId, pipelineOverrideId, mergeAndSave, saveErr := impl.mergeAndSave(envOverride, overrideRequest, dbMigrationOverride, artifact, pipeline, configMapJson, appLabelJsonByte, strategy, ctx, triggeredAt, deployedBy)
if releaseId != 0 {
//updating the acd app with updated values and sync operation
if pipeline.DeploymentAppType == PIPELINE_DEPLOYMENT_TYPE_ACD {
if IsAcdApp(pipeline.DeploymentAppType) {
updateAppInArgocd, err := impl.updateArgoPipeline(overrideRequest.AppId, pipeline.Name, envOverride, ctx)
if err != nil {
impl.logger.Errorw("error in updating argocd app ", "err", err)
Expand Down Expand Up @@ -937,7 +938,7 @@ func (impl AppServiceImpl) TriggerRelease(overrideRequest *bean.ValuesOverrideRe
}

//for helm type cd pipeline, create install helm application, update deployment status, update workflow runner for app detail status.
if pipeline.DeploymentAppType == PIPELINE_DEPLOYMENT_TYPE_HELM {
if IsHelmApp(pipeline.DeploymentAppType) {
_, err = impl.createHelmAppForCdPipeline(overrideRequest, envOverride, referenceTemplatePath, chartMetaData, triggeredAt, pipeline, mergeAndSave, ctx)
if err != nil {
impl.logger.Errorw("error in creating or updating helm application for cd pipeline", "err", err)
Expand Down Expand Up @@ -1491,7 +1492,7 @@ func (impl AppServiceImpl) mergeAndSave(envOverride *chartConfig.EnvConfigOverri
merged = impl.hpaCheckBeforeTrigger(ctx, appName, envOverride.Namespace, merged, pipeline.AppId)

commitHash := ""
if pipeline.DeploymentAppType == PIPELINE_DEPLOYMENT_TYPE_ACD {
if IsAcdApp(pipeline.DeploymentAppType) {
chartRepoName := impl.GetChartRepoName(envOverride.Chart.GitRepoUrl)
//getting username & emailId for commit author data
userEmailId, userName := impl.chartTemplateService.GetUserEmailIdAndNameForGitOpsCommit(overrideRequest.UserId)
Expand Down Expand Up @@ -1785,7 +1786,7 @@ func (impl AppServiceImpl) updatePipeline(pipeline *pipelineConfig.Pipeline, use
func (impl AppServiceImpl) createHelmAppForCdPipeline(overrideRequest *bean.ValuesOverrideRequest,
envOverride *chartConfig.EnvConfigOverride, referenceTemplatePath string, chartMetaData *chart2.Metadata,
triggeredAt time.Time, pipeline *pipelineConfig.Pipeline, mergeAndSave string, ctx context.Context) (bool, error) {
if pipeline.DeploymentAppType == PIPELINE_DEPLOYMENT_TYPE_HELM {
if IsHelmApp(pipeline.DeploymentAppType) {
referenceChartByte := envOverride.Chart.ReferenceChart
// here updating reference chart into database.
if len(envOverride.Chart.ReferenceChart) == 0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,7 @@ func (impl AppStoreDeploymentFullModeServiceImpl) createInArgo(chartGitAttribute

func (impl AppStoreDeploymentFullModeServiceImpl) GetGitOpsRepoName(appName string, environmentName string) (string, error) {
gitOpsRepoName := ""
//this method should only call in case of argo-integration and gitops configured
acdToken, err := impl.argoUserService.GetLatestDevtronArgoCdUserToken()
if err != nil {
impl.logger.Errorw("error in getting acd token", "err", err)
Expand Down
Loading