diff --git a/fdbkubernetesmonitor/api/config.go b/fdbkubernetesmonitor/api/config.go index f62bfc2c42..facd983f6a 100644 --- a/fdbkubernetesmonitor/api/config.go +++ b/fdbkubernetesmonitor/api/config.go @@ -69,7 +69,7 @@ type Argument struct { Offset int `json:"offset,omitempty"` // IPFamily provides the family to use for IPList type arguments. - IPFamily int `json:"ipFamily,omitEmpty"` + IPFamily int `json:"ipFamily,omitempty"` } // ArgumentType defines the types for arguments. @@ -121,9 +121,9 @@ func (argument Argument) GenerateArgument(processNumber int, env map[string]stri number = number + argument.Offset return strconv.Itoa(number), nil case EnvironmentArgumentType: - return argument.lookupEnv(env) + return argument.LookupEnv(env) case IPListArgumentType: - envValue, err := argument.lookupEnv(env) + envValue, err := argument.LookupEnv(env) if err != nil { return "", err } @@ -153,7 +153,7 @@ func (argument Argument) GenerateArgument(processNumber int, env map[string]stri } // lookupEnv looks up the value for an argument from the environment. -func (argument Argument) lookupEnv(env map[string]string) (string, error) { +func (argument Argument) LookupEnv(env map[string]string) (string, error) { var value string var present bool if env != nil { diff --git a/fdbkubernetesmonitor/kubernetes.go b/fdbkubernetesmonitor/kubernetes.go index cefd492dc7..ea5e5d0d72 100644 --- a/fdbkubernetesmonitor/kubernetes.go +++ b/fdbkubernetesmonitor/kubernetes.go @@ -96,13 +96,16 @@ func CreatePodClient(logger logr.Logger) (*PodClient, error) { // retrieveEnvironmentVariables extracts the environment variables we have for // an argument into a map. -func retrieveEnvironmentVariables(argument api.Argument, target map[string]string) { +func retrieveEnvironmentVariables(monitor *Monitor, argument api.Argument, target map[string]string) { if argument.Source != "" { - target[argument.Source] = os.Getenv(argument.Source) + value, err := argument.LookupEnv(monitor.CustomEnvironment) + if err == nil { + target[argument.Source] = value + } } if argument.Values != nil { for _, childArgument := range argument.Values { - retrieveEnvironmentVariables(childArgument, target) + retrieveEnvironmentVariables(monitor, childArgument, target) } } } @@ -112,7 +115,7 @@ func retrieveEnvironmentVariables(argument api.Argument, target map[string]strin func (client *PodClient) UpdateAnnotations(monitor *Monitor) error { environment := make(map[string]string) for _, argument := range monitor.ActiveConfiguration.Arguments { - retrieveEnvironmentVariables(argument, environment) + retrieveEnvironmentVariables(monitor, argument, environment) } environment["BINARY_DIR"] = path.Dir(monitor.ActiveConfiguration.BinaryPath) jsonEnvironment, err := json.Marshal(environment)