1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Display environment variables coming from secret in pod details (#2167)

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
This commit is contained in:
Lauri Nevala 2021-02-23 15:47:40 +02:00 committed by GitHub
parent 5258aab0d2
commit 103467d31b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -30,7 +30,11 @@ export const ContainerEnvironment = observer((props: Props) => {
}
});
envFrom && envFrom.forEach(item => {
const { configMapRef } = item;
const { configMapRef, secretRef } = item;
if (secretRef && secretRef.name) {
secretsStore.load({ name: secretRef.name, namespace });
}
if (configMapRef && configMapRef.name) {
configMapsStore.load({ name: configMapRef.name, namespace });
@ -89,8 +93,18 @@ export const ContainerEnvironment = observer((props: Props) => {
const renderEnvFrom = () => {
const envVars = envFrom.map(vars => {
if (!vars.configMapRef || !vars.configMapRef.name) return;
const configMap = configMapsStore.getByName(vars.configMapRef.name, namespace);
if (vars.configMapRef?.name) {
return renderEnvFromConfigMap(vars.configMapRef.name);
} else if (vars.secretRef?.name ) {
return renderEnvFromSecret(vars.secretRef.name);
}
});
return _.flatten(envVars);
};
const renderEnvFromConfigMap = (configMapName: string) => {
const configMap = configMapsStore.getByName(configMapName, namespace);
if (!configMap) return;
@ -99,9 +113,32 @@ export const ContainerEnvironment = observer((props: Props) => {
<span className="var-name">{name}</span>: {value}
</div>
));
});
};
return _.flatten(envVars);
const renderEnvFromSecret = (secretName: string) => {
const secret = secretsStore.getByName(secretName, namespace);
if (!secret) return;
return Object.keys(secret.data).map(key => {
const secretKeyRef = {
name: secret.getName(),
key
};
const value = (
<SecretKey
reference={secretKeyRef}
namespace={namespace}
/>
);
return (
<div className="variable" key={key}>
<span className="var-name">{key}</span>: {value}
</div>
);
});
};
return (