Skip to content

Commit d1ff720

Browse files
committed
feat: DeploymentConfigDiff - revamped logic to parse draft deployment template resolved values and template version
1 parent bb309f2 commit d1ff720

File tree

2 files changed

+64
-19
lines changed

2 files changed

+64
-19
lines changed

src/Shared/Components/DeploymentConfigDiff/DeploymentConfigDiff.types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
ConfigMapSecretDataConfigDatumDTO,
66
DeploymentTemplateDTO,
77
EnvResourceType,
8+
TemplateListDTO,
89
} from '@Shared/Services'
910

1011
import { ManifestTemplateDTO } from '@Pages/Applications'
@@ -152,10 +153,14 @@ export type AppEnvDeploymentConfigListParams<IsManifestView> = (IsManifestView e
152153
? {
153154
currentList: ManifestTemplateDTO
154155
compareList: ManifestTemplateDTO
156+
compareToTemplateOptions?: never
157+
compareWithTemplateOptions?: never
155158
}
156159
: {
157160
currentList: AppEnvDeploymentConfigDTO
158161
compareList: AppEnvDeploymentConfigDTO
162+
compareToTemplateOptions?: TemplateListDTO[]
163+
compareWithTemplateOptions?: TemplateListDTO[]
159164
}) & {
160165
getNavItemHref: (resourceType: EnvResourceType, resourceName: string) => string
161166
isManifestView?: IsManifestView

src/Shared/Components/DeploymentConfigDiff/DeploymentConfigDiff.utils.tsx

Lines changed: 59 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,22 @@ export const getDeploymentTemplateData = (data: DeploymentTemplateDTO) => {
4040
)
4141
}
4242

43+
const getDeploymentTemplateAppMetricsAndTemplateVersion = (
44+
data: DeploymentTemplateDTO,
45+
templateOptions: TemplateListDTO[],
46+
) => {
47+
const parsedDraftData = JSON.parse(data?.deploymentDraftData?.configData[0].draftMetadata.data || null)
48+
const draftTemplateVersion = templateOptions?.find(
49+
({ chartRefId }) => parsedDraftData?.chartRefId === chartRefId,
50+
)?.chartVersion
51+
52+
return {
53+
isAppMetricsEnabled:
54+
parsedDraftData || data ? parsedDraftData?.isAppMetricsEnabled || data?.isAppMetricsEnabled || false : null,
55+
templateVersion: draftTemplateVersion || data?.templateVersion,
56+
}
57+
}
58+
4359
/**
4460
* Retrieves the draft data from the given configuration data object.
4561
*
@@ -338,7 +354,7 @@ const getDiffViewData = (
338354
}
339355
}
340356

341-
const getDeploymentTemplateDiffViewData = (data: DeploymentTemplateDTO | null) => {
357+
const getDeploymentTemplateDiffViewData = (data: DeploymentTemplateDTO | null, templateOptions: TemplateListDTO[]) => {
342358
const _data = getDeploymentTemplateData(data)
343359
const codeEditorValue = {
344360
displayName: 'data',
@@ -347,8 +363,7 @@ const getDeploymentTemplateDiffViewData = (data: DeploymentTemplateDTO | null) =
347363

348364
const diffViewData = prepareHistoryData(
349365
{
350-
...(data || {}),
351-
isAppMetricsEnabled: data ? data.isAppMetricsEnabled || false : null,
366+
...getDeploymentTemplateAppMetricsAndTemplateVersion(data, templateOptions),
352367
codeEditorValue,
353368
},
354369
DEPLOYMENT_HISTORY_CONFIGURATION_LIST_MAP.DEPLOYMENT_TEMPLATE.VALUE,
@@ -516,12 +531,39 @@ const getConfigMapSecretData = (
516531
return deploymentConfig
517532
}
518533

519-
const getDeploymentTemplateResolvedData = (deploymentTemplate: DeploymentTemplateDTO) => {
534+
const getDeploymentTemplateResolvedData = (deploymentTemplate: DeploymentTemplateDTO): DeploymentTemplateDTO => {
520535
try {
521536
if (deploymentTemplate.deploymentDraftData) {
522-
return JSON.parse(deploymentTemplate.deploymentDraftData.configData[0].draftMetadata.draftResolvedValue)
537+
const parsedDraftResolvedData = JSON.parse(
538+
deploymentTemplate.deploymentDraftData.configData[0].draftMetadata.draftResolvedValue,
539+
)
540+
541+
return {
542+
...deploymentTemplate,
543+
deploymentDraftData: {
544+
...deploymentTemplate.deploymentDraftData,
545+
configData: [
546+
{
547+
...deploymentTemplate.deploymentDraftData.configData[0],
548+
draftMetadata: {
549+
...deploymentTemplate.deploymentDraftData.configData[0].draftMetadata,
550+
data: JSON.stringify({
551+
...JSON.parse(
552+
deploymentTemplate.deploymentDraftData.configData[0].draftMetadata.data,
553+
),
554+
envOverrideValues: parsedDraftResolvedData,
555+
}),
556+
},
557+
},
558+
],
559+
},
560+
}
561+
}
562+
563+
return {
564+
...deploymentTemplate,
565+
data: deploymentTemplate.resolvedValue,
523566
}
524-
return deploymentTemplate.resolvedValue
525567
} catch {
526568
return null
527569
}
@@ -545,19 +587,9 @@ const getConfigDataWithResolvedDeploymentTemplate = (
545587
return data
546588
}
547589

548-
const deploymentTemplateResolvedData = getDeploymentTemplateResolvedData(data.deploymentTemplate)
549-
550590
return {
551591
...data,
552-
deploymentTemplate: {
553-
...data.deploymentTemplate,
554-
...(deploymentTemplateResolvedData
555-
? {
556-
data: deploymentTemplateResolvedData,
557-
deploymentDraftData: null,
558-
}
559-
: {}),
560-
},
592+
deploymentTemplate: getDeploymentTemplateResolvedData(data.deploymentTemplate),
561593
}
562594
}
563595

@@ -579,6 +611,8 @@ export const getAppEnvDeploymentConfigList = <ManifestView extends boolean = fal
579611
getNavItemHref,
580612
isManifestView,
581613
convertVariables = false,
614+
compareToTemplateOptions,
615+
compareWithTemplateOptions,
582616
}: AppEnvDeploymentConfigListParams<ManifestView>): {
583617
configList: DeploymentConfigDiffProps['configList']
584618
navList: DeploymentConfigDiffProps['navList']
@@ -593,8 +627,14 @@ export const getAppEnvDeploymentConfigList = <ManifestView extends boolean = fal
593627
compareList as AppEnvDeploymentConfigListParams<false>['compareList'],
594628
convertVariables,
595629
)
596-
const currentDeploymentData = getDeploymentTemplateDiffViewData(compareToObject.deploymentTemplate)
597-
const compareDeploymentData = getDeploymentTemplateDiffViewData(compareWithObject.deploymentTemplate)
630+
const currentDeploymentData = getDeploymentTemplateDiffViewData(
631+
compareToObject.deploymentTemplate,
632+
compareToTemplateOptions,
633+
)
634+
const compareDeploymentData = getDeploymentTemplateDiffViewData(
635+
compareWithObject.deploymentTemplate,
636+
compareWithTemplateOptions,
637+
)
598638

599639
const deploymentTemplateData = {
600640
id: EnvResourceType.DeploymentTemplate,

0 commit comments

Comments
 (0)