diff --git a/app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationEnvVarsTable.tsx b/app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationEnvVarsTable.tsx index 19ff4967f..5c2ac907e 100644 --- a/app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationEnvVarsTable.tsx +++ b/app/react/kubernetes/applications/DetailsView/ApplicationDetailsWidget/ApplicationEnvVarsTable.tsx @@ -1,4 +1,4 @@ -import { Pod } from 'kubernetes-types/core/v1'; +import { EnvVar, Pod } from 'kubernetes-types/core/v1'; import { Asterisk, File, FileCode, Key, Lock } from 'lucide-react'; import { Icon } from '@@/Icon'; @@ -44,7 +44,7 @@ export function ApplicationEnvVarsTable({ namespace, app }: Props) { {envVar.isInitContainer && ( - {envVar.fieldPath} ( + {envVar.valueFrom?.fieldRef?.fieldPath} ( )} - {envVar.key || '-'} + {envVar.name} {envVar.value && {envVar.value}} - {envVar.fieldPath && ( + {envVar.valueFrom?.fieldRef?.fieldPath && ( - {envVar.fieldPath} ( + {envVar.valueFrom.fieldRef.fieldPath} ( )} - {envVar.key ? ( + {envVar.valueFrom?.secretKeyRef?.key && ( - {envVar.key} + {envVar.valueFrom.secretKeyRef.key} - ) : ( - '-' )} + {envVar.valueFrom?.configMapKeyRef?.key && ( + + + {envVar.valueFrom.configMapKeyRef.key} + + )} + {!envVar.value && !envVar.valueFrom && -} - {!envVar.resourseName && -} - {envVar.resourseName && ( + {!envVar.valueFrom?.configMapKeyRef?.name && + !envVar.valueFrom?.secretKeyRef?.name && -} + {envVar.valueFrom?.configMapKeyRef && ( - - {envVar.resourseName} + + {envVar.valueFrom.configMapKeyRef.name} + + + )} + {envVar.valueFrom?.secretKeyRef && ( + + + + {envVar.valueFrom.secretKeyRef.name} )} @@ -116,14 +130,9 @@ export function ApplicationEnvVarsTable({ namespace, app }: Props) { ); } -interface ContainerEnvVar { - key?: string; - value?: string; - fieldPath?: string; +interface ContainerEnvVar extends EnvVar { containerName: string; isInitContainer: boolean; - type: 'configMap' | 'secret'; - resourseName: string; } function getApplicationEnvironmentVariables( @@ -141,60 +150,23 @@ function getApplicationEnvironmentVariables( // get all the environment variables for each container const appContainersEnvVars = - appContainers?.flatMap((container) => { - const containerEnvVars: ContainerEnvVar[] = + appContainers?.flatMap( + (container) => container?.env?.map((envVar) => ({ - key: envVar?.name, - fieldPath: envVar?.valueFrom?.fieldRef?.fieldPath, + ...envVar, containerName: container.name, isInitContainer: false, - type: envVar?.valueFrom?.configMapKeyRef ? 'configMap' : 'secret', - resourseName: - envVar?.valueFrom?.configMapKeyRef?.name || - envVar?.valueFrom?.secretKeyRef?.name || - '', - })) || []; - - const containerEnvFroms: ContainerEnvVar[] = - container?.envFrom?.map((envFrom) => ({ - name: '', - resourseName: - envFrom?.configMapRef?.name || envFrom?.secretRef?.name || '', - containerName: container.name, - isInitContainer: false, - type: envFrom?.configMapRef ? 'configMap' : 'secret', - })) || []; - - return [...containerEnvVars, ...containerEnvFroms]; - }) || []; - + })) || [] + ) || []; const appInitContainersEnvVars = - appInitContainers?.flatMap((container) => { - const containerEnvVars: ContainerEnvVar[] = + appInitContainers?.flatMap( + (container) => container?.env?.map((envVar) => ({ - key: envVar?.name, - fieldPath: envVar?.valueFrom?.fieldRef?.fieldPath, + ...envVar, containerName: container.name, - isInitContainer: false, - type: envVar?.valueFrom?.configMapKeyRef ? 'configMap' : 'secret', - resourseName: - envVar?.valueFrom?.configMapKeyRef?.name || - envVar?.valueFrom?.secretKeyRef?.name || - '', - })) || []; - - const containerEnvFroms: ContainerEnvVar[] = - container?.envFrom?.map((envFrom) => ({ - name: '', - resourseName: - envFrom?.configMapRef?.name || envFrom?.secretRef?.name || '', - containerName: container.name, - isInitContainer: false, - type: envFrom?.configMapRef ? 'configMap' : 'secret', - })) || []; - - return [...containerEnvVars, ...containerEnvFroms]; - }) || []; + isInitContainer: true, + })) || [] + ) || []; return [...appContainersEnvVars, ...appInitContainersEnvVars]; } diff --git a/app/react/kubernetes/applications/application.service.ts b/app/react/kubernetes/applications/application.service.ts index 22db69be7..ac04f2d04 100644 --- a/app/react/kubernetes/applications/application.service.ts +++ b/app/react/kubernetes/applications/application.service.ts @@ -250,12 +250,7 @@ async function getApplicationsByKind( const { data } = await axios.get( buildUrl(environmentId, namespace, `${appKind}s`) ); - const items = (data.items || []).map((app) => ({ - ...app, - kind: appKind, - apiVersion: data.apiVersion, - })); - return items as T['items']; + return data.items as T['items']; } catch (e) { throw parseAxiosError(e as Error, `Unable to retrieve ${appKind}s`); } diff --git a/app/react/kubernetes/applications/pod.service.ts b/app/react/kubernetes/applications/pod.service.ts index 5d53a9e55..f53c95d6d 100644 --- a/app/react/kubernetes/applications/pod.service.ts +++ b/app/react/kubernetes/applications/pod.service.ts @@ -19,15 +19,7 @@ export async function getNamespacePods( }, } ); - const items = (data.items || []).map( - (pod) => - { - ...pod, - kind: 'Pod', - apiVersion: data.apiVersion, - } - ); - return items; + return data.items; } catch (e) { throw parseAxiosError(e as Error, 'Unable to retrieve pods'); } diff --git a/app/react/kubernetes/configs/ListView/ConfigMapsDatatable/utils.ts b/app/react/kubernetes/configs/ListView/ConfigMapsDatatable/utils.ts index 343b89278..844c3f38c 100644 --- a/app/react/kubernetes/configs/ListView/ConfigMapsDatatable/utils.ts +++ b/app/react/kubernetes/configs/ListView/ConfigMapsDatatable/utils.ts @@ -14,16 +14,12 @@ export function getIsConfigMapInUse( ? app?.spec : app?.spec?.template?.spec; - const hasEnvVarReference = appSpec?.containers.some((container) => { - const valueFromEnv = container.env?.some( + const hasEnvVarReference = appSpec?.containers.some((container) => + container.env?.some( (envVar) => envVar.valueFrom?.configMapKeyRef?.name === configMap.metadata?.name - ); - const envFromEnv = container.envFrom?.some( - (envVar) => envVar.configMapRef?.name === configMap.metadata?.name - ); - return valueFromEnv || envFromEnv; - }); + ) + ); const hasVolumeReference = appSpec?.volumes?.some( (volume) => volume.configMap?.name === configMap.metadata?.name ); diff --git a/app/react/kubernetes/configs/ListView/SecretsDatatable/utils.ts b/app/react/kubernetes/configs/ListView/SecretsDatatable/utils.ts index b6d1d015d..ca4546b52 100644 --- a/app/react/kubernetes/configs/ListView/SecretsDatatable/utils.ts +++ b/app/react/kubernetes/configs/ListView/SecretsDatatable/utils.ts @@ -11,16 +11,12 @@ export function getIsSecretInUse(secret: Secret, applications: Application[]) { ? app?.spec : app?.spec?.template?.spec; - const hasEnvVarReference = appSpec?.containers.some((container) => { - const valueFromEnv = container.env?.some( + const hasEnvVarReference = appSpec?.containers.some((container) => + container.env?.some( (envVar) => envVar.valueFrom?.secretKeyRef?.name === secret.metadata?.name - ); - const envFromEnv = container.envFrom?.some( - (envVar) => envVar.secretRef?.name === secret.metadata?.name - ); - return valueFromEnv || envFromEnv; - }); + ) + ); const hasVolumeReference = appSpec?.volumes?.some( (volume) => volume.secret?.secretName === secret.metadata?.name );