Skip to content

Commit b9e94fd

Browse files
authored
Merge pull request #6572 from devtron-labs/scoped-var-patch-type-fix
fix: scoped var complex type resolution not working in patch type overrides
2 parents cf5cf97 + 4f40d19 commit b9e94fd

File tree

3 files changed

+102
-11
lines changed

3 files changed

+102
-11
lines changed

pkg/deployment/manifest/deploymentTemplate/read/chartEnvConfigOverride.go

Lines changed: 75 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1+
/*
2+
* Copyright (c) 2024. Devtron Inc.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
117
package read
218

319
import (
@@ -25,15 +41,16 @@ type EnvConfigOverrideService interface {
2541
// EnvConfigOverride.Chart is not populated,
2642
// as the chartRepoRepository.Chart contains the reference chart(in bytes).
2743
GetAllOverridesForApp(ctx context.Context, appId int) ([]*bean.EnvConfigOverride, error)
44+
EnvConfigOverrideServiceEnt
2845
}
2946

3047
type EnvConfigOverrideReadServiceImpl struct {
3148
envConfigOverrideRepository chartConfig.EnvConfigOverrideRepository
3249
logger *zap.SugaredLogger
3350
}
3451

35-
func NewEnvConfigOverrideReadServiceImpl(repository chartConfig.EnvConfigOverrideRepository,
36-
logger *zap.SugaredLogger) *EnvConfigOverrideReadServiceImpl {
52+
func NewEnvConfigOverrideReadServiceImpl(repository chartConfig.EnvConfigOverrideRepository, logger *zap.SugaredLogger,
53+
) *EnvConfigOverrideReadServiceImpl {
3754
return &EnvConfigOverrideReadServiceImpl{
3855
envConfigOverrideRepository: repository,
3956
logger: logger,
@@ -46,7 +63,13 @@ func (impl EnvConfigOverrideReadServiceImpl) GetByChartAndEnvironment(chartId, t
4663
impl.logger.Errorw("error in getting chart env config override", "chartId", chartId, "targetEnvironmentId", targetEnvironmentId, "err", err)
4764
return nil, err
4865
}
49-
return adapter.EnvOverrideDBToDTO(overrideDBObj), nil
66+
overrideDTO := adapter.EnvOverrideDBToDTO(overrideDBObj)
67+
overrideDTO, err = impl.getOverrideDataWithUpdatedPatchDataUnResolved(overrideDTO, overrideDTO.Chart.AppId)
68+
if err != nil {
69+
impl.logger.Errorw("error in patching values with base template values", "envId", targetEnvironmentId, "appId", overrideDTO.Chart.AppId, "err", err)
70+
return nil, err
71+
}
72+
return overrideDTO, nil
5073
}
5174

5275
func (impl EnvConfigOverrideReadServiceImpl) ActiveEnvConfigOverride(appId, environmentId int) (*bean.EnvConfigOverride, error) {
@@ -55,7 +78,13 @@ func (impl EnvConfigOverrideReadServiceImpl) ActiveEnvConfigOverride(appId, envi
5578
impl.logger.Errorw("error in getting chart env config override", "appId", appId, "environmentId", environmentId, "err", err)
5679
return nil, err
5780
}
58-
return adapter.EnvOverrideDBToDTO(overrideDBObj), nil
81+
overrideDTO := adapter.EnvOverrideDBToDTO(overrideDBObj)
82+
overrideDTO, err = impl.getOverrideDataWithUpdatedPatchDataUnResolved(overrideDTO, appId)
83+
if err != nil {
84+
impl.logger.Errorw("error in patching values with base template values", "envId", environmentId, "appId", appId, "err", err)
85+
return nil, err
86+
}
87+
return overrideDTO, nil
5988
}
6089

6190
func (impl EnvConfigOverrideReadServiceImpl) GetByIdIncludingInactive(id int) (*bean.EnvConfigOverride, error) {
@@ -64,7 +93,13 @@ func (impl EnvConfigOverrideReadServiceImpl) GetByIdIncludingInactive(id int) (*
6493
impl.logger.Errorw("error in getting chart env config override", "id", id, "err", err)
6594
return nil, err
6695
}
67-
return adapter.EnvOverrideDBToDTO(overrideDBObj), nil
96+
overrideDTO := adapter.EnvOverrideDBToDTO(overrideDBObj)
97+
overrideDTO, err = impl.getOverrideDataWithUpdatedPatchDataUnResolved(overrideDTO, overrideDTO.Chart.AppId)
98+
if err != nil {
99+
impl.logger.Errorw("error in patching values with base template values", "envId", overrideDTO.TargetEnvironment, "appId", overrideDTO.Chart.AppId, "err", err)
100+
return nil, err
101+
}
102+
return overrideDTO, nil
68103
}
69104

70105
func (impl EnvConfigOverrideReadServiceImpl) GetByEnvironment(targetEnvironmentId int) ([]*bean.EnvConfigOverride, error) {
@@ -88,7 +123,13 @@ func (impl EnvConfigOverrideReadServiceImpl) GetEnvConfigByChartId(chartId int)
88123
}
89124
envConfigOverrides := make([]*bean.EnvConfigOverride, len(overrideDBObjs))
90125
for _, dbObj := range overrideDBObjs {
91-
envConfigOverrides = append(envConfigOverrides, adapter.EnvOverrideDBToDTO(&dbObj))
126+
overrideDTO := adapter.EnvOverrideDBToDTO(&dbObj)
127+
overrideDTO, err = impl.getOverrideDataWithUpdatedPatchDataUnResolved(overrideDTO, overrideDTO.Chart.AppId)
128+
if err != nil {
129+
impl.logger.Errorw("error in patching values with base template values", "envId", overrideDTO.TargetEnvironment, "appId", overrideDTO.Chart.AppId, "err", err)
130+
return nil, err
131+
}
132+
envConfigOverrides = append(envConfigOverrides, overrideDTO)
92133
}
93134
return envConfigOverrides, nil
94135
}
@@ -99,7 +140,13 @@ func (impl EnvConfigOverrideReadServiceImpl) FindLatestChartForAppByAppIdAndEnvI
99140
impl.logger.Errorw("error in getting chart env config override", "appId", appId, "targetEnvironmentId", targetEnvironmentId, "err", err)
100141
return nil, err
101142
}
102-
return adapter.EnvOverrideDBToDTO(overrideDBObj), nil
143+
overrideDTO := adapter.EnvOverrideDBToDTO(overrideDBObj)
144+
overrideDTO, err = impl.getOverrideDataWithUpdatedPatchDataUnResolved(overrideDTO, overrideDTO.Chart.AppId)
145+
if err != nil {
146+
impl.logger.Errorw("error in patching values with base template values", "envId", overrideDTO.TargetEnvironment, "appId", overrideDTO.Chart.AppId, "err", err)
147+
return nil, err
148+
}
149+
return overrideDTO, nil
103150
}
104151

105152
func (impl EnvConfigOverrideReadServiceImpl) FindChartRefIdsForLatestChartForAppByAppIdAndEnvIds(appId int, targetEnvironmentIds []int) (map[int]int, error) {
@@ -117,7 +164,13 @@ func (impl EnvConfigOverrideReadServiceImpl) FindChartByAppIdAndEnvIdAndChartRef
117164
impl.logger.Errorw("error in getting chart env config override", "appId", appId, "targetEnvironmentIds", targetEnvironmentId, "chartRefId", chartRefId, "err", err)
118165
return nil, err
119166
}
120-
return adapter.EnvOverrideDBToDTO(overrideDBObj), nil
167+
overrideDTO := adapter.EnvOverrideDBToDTO(overrideDBObj)
168+
overrideDTO, err = impl.getOverrideDataWithUpdatedPatchDataUnResolved(overrideDTO, overrideDTO.Chart.AppId)
169+
if err != nil {
170+
impl.logger.Errorw("error in patching values with base template values", "envId", overrideDTO.TargetEnvironment, "appId", overrideDTO.Chart.AppId, "err", err)
171+
return nil, err
172+
}
173+
return overrideDTO, nil
121174
}
122175

123176
func (impl EnvConfigOverrideReadServiceImpl) FindChartForAppByAppIdAndEnvId(appId, targetEnvironmentId int) (*bean.EnvConfigOverride, error) {
@@ -126,7 +179,13 @@ func (impl EnvConfigOverrideReadServiceImpl) FindChartForAppByAppIdAndEnvId(appI
126179
impl.logger.Errorw("error in getting chart env config override", "appId", appId, "targetEnvironmentId", targetEnvironmentId, "err", err)
127180
return nil, err
128181
}
129-
return adapter.EnvOverrideDBToDTO(overrideDBObj), nil
182+
overrideDTO := adapter.EnvOverrideDBToDTO(overrideDBObj)
183+
overrideDTO, err = impl.getOverrideDataWithUpdatedPatchDataUnResolved(overrideDTO, appId)
184+
if err != nil {
185+
impl.logger.Errorw("error in patching values with base template values", "envId", overrideDTO.TargetEnvironment, "appId", appId, "err", err)
186+
return nil, err
187+
}
188+
return overrideDTO, nil
130189
}
131190

132191
func (impl EnvConfigOverrideReadServiceImpl) GetByAppIdEnvIdAndChartRefId(appId, envId int, chartRefId int) (*bean.EnvConfigOverride, error) {
@@ -135,7 +194,13 @@ func (impl EnvConfigOverrideReadServiceImpl) GetByAppIdEnvIdAndChartRefId(appId,
135194
impl.logger.Errorw("error in getting chart env config override", "appId", appId, "envId", envId, "chartRefId", chartRefId, "err", err)
136195
return nil, err
137196
}
138-
return adapter.EnvOverrideDBToDTO(overrideDBObj), nil
197+
overrideDTO := adapter.EnvOverrideDBToDTO(overrideDBObj)
198+
overrideDTO, err = impl.getOverrideDataWithUpdatedPatchDataUnResolved(overrideDTO, appId)
199+
if err != nil {
200+
impl.logger.Errorw("error in patching values with base template values", "envId", overrideDTO.TargetEnvironment, "appId", appId, "err", err)
201+
return nil, err
202+
}
203+
return overrideDTO, nil
139204
}
140205

141206
func (impl EnvConfigOverrideReadServiceImpl) GetAllOverridesForApp(ctx context.Context, appId int) ([]*bean.EnvConfigOverride, error) {
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*
2+
* Copyright (c) 2024. Devtron Inc.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package read
18+
19+
import "github.com/devtron-labs/devtron/pkg/deployment/manifest/deploymentTemplate/bean"
20+
21+
type EnvConfigOverrideServiceEnt interface {
22+
}
23+
24+
func (impl EnvConfigOverrideReadServiceImpl) getOverrideDataWithUpdatedPatchDataUnResolved(overrideDTO *bean.EnvConfigOverride, appId int) (*bean.EnvConfigOverride, error) {
25+
return overrideDTO, nil
26+
}

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.

0 commit comments

Comments
 (0)