in src/app/backend/resource/pod/detail.go [303:356]
func evalEnvFrom(container v1.Container, configMaps *v1.ConfigMapList, secrets *v1.SecretList) []EnvVar {
vars := make([]EnvVar, 0)
for _, envFromVar := range container.EnvFrom {
switch {
case envFromVar.ConfigMapRef != nil:
name := envFromVar.ConfigMapRef.LocalObjectReference.Name
for _, configMap := range configMaps.Items {
if configMap.ObjectMeta.Name == name {
for key, value := range configMap.Data {
valueFrom := &v1.EnvVarSource{
ConfigMapKeyRef: &v1.ConfigMapKeySelector{
LocalObjectReference: v1.LocalObjectReference{
Name: name,
},
Key: key,
},
}
variable := EnvVar{
Name: envFromVar.Prefix + key,
Value: value,
ValueFrom: valueFrom,
}
vars = append(vars, variable)
}
break
}
}
case envFromVar.SecretRef != nil:
name := envFromVar.SecretRef.LocalObjectReference.Name
for _, secret := range secrets.Items {
if secret.ObjectMeta.Name == name {
for key, value := range secret.Data {
valueFrom := &v1.EnvVarSource{
SecretKeyRef: &v1.SecretKeySelector{
LocalObjectReference: v1.LocalObjectReference{
Name: name,
},
Key: key,
},
}
variable := EnvVar{
Name: envFromVar.Prefix + key,
Value: base64.StdEncoding.EncodeToString(value),
ValueFrom: valueFrom,
}
vars = append(vars, variable)
}
break
}
}
}
}
return vars
}