Skip to content

Commit 7753c93

Browse files
authored
fix: disable api update if disabled from UI (#3487)
* disabled-API-if-disabled-from-UI * disabled-API-if-disabled-from-UI * minor change * added to const * added to const * review comments. * review comments. * review comments. * review comments.
1 parent 0c4a87c commit 7753c93

File tree

3 files changed

+37
-9
lines changed

3 files changed

+37
-9
lines changed

pkg/pipeline/GitopsOrHelmOption_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func TestGitopsOrHelmOption(t *testing.T) {
2424
nil, nil, nil,
2525
nil, nil, nil, nil,
2626
nil, nil, nil, nil,
27-
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil)
27+
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil, nil)
2828

2929
pipelineCreateRequest := &bean.CdPipelines{
3030
Pipelines: []*bean.CDPipelineConfigObject{
@@ -77,7 +77,7 @@ func TestGitopsOrHelmOption(t *testing.T) {
7777
nil, nil, nil,
7878
nil, nil, nil, nil,
7979
nil, nil, nil, nil,
80-
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil)
80+
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil, nil)
8181

8282
pipelineCreateRequest := &bean.CdPipelines{
8383
Pipelines: []*bean.CDPipelineConfigObject{
@@ -130,7 +130,7 @@ func TestGitopsOrHelmOption(t *testing.T) {
130130
nil, nil, nil,
131131
nil, nil, nil, nil,
132132
nil, nil, nil, nil,
133-
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: true}, nil, nil, nil, nil, nil, nil, nil)
133+
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: true}, nil, nil, nil, nil, nil, nil, nil, nil)
134134

135135
pipelineCreateRequestHelm := &bean.CdPipelines{
136136
Pipelines: []*bean.CDPipelineConfigObject{
@@ -221,7 +221,7 @@ func TestGitopsOrHelmOption(t *testing.T) {
221221
nil, nil, nil,
222222
nil, nil, nil, nil,
223223
nil, nil, nil, nil,
224-
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil)
224+
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: false}, nil, nil, nil, nil, nil, nil, nil, nil)
225225

226226
pipelineCreateRequest := &bean.CdPipelines{
227227
Pipelines: []*bean.CDPipelineConfigObject{
@@ -278,7 +278,7 @@ func TestGitopsOrHelmOption(t *testing.T) {
278278
nil, nil, nil,
279279
nil, nil, nil, nil,
280280
nil, nil, nil, nil,
281-
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: true}, nil, nil, nil, nil, nil, nil, nil)
281+
nil, nil, nil, nil, nil, nil, nil, nil, &DeploymentServiceTypeConfig{IsInternalUse: true}, nil, nil, nil, nil, nil, nil, nil, nil)
282282

