in patch.go [112:170]
func generateEnvironmentVariables(config agentConfig) ([]corev1.EnvVar, error) {
optional := true
vars := []corev1.EnvVar{{
Name: "ELASTIC_APM_SECRET_TOKEN",
ValueFrom: &corev1.EnvVarSource{
SecretKeyRef: &corev1.SecretKeySelector{
LocalObjectReference: corev1.LocalObjectReference{Name: "apm-agent-auth"},
Key: "secret_token",
Optional: &optional,
},
},
}, {
Name: "ELASTIC_APM_API_KEY",
ValueFrom: &corev1.EnvVarSource{
SecretKeyRef: &corev1.SecretKeySelector{
LocalObjectReference: corev1.LocalObjectReference{Name: "apm-agent-auth"},
Key: "api_key",
Optional: &optional,
},
},
}}
if _, ok := config.Environment["ELASTIC_APM_SERVER_URL"]; !ok {
// No apm-server url present, inject the local node address.
vars = append(vars, corev1.EnvVar{
Name: "HOST_IP",
ValueFrom: &corev1.EnvVarSource{
FieldRef: &corev1.ObjectFieldSelector{
FieldPath: "status.hostIP",
},
},
}, corev1.EnvVar{
Name: "ELASTIC_APM_SERVER_URL", Value: "http://$(HOST_IP):8200",
})
}
if _, ok := config.Environment["ELASTIC_APM_ACTIVATION_METHOD"]; !ok {
vars = append(vars, corev1.EnvVar{
Name: "ELASTIC_APM_ACTIVATION_METHOD", Value: "K8S_ATTACH",
})
}
for k, v := range kubernetesEnvironmentVariables {
vars = append(vars, corev1.EnvVar{
Name: k,
ValueFrom: &corev1.EnvVarSource{
FieldRef: &corev1.ObjectFieldSelector{
FieldPath: v,
},
},
})
}
for name, value := range config.Environment {
vars = append(vars, corev1.EnvVar{Name: name, Value: value})
}
for _, ev := range vars {
if errs := validation.IsEnvVarName(ev.Name); len(errs) != 0 {
return nil, fmt.Errorf("failed to validate environment variable %q: %v", ev.Name, errs)
}
}
return vars, nil
}