in pkg/esoutput/config.go [186:268]
func GetConsolidatedConfig(jsonRawConf json.RawMessage, env map[string]string, arg string) (Config, error) {
result := NewConfig()
if jsonRawConf != nil {
jsonConf := Config{}
if err := json.Unmarshal(jsonRawConf, &jsonConf); err != nil {
return result, err
}
result = result.Apply(jsonConf)
}
getEnvBool := func(env map[string]string, name string) (null.Bool, error) {
if v, vDefined := env[name]; vDefined {
if b, err := strconv.ParseBool(v); err != nil {
return null.NewBool(false, false), err
} else {
return null.BoolFrom(b), nil
}
}
return null.NewBool(false, false), nil
}
// envconfig is not processing some undefined vars (at least duration) so apply them manually
if flushPeriod, flushPeriodDefined := env["K6_ELASTICSEARCH_FLUSH_PERIOD"]; flushPeriodDefined {
if err := result.FlushPeriod.UnmarshalText([]byte(flushPeriod)); err != nil {
return result, err
}
}
if url, defined := env["K6_ELASTICSEARCH_URL"]; defined {
result.Url = null.StringFrom(url)
}
if cloudId, defined := env["K6_ELASTICSEARCH_CLOUD_ID"]; defined {
result.CloudID = null.StringFrom(cloudId)
}
if ca, defined := env["K6_ELASTICSEARCH_CA_CERT_FILE"]; defined {
result.CACert = null.StringFrom(ca)
}
if skipVerify, err := getEnvBool(env, "K6_ELASTICSEARCH_INSECURE_SKIP_VERIFY"); err != nil {
return result, err
} else {
if skipVerify.Valid {
result.InsecureSkipVerify = skipVerify
}
}
if clientCert, defined := env["K6_ELASTICSEARCH_CLIENT_CERT_FILE"]; defined {
result.ClientCert = null.StringFrom(clientCert)
}
if clientKey, defined := env["K6_ELASTICSEARCH_CLIENT_KEY_FILE"]; defined {
result.ClientKey = null.StringFrom(clientKey)
}
if user, defined := env["K6_ELASTICSEARCH_USER"]; defined {
result.User = null.StringFrom(user)
}
if password, defined := env["K6_ELASTICSEARCH_PASSWORD"]; defined {
result.Password = null.StringFrom(password)
}
if apiKey, defined := env["K6_ELASTICSEARCH_API_KEY"]; defined {
result.APIKey = null.StringFrom(apiKey)
}
if serviceAccountToken, defined := env["K6_ELASTICSEARCH_SERVICE_ACCOUNT_TOKEN"]; defined {
result.ServiceAccountToken = null.StringFrom(serviceAccountToken)
}
if indexName, defined := env["K6_ELASTICSEARCH_INDEX_NAME"]; defined {
result.IndexName = null.StringFrom(indexName)
}
if arg != "" {
argConf, err := ParseArg(arg)
if err != nil {
return result, err
}
result = result.Apply(argConf)
}
return result, nil
}