283283
pipelineCreateRequest := &bean.CdPipelines{
284284
Pipelines: []*bean.CDPipelineConfigObject{

pkg/pipeline/PipelineBuilder.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ import (
6868
"go.uber.org/zap"
6969
)
7070

71+
const DashboardConfigMap = "dashboard-cm"
72+
const SECURITY_SCANNING = "FORCE_SECURITY_SCANNING"
73+
7174
var DefaultPipelineValue = []byte(`{"ConfigMaps":{"enabled":false},"ConfigSecrets":{"enabled":false},"ContainerPort":[],"EnvVariables":[],"GracePeriod":30,"LivenessProbe":{},"MaxSurge":1,"MaxUnavailable":0,"MinReadySeconds":60,"ReadinessProbe":{},"Spec":{"Affinity":{"Values":"nodes","key":""}},"app":"13","appMetrics":false,"args":{},"autoscaling":{},"command":{"enabled":false,"value":[]},"containers":[],"dbMigrationConfig":{"enabled":false},"deployment":{"strategy":{"rolling":{"maxSurge":"25%","maxUnavailable":1}}},"deploymentType":"ROLLING","env":"1","envoyproxy":{"configMapName":"","image":"","resources":{"limits":{"cpu":"50m","memory":"50Mi"},"requests":{"cpu":"50m","memory":"50Mi"}}},"image":{"pullPolicy":"IfNotPresent"},"ingress":{},"ingressInternal":{"annotations":{},"enabled":false,"host":"","path":"","tls":[]},"initContainers":[],"pauseForSecondsBeforeSwitchActive":30,"pipelineName":"","prometheus":{"release":"monitoring"},"rawYaml":[],"releaseVersion":"1","replicaCount":1,"resources":{"limits":{"cpu":"0.05","memory":"50Mi"},"requests":{"cpu":"0.01","memory":"10Mi"}},"secret":{"data":{},"enabled":false},"server":{"deployment":{"image":"","image_tag":""}},"service":{"annotations":{},"type":"ClusterIP"},"servicemonitor":{"additionalLabels":{}},"tolerations":[],"volumeMounts":[],"volumes":[],"waitForSecondsBeforeScalingDown":30}`)
7275

7376
type EcrConfig struct {
@@ -213,6 +216,7 @@ type PipelineBuilderImpl struct {
213216
enforcerUtil rbac.EnforcerUtil
214217
appGroupService appGroup2.AppGroupService
215218
chartDeploymentService util.ChartDeploymentService
219+
K8sUtil *util.K8sUtil
216220
}
217221

218222
func NewPipelineBuilderImpl(logger *zap.SugaredLogger,
@@ -264,7 +268,8 @@ func NewPipelineBuilderImpl(logger *zap.SugaredLogger,
264268
enforcerUtil rbac.EnforcerUtil, ArgoUserService argo.ArgoUserService,
265269
ciWorkflowRepository pipelineConfig.CiWorkflowRepository,
266270
appGroupService appGroup2.AppGroupService,
267-
chartDeploymentService util.ChartDeploymentService) *PipelineBuilderImpl {
271+
chartDeploymentService util.ChartDeploymentService,
272+
K8sUtil *util.K8sUtil) *PipelineBuilderImpl {
268273
return &PipelineBuilderImpl{
269274
logger: logger,
270275
ciCdPipelineOrchestrator: ciCdPipelineOrchestrator,
@@ -324,6 +329,7 @@ func NewPipelineBuilderImpl(logger *zap.SugaredLogger,
324329
ciWorkflowRepository: ciWorkflowRepository,
325330
appGroupService: appGroupService,
326331
chartDeploymentService: chartDeploymentService,
332+
K8sUtil: K8sUtil,
327333
}
328334
}
329335

@@ -1417,6 +1423,28 @@ func (impl PipelineBuilderImpl) PatchCiPipeline(request *bean.CiPatchRequest) (c
14171423
ciConfig.AppWorkflowId = request.AppWorkflowId
14181424
ciConfig.UserId = request.UserId
14191425
if request.CiPipeline != nil {
1426+
client, err := impl.K8sUtil.GetClientForInCluster()
1427+
if err != nil {
1428+
impl.logger.Errorw("exception while getting unique client id", "error", err)
1429+
return nil, err
1430+
}
1431+
cm, err := impl.K8sUtil.GetConfigMap(argo.DEVTRONCD_NAMESPACE, DashboardConfigMap, client)
1432+
if err != nil {
1433+
impl.logger.Errorw("error while getting dashboard-cm", "error", err)
1434+
return nil, err
1435+
}
1436+
if cm == nil {
1437+
impl.logger.Errorw("error while getting dashboard-cm", "error", err)
1438+
return nil, err
1439+
}
1440+
datamap := cm.Data
1441+
forceScanConfig, err := strconv.ParseBool(datamap[SECURITY_SCANNING])
1442+
if err != nil {
1443+
forceScanConfig = false
1444+
}
1445+
if forceScanConfig {
1446+
request.CiPipeline.ScanEnabled = true
1447+
}
14201448
ciConfig.ScanEnabled = request.CiPipeline.ScanEnabled
14211449
}
14221450
switch request.Action {

wire_gen.go

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

0 commit comments

Comments
 (0)