Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions api/cluster/ClusterRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -556,7 +556,7 @@ func (impl ClusterRestHandlerImpl) DeleteCluster(w http.ResponseWriter, r *http.
common.WriteJsonResp(w, err, "Unauthorized User", http.StatusUnauthorized)
return
}
var bean bean2.ClusterBean
var bean bean2.DeleteClusterBean
err = decoder.Decode(&bean)
if err != nil {
impl.logger.Errorw("request err, Delete", "error", err, "payload", bean)
Expand All @@ -580,7 +580,7 @@ func (impl ClusterRestHandlerImpl) DeleteCluster(w http.ResponseWriter, r *http.
//RBAC enforcer Ends
err = impl.deleteService.DeleteCluster(&bean, userId)
if err != nil {
impl.logger.Errorw("error in deleting cluster", "err", err, "id", bean.Id, "name", bean.ClusterName)
impl.logger.Errorw("error in deleting cluster", "err", err, "id", bean.Id)
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
return
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -625,8 +625,10 @@ func (handler *PipelineConfigRestHandlerImpl) validateCiTriggerRBAC(token string
appObject := handler.enforcerUtil.GetAppRBACNameByAppId(ciPipeline.AppId)
workflowObject := handler.enforcerUtil.GetWorkflowRBACByCiPipelineId(ciPipelineId, workflowName)
triggerObject := handler.enforcerUtil.GetTeamEnvRBACNameByCiPipelineIdAndEnvIdOrName(ciPipelineId, triggerEnvironmentId, envName)
appRbacOk := handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionTrigger, appObject)
if !appRbacOk {
var appRbacOk bool
if ciPipeline.App.AppType == helper.CustomApp {
appRbacOk = handler.enforcer.Enforce(token, casbin.ResourceApplications, casbin.ActionTrigger, appObject)
} else if ciPipeline.App.AppType == helper.Job {
appRbacOk = handler.enforcer.Enforce(token, casbin.ResourceJobs, casbin.ActionTrigger, appObject) && handler.enforcer.Enforce(token, casbin.ResourceWorkflow, casbin.ActionTrigger, workflowObject) && handler.enforcer.Enforce(token, casbin.ResourceJobsEnv, casbin.ActionTrigger, triggerObject)
}

Expand Down
Binary file added assets/plugin-icons/ic-plugin-aws-ecr-retag.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions client/cron/CdApplicationStatusUpdateHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,11 @@ func NewCdApplicationStatusUpdateHandlerImpl(logger *zap.SugaredLogger, appServi
logger.Errorw("error in starting argo application status update cron job", "err", err)
return nil
}
_, err = cron.AddFunc("@every 1m", impl.ArgoPipelineTimelineUpdate)
if err != nil {
logger.Errorw("error in starting argo application status update cron job", "err", err)
return nil
}
_, err = cron.AddFunc("@every 1m", impl.FluxApplicationStatusUpdate)
if err != nil {
logger.Errorw("error in starting argo application status update cron job", "err", err)
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,7 @@ require (
replace (
github.com/argoproj/argo-workflows/v3 v3.5.13 => github.com/devtron-labs/argo-workflows/v3 v3.5.13
github.com/cyphar/filepath-securejoin v0.4.1 => github.com/cyphar/filepath-securejoin v0.3.6 // indirect
github.com/devtron-labs/authenticator => github.com/devtron-labs/devtron-services/authenticator v0.0.0-20250702124715-9fa1fd0f8fd3
github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250702124715-9fa1fd0f8fd3
github.com/devtron-labs/authenticator => github.com/devtron-labs/devtron-services/authenticator v0.0.0-20250707110047-5ce1ce150a76
github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250707110047-5ce1ce150a76
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1
)
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -237,10 +237,10 @@ github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc h1:VRRKCwnzq
github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
github.com/devtron-labs/argo-workflows/v3 v3.5.13 h1:3pINq0gXOSeTw2z/vYe+j80lRpSN5Rp/8mfQORh8SmU=
github.com/devtron-labs/argo-workflows/v3 v3.5.13/go.mod h1:/vqxcovDPT4zqr4DjR5v7CF8ggpY1l3TSa2CIG3jmjA=
github.com/devtron-labs/devtron-services/authenticator v0.0.0-20250702124715-9fa1fd0f8fd3 h1:c+CJxKtMhfjCiHHOmWAANMAH1OkDqfvT5o7QTabPH80=
github.com/devtron-labs/devtron-services/authenticator v0.0.0-20250702124715-9fa1fd0f8fd3/go.mod h1:9LCkYfiWaEKIBkmxw9jX1GujvEMyHwmDtVsatffAkeU=
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250702124715-9fa1fd0f8fd3 h1:wFe3eGKaeyBI98NS7yClXiG7mRO04WEp8csMadiHABM=
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250702124715-9fa1fd0f8fd3/go.mod h1:/Ciy9tD9OxZOWBDPIasM448H7uvSo4+ZJiExpfwBZpA=
github.com/devtron-labs/devtron-services/authenticator v0.0.0-20250707110047-5ce1ce150a76 h1:382wKs9a8Fpz2wK5egWhLKpI4a5i2iThvcWVL1Y6Rvk=
github.com/devtron-labs/devtron-services/authenticator v0.0.0-20250707110047-5ce1ce150a76/go.mod h1:9LCkYfiWaEKIBkmxw9jX1GujvEMyHwmDtVsatffAkeU=
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250707110047-5ce1ce150a76 h1:Oxx073Vec7hW3JPNsWsZGyC3gULHVluLKTLEfXgjfeY=
github.com/devtron-labs/devtron-services/common-lib v0.0.0-20250707110047-5ce1ce150a76/go.mod h1:/Ciy9tD9OxZOWBDPIasM448H7uvSo4+ZJiExpfwBZpA=
github.com/devtron-labs/go-bitbucket v0.9.60-beta h1:VEx1jvDgdtDPS6A1uUFoaEi0l1/oLhbr+90xOwr6sDU=
github.com/devtron-labs/go-bitbucket v0.9.60-beta/go.mod h1:GnuiCesvh8xyHeMCb+twm8lBR/kQzJYSKL28ZfObp1Y=
github.com/devtron-labs/protos v0.0.3-0.20250323220609-ecf8a0f7305e h1:U6UdYbW8a7xn5IzFPd8cywjVVPfutGJCudjePAfL/Hs=
Expand Down
4 changes: 2 additions & 2 deletions pkg/cluster/ClusterService.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ type ClusterService interface {
FindAllExceptVirtual() ([]*bean.ClusterBean, error)
FindAllWithoutConfig() ([]*bean.ClusterBean, error)
FindAllActive() ([]bean.ClusterBean, error)
DeleteFromDb(bean *bean.ClusterBean, userId int32) (string, error)
DeleteFromDb(bean *clusterBean.DeleteClusterBean, userId int32) (string, error)

FindById(id int) (*bean.ClusterBean, error)
FindByIdWithoutConfig(id int) (*bean.ClusterBean, error)
Expand Down Expand Up @@ -580,7 +580,7 @@ func (impl *ClusterServiceImpl) buildInformer() {
impl.K8sInformerFactory.BuildInformer(clusterInfo)
}

func (impl *ClusterServiceImpl) DeleteFromDb(bean *bean.ClusterBean, userId int32) (string, error) {
func (impl *ClusterServiceImpl) DeleteFromDb(bean *clusterBean.DeleteClusterBean, userId int32) (string, error) {
existingCluster, err := impl.clusterRepository.FindById(bean.Id)
if err != nil {
impl.logger.Errorw("No matching entry found for delete.", "id", bean.Id)
Expand Down
2 changes: 1 addition & 1 deletion pkg/cluster/ClusterServiceExtended.go
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ func (impl *ClusterServiceImplExtended) Save(ctx context.Context, bean *bean.Clu
return clusterBean, nil
}

func (impl ClusterServiceImplExtended) DeleteFromDb(bean *bean.ClusterBean, userId int32) (string, error) {
func (impl ClusterServiceImplExtended) DeleteFromDb(bean *bean.DeleteClusterBean, userId int32) (string, error) {
existingCluster, err := impl.clusterRepository.FindById(bean.Id)
if err != nil {
impl.logger.Errorw("No matching entry found for delete.", "id", bean.Id)
Expand Down
4 changes: 4 additions & 0 deletions pkg/cluster/bean/bean.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ func (bean ClusterBean) GetClusterConfig() *k8s.ClusterConfig {
return clusterCfg
}

type DeleteClusterBean struct {
Id int `json:"id" validate:"number,required"`
}

type UserInfo struct {
UserName string `json:"userName,omitempty"`
Config map[string]string `json:"config,omitempty"`
Expand Down
10 changes: 5 additions & 5 deletions pkg/delete/DeleteService.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,13 @@ import (
)

type DeleteService interface {
DeleteCluster(deleteRequest *bean2.ClusterBean, userId int32) error
DeleteCluster(deleteRequest *bean2.DeleteClusterBean, userId int32) error
DeleteEnvironment(deleteRequest *bean.EnvironmentBean, userId int32) error
DeleteTeam(deleteRequest *bean3.TeamRequest) error
DeleteChartRepo(deleteRequest *chartRepo.ChartRepoDto) error
DeleteDockerRegistryConfig(deleteRequest *types.DockerArtifactStoreBean) error
CanDeleteChartRegistryPullConfig(storeId string) bool
DeleteClusterConfigMap(deleteRequest *bean2.ClusterBean) error
DeleteClusterConfigMap(deleteRequest *bean2.DeleteClusterBean) error
}

type DeleteServiceImpl struct {
Expand Down Expand Up @@ -91,7 +91,7 @@ func NewDeleteServiceImpl(logger *zap.SugaredLogger,
}
}

func (impl DeleteServiceImpl) DeleteCluster(deleteRequest *bean2.ClusterBean, userId int32) error {
func (impl DeleteServiceImpl) DeleteCluster(deleteRequest *bean2.DeleteClusterBean, userId int32) error {
clusterName, err := impl.clusterService.DeleteFromDb(deleteRequest, userId)
if err != nil {
impl.logger.Errorw("error im deleting cluster", "err", err, "deleteRequest", deleteRequest)
Expand All @@ -108,11 +108,11 @@ func (impl DeleteServiceImpl) DeleteCluster(deleteRequest *bean2.ClusterBean, us
return nil
}

func (impl DeleteServiceImpl) DeleteClusterConfigMap(deleteRequest *bean2.ClusterBean) error {
func (impl DeleteServiceImpl) DeleteClusterConfigMap(deleteRequest *bean2.DeleteClusterBean) error {
// kubelink informers are listening this secret, deleting this secret will inform kubelink that this cluster is deleted
k8sClient, err := impl.K8sUtil.GetCoreV1ClientInCluster()
if err != nil {
impl.logger.Errorw("error in getting in cluster k8s client", "err", err, "clusterName", deleteRequest.ClusterName)
impl.logger.Errorw("error in getting in cluster k8s client", "err", err, "clusterId", deleteRequest.Id)
return nil
}
cmName := cluster.ParseCmNameForK8sInformerOnClusterEvent(deleteRequest.Id)
Expand Down
6 changes: 3 additions & 3 deletions pkg/delete/DeleteServiceExtended.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,15 +80,15 @@ func NewDeleteServiceExtendedImpl(logger *zap.SugaredLogger,
}
}

func (impl DeleteServiceExtendedImpl) DeleteCluster(deleteRequest *bean2.ClusterBean, userId int32) error {
func (impl DeleteServiceExtendedImpl) DeleteCluster(deleteRequest *bean2.DeleteClusterBean, userId int32) error {
//finding if there are env in this cluster or not, if yes then will not delete
env, err := impl.environmentRepository.FindByClusterId(deleteRequest.Id)
if err != nil && err != pg.ErrNoRows {
impl.logger.Errorw("err in deleting cluster", "clusterName", deleteRequest.ClusterName, "err", err)
impl.logger.Errorw("err in deleting cluster", "clusterId", deleteRequest.Id, "err", err)
return err
}
if len(env) > 0 {
impl.logger.Errorw("err in deleting cluster, found env in this cluster", "clusterName", deleteRequest.ClusterName, "err", err)
impl.logger.Errorw("err in deleting cluster, found env in this cluster", "clusterId", deleteRequest.Id, "err", err)
return &util.ApiError{HttpStatusCode: http.StatusBadRequest, UserMessage: " Please delete all related environments before deleting this cluster"}
}
clusterName, err := impl.clusterService.DeleteFromDb(deleteRequest, userId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,19 @@ metadata:
{{- end}}
spec:
type: {{ .Values.service.type | default "ClusterIP" }}
{{- if (and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerSourceRanges )}}
{{- with .Values.service.extraSpec }}
{{- toYaml . | nindent 2 }}
{{- end }}
{{- if (eq .Values.service.type "LoadBalancer") }}
{{- if .Values.service.loadBalancerIP }}
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
{{- end }}
{{- if .Values.service.loadBalancerSourceRanges }}
loadBalancerSourceRanges:
{{- range .Values.service.loadBalancerSourceRanges }}
{{- range .Values.service.loadBalancerSourceRanges }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
ports:
{{- range .Values.ContainerPort }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,19 @@ metadata:
{{- end}}
spec:
type: {{ .Values.service.type | default "ClusterIP" }}
{{- if (and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerSourceRanges )}}
{{- with .Values.service.extraSpec }}
{{- toYaml . | nindent 2 }}
{{- end }}
{{- if (eq .Values.service.type "LoadBalancer") }}
{{- if .Values.service.loadBalancerIP }}
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
{{- end }}
{{- if .Values.service.loadBalancerSourceRanges }}
loadBalancerSourceRanges:
{{- range .Values.service.loadBalancerSourceRanges }}
{{- range .Values.service.loadBalancerSourceRanges }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
ports:
{{- range .Values.ContainerPort }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,10 @@ service:
type: ClusterIP
# name: "1234567890123456789012345678901234567890123456789012345678901234567890"
annotations: {}
# loadBalancerIP: "98.73.123.45"
# loadBalancerSourceRanges: ["127.0.0.1","127.0.0.1","127.0.0.1"]
extraSpec: {}
# externalTrafficPolicy: Local
# test1: test2
# test3: test4

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,19 @@ metadata:
{{- end}}
spec:
type: {{ .Values.service.type | default "ClusterIP" }}
{{- if (and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerSourceRanges )}}
{{- with .Values.service.extraSpec }}
{{- toYaml . | nindent 2 }}
{{- end }}
{{- if (eq .Values.service.type "LoadBalancer") }}
{{- if .Values.service.loadBalancerIP }}
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
{{- end }}
{{- if .Values.service.loadBalancerSourceRanges }}
loadBalancerSourceRanges:
{{- range .Values.service.loadBalancerSourceRanges }}
{{- range .Values.service.loadBalancerSourceRanges }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
ports:
{{- range .Values.ContainerPort }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,19 @@ metadata:
{{- end}}
spec:
type: {{ .Values.service.type | default "ClusterIP" }}
{{- if (and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerSourceRanges )}}
{{- with .Values.service.extraSpec }}
{{- toYaml . | nindent 2 }}
{{- end }}
{{- if (eq .Values.service.type "LoadBalancer") }}
{{- if .Values.service.loadBalancerIP }}
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
{{- end }}
{{- if .Values.service.loadBalancerSourceRanges }}
loadBalancerSourceRanges:
{{- range .Values.service.loadBalancerSourceRanges }}
{{- range .Values.service.loadBalancerSourceRanges }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
ports:
{{- range .Values.ContainerPort }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,19 @@ metadata:
{{- end }}
spec:
type: {{ .Values.service.type | default "ClusterIP" }}
{{- if (and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerSourceRanges )}}
{{- with .Values.service.extraSpec }}
{{- toYaml . | nindent 2 }}
{{- end }}
{{- if (eq .Values.service.type "LoadBalancer") }}
{{- if .Values.service.loadBalancerIP }}
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
{{- end }}
{{- if .Values.service.loadBalancerSourceRanges }}
loadBalancerSourceRanges:
{{- range .Values.service.loadBalancerSourceRanges }}
{{- range .Values.service.loadBalancerSourceRanges }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
ports:
{{- range .Values.ContainerPort }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,19 @@ metadata:
{{- end }}
spec:
type: {{ .Values.service.type | default "ClusterIP" }}
{{- if (and (eq .Values.service.type "LoadBalancer") .Values.service.loadBalancerSourceRanges )}}
{{- with .Values.service.extraSpec }}
{{- toYaml . | nindent 2 }}
{{- end }}
{{- if (eq .Values.service.type "LoadBalancer") }}
{{- if .Values.service.loadBalancerIP }}
loadBalancerIP: {{ .Values.service.loadBalancerIP }}
{{- end }}
{{- if .Values.service.loadBalancerSourceRanges }}
loadBalancerSourceRanges:
{{- range .Values.service.loadBalancerSourceRanges }}
{{- range .Values.service.loadBalancerSourceRanges }}
- {{ . }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
ports:
{{- range .Values.ContainerPort }}
Expand Down
6 changes: 6 additions & 0 deletions scripts/sql/34003900_aws_retagging.down.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
DELETE FROM plugin_step_variable WHERE plugin_step_id=(SELECT id FROM plugin_metadata WHERE name='AWS ECR Retag' and plugin_version='1.0.0');
DELETE FROM plugin_step where plugin_id=(SELECT id FROM plugin_metadata WHERE name='AWS ECR Retag' and plugin_version='1.0.0');
DELETE FROM plugin_pipeline_script where id=(SELECT id FROM plugin_metadata WHERE name='AWS ECR Retag');
DELETE FROM plugin_stage_mapping where plugin_id=(SELECT id from plugin_metadata where name='AWS ECR Retag');
DELETE FROM plugin_metadata where name='AWS ECR Retag';
DELETE FROM plugin_parent_metadata where name='AWS ECR Retag';
Loading