Skip to content

Commit 8b20f40

Browse files
authored
Merge pull request #2906 from devtron-labs/fix/pipeline-config
fix: update secretsData handling for pipeline deployment configurations
2 parents cf9d798 + dcbb682 commit 8b20f40

File tree

1 file changed

+61
-25
lines changed

1 file changed

+61
-25
lines changed

src/components/app/details/triggerView/PipelineConfigDiff/usePipelineDeploymentConfig.ts

Lines changed: 61 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -160,46 +160,82 @@ export const usePipelineDeploymentConfig = ({
160160
// NOTE: for security reasons secretsData from getAppEnvDeploymentConfig
161161
// will be null if user is not app admin. therefore need to override it
162162
// with masked values from getCompareSecretsData api
163-
if (
164-
_pipelineDeploymentConfigRes[0].status === 'fulfilled' &&
165-
_pipelineDeploymentConfigRes[0].value &&
166-
!_pipelineDeploymentConfigRes[0].value.result.isAppAdmin &&
167-
secretsData.status === 'fulfilled' &&
168-
secretsData.value?.[0]
169-
) {
170-
_pipelineDeploymentConfigRes[0].value.result.secretsData = secretsData.value[0].secretsData
171-
}
172-
173-
if (
174-
_pipelineDeploymentConfigRes[1].status === 'fulfilled' &&
175-
_pipelineDeploymentConfigRes[1].value &&
176-
!_pipelineDeploymentConfigRes[1].value.result.isAppAdmin &&
177-
secretsData.status === 'fulfilled' &&
178-
secretsData.value?.[1]
179-
) {
180-
// we can use 0th secret data it will not impact strategy
181-
_pipelineDeploymentConfigRes[1].value.result.secretsData = secretsData.value[0].secretsData
182-
_pipelineDeploymentConfigRes[1].value.result.secretsData = secretsData.value[0].secretsData
183-
}
184-
163+
// setting pipelineConfig - last saved config (current published)
185164
if (
186165
_pipelineDeploymentConfigRes[2].status === 'fulfilled' &&
187166
_pipelineDeploymentConfigRes[2].value &&
188167
!_pipelineDeploymentConfigRes[2].value.result.isAppAdmin &&
189168
secretsData.status === 'fulfilled' &&
190-
secretsData.value?.[2]
169+
secretsData.value?.[1]
191170
) {
192171
_pipelineDeploymentConfigRes[2].value.result.secretsData = secretsData.value[1].secretsData
193172
}
194173

174+
// Rollback case
175+
if (isRollbackTriggerSelected && wfrId) {
176+
// setting pipelineConfig - last deployed config (w/o deployment strategy)
177+
if (
178+
_pipelineDeploymentConfigRes[0].status === 'fulfilled' &&
179+
_pipelineDeploymentConfigRes[0].value &&
180+
!_pipelineDeploymentConfigRes[0].value.result.isAppAdmin &&
181+
secretsDataCDRollback.status === 'fulfilled' &&
182+
secretsDataCDRollback.value?.[0]
183+
) {
184+
_pipelineDeploymentConfigRes[0].value.result.secretsData =
185+
secretsDataCDRollback.value[0].secretsData
186+
}
187+
188+
// setting pipelineConfig - last deployed config (with deployment strategy)
189+
if (
190+
_pipelineDeploymentConfigRes[1].status === 'fulfilled' &&
191+
_pipelineDeploymentConfigRes[1].value &&
192+
!_pipelineDeploymentConfigRes[1].value.result.isAppAdmin &&
193+
secretsDataCDRollback.status === 'fulfilled' &&
194+
secretsDataCDRollback.value?.[0]
195+
) {
196+
// we can use 0th secret data it will not impact strategy
197+
_pipelineDeploymentConfigRes[1].value.result.secretsData =
198+
secretsDataCDRollback.value[0].secretsData
199+
_pipelineDeploymentConfigRes[1].value.result.secretsData =
200+
secretsDataCDRollback.value[0].secretsData
201+
}
202+
}
203+
// Deploy case
204+
else {
205+
// setting pipelineConfig - last deployed config (w/o deployment strategy)
206+
if (
207+
_pipelineDeploymentConfigRes[0].status === 'fulfilled' &&
208+
_pipelineDeploymentConfigRes[0].value &&
209+
!_pipelineDeploymentConfigRes[0].value.result.isAppAdmin &&
210+
secretsData.status === 'fulfilled' &&
211+
secretsData.value?.[0]
212+
) {
213+
_pipelineDeploymentConfigRes[0].value.result.secretsData = secretsData.value[0].secretsData
214+
}
215+
216+
// setting pipelineConfig - last deployed config (with deployment strategy)
217+
if (
218+
_pipelineDeploymentConfigRes[1].status === 'fulfilled' &&
219+
_pipelineDeploymentConfigRes[1].value &&
220+
!_pipelineDeploymentConfigRes[1].value.result.isAppAdmin &&
221+
secretsData.status === 'fulfilled' &&
222+
secretsData.value?.[0]
223+
) {
224+
// we can use 0th secret data it will not impact strategy
225+
_pipelineDeploymentConfigRes[1].value.result.secretsData = secretsData.value[0].secretsData
226+
_pipelineDeploymentConfigRes[1].value.result.secretsData = secretsData.value[0].secretsData
227+
}
228+
}
229+
230+
// setting pipelineConfig - rollback config
195231
if (
196232
_pipelineDeploymentConfigRes[3].status === 'fulfilled' &&
197233
_pipelineDeploymentConfigRes[3].value &&
198234
!_pipelineDeploymentConfigRes[3].value.result.isAppAdmin &&
199235
secretsDataCDRollback.status === 'fulfilled' &&
200-
secretsDataCDRollback.value?.[3]
236+
secretsDataCDRollback.value?.[1]
201237
) {
202-
_pipelineDeploymentConfigRes[3].value.result.secretsData = secretsDataCDRollback.value[2].secretsData
238+
_pipelineDeploymentConfigRes[3].value.result.secretsData = secretsDataCDRollback.value[1].secretsData
203239
}
204240

205241
return _pipelineDeploymentConfigRes

0 commit comments

Comments
 (0)