diff options
author | Arne Juul <arnej@yahooinc.com> | 2022-11-17 19:43:55 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2022-11-18 11:04:58 +0100 |
commit | 5cac8da71443aee16e995a9b5dee047a24507b94 (patch) | |
tree | 0b94a468b8e1e1d2d884763df3113089155050ad /client | |
parent | 54bf597303c071728607f2b49488faa0659a6f55 (diff) |
gather names of environment variables in one place
Diffstat (limited to 'client')
35 files changed, 278 insertions, 290 deletions
diff --git a/client/go/cmd/clusterstate/get_cluster_state.go b/client/go/cmd/clusterstate/get_cluster_state.go index 90e4351e855..cb8c0b97d04 100644 --- a/client/go/cmd/clusterstate/get_cluster_state.go +++ b/client/go/cmd/clusterstate/get_cluster_state.go @@ -12,6 +12,7 @@ import ( "github.com/fatih/color" "github.com/spf13/cobra" "github.com/vespa-engine/vespa/client/go/build" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" ) @@ -39,7 +40,7 @@ func runGetClusterState(opts *Options) { if opts.Silent { trace.Silent() } - if opts.NoColors || os.Getenv("TERM") == "" { + if opts.NoColors || os.Getenv(envvars.TERM) == "" { color.NoColor = true } trace.Debug("run getClusterState with: ", opts) diff --git a/client/go/cmd/clusterstate/get_node_state.go b/client/go/cmd/clusterstate/get_node_state.go index 24472042ea8..23eac74fed1 100644 --- a/client/go/cmd/clusterstate/get_node_state.go +++ b/client/go/cmd/clusterstate/get_node_state.go @@ -13,6 +13,7 @@ import ( "github.com/fatih/color" "github.com/spf13/cobra" "github.com/vespa-engine/vespa/client/go/build" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" ) @@ -57,7 +58,7 @@ func runGetNodeState(opts *Options) { if opts.Silent { trace.Silent() } - if opts.NoColors || os.Getenv("TERM") == "" { + if opts.NoColors || os.Getenv(envvars.TERM) == "" { color.NoColor = true } trace.Info(header) diff --git a/client/go/cmd/clusterstate/set_node_state.go b/client/go/cmd/clusterstate/set_node_state.go index 419fddc3692..aed5b21eecb 100644 --- a/client/go/cmd/clusterstate/set_node_state.go +++ b/client/go/cmd/clusterstate/set_node_state.go @@ -14,6 +14,7 @@ import ( "github.com/fatih/color" "github.com/spf13/cobra" "github.com/vespa-engine/vespa/client/go/build" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" ) @@ -74,7 +75,7 @@ func runSetNodeState(opts *Options, args []string) { if opts.Silent { trace.Silent() } - if opts.NoColors || os.Getenv("TERM") == "" { + if opts.NoColors || os.Getenv(envvars.TERM) == "" { color.NoColor = true } wanted, err := knownState(args[0]) diff --git a/client/go/defaults/defaults.go b/client/go/defaults/defaults.go index fdbc898ef76..83f07af364e 100644 --- a/client/go/defaults/defaults.go +++ b/client/go/defaults/defaults.go @@ -9,39 +9,25 @@ import ( "strconv" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" - "github.com/vespa-engine/vespa/client/go/util" ) const ( - ENV_VESPA_HOME = util.ENV_VESPA_HOME - ENV_VESPA_HOST = util.ENV_VESPA_HOSTNAME - ENV_VESPA_USER = util.ENV_VESPA_USER - - ENV_CONFIGSERVERS = "VESPA_CONFIGSERVERS" - ENV_ADDR_CONFIGSERVER = "addr_configserver" - DEFAULT_VESPA_HOME = "/opt/vespa" DEFAULT_VESPA_USER = "vespa" DEFAULT_VESPA_HOST = "localhost" - DEFAULT_VESPA_PORT_BASE = 19000 - ENV_VESPA_PORT_BASE = "VESPA_PORT_BASE" - + DEFAULT_VESPA_PORT_BASE = 19000 CONFIGSERVER_RPC_PORT_OFFSET = 70 - ENV_CONFIGSERVER_RPC_PORT = "port_configserver_rpc" - - CONFIGPROXY_RPC_PORT_OFFSET = 90 - ENV_CONFIGPROXY_RPC_PORT = "port_configproxy_rpc" - - DEFAULT_WEB_SERVICE_PORT = 8080 - ENV_WEB_SERVICE_PORT = "VESPA_WEB_SERVICE_PORT" + CONFIGPROXY_RPC_PORT_OFFSET = 90 + DEFAULT_WEB_SERVICE_PORT = 8080 ) // Compute the path prefix where Vespa files will live. // Note: does not end with "/" func VespaHome() string { - if env := os.Getenv(ENV_VESPA_HOME); env != "" { + if env := os.Getenv(envvars.VESPA_HOME); env != "" { return env } return DEFAULT_VESPA_HOME @@ -56,7 +42,7 @@ func UnderVespaHome(p string) string { // Compute the user name to own directories and run processes. func VespaUser() string { - if env := os.Getenv(ENV_VESPA_USER); env != "" { + if env := os.Getenv(envvars.VESPA_USER); env != "" { return env } return DEFAULT_VESPA_USER @@ -67,7 +53,7 @@ func VespaUser() string { // programs and provided in the environment variable VESPA_HOSTNAME; // if that variable isn't set a default of "localhost" is always returned. func VespaHostname() string { - if env := os.Getenv(ENV_VESPA_HOST); env != "" { + if env := os.Getenv(envvars.VESPA_HOSTNAME); env != "" { return env } return DEFAULT_VESPA_HOST @@ -76,9 +62,9 @@ func VespaHostname() string { // Compute the port number where the Vespa webservice // container should be available. func VespaContainerWebServicePort() int { - p := getNumFromEnv(ENV_WEB_SERVICE_PORT) + p := getNumFromEnv(envvars.VESPA_WEB_SERVICE_PORT) if p > 0 { - trace.Debug(ENV_WEB_SERVICE_PORT, p) + trace.Debug(envvars.VESPA_WEB_SERVICE_PORT, p) return p } return DEFAULT_WEB_SERVICE_PORT @@ -86,9 +72,9 @@ func VespaContainerWebServicePort() int { // Compute the base for port numbers where the Vespa services should listen. func VespaPortBase() int { - p := getNumFromEnv(ENV_VESPA_PORT_BASE) + p := getNumFromEnv(envvars.VESPA_PORT_BASE) if p > 0 { - trace.Debug(ENV_VESPA_PORT_BASE, p) + trace.Debug(envvars.VESPA_PORT_BASE, p) return p } return DEFAULT_VESPA_PORT_BASE @@ -168,9 +154,9 @@ func VespaConfigSourcesRpcAddrs() []string { } func splitVespaConfigservers() []string { - env := os.Getenv(ENV_CONFIGSERVERS) + env := os.Getenv(envvars.VESPA_CONFIGSERVERS) if env == "" { - env = os.Getenv(ENV_ADDR_CONFIGSERVER) + env = os.Getenv(envvars.ADDR_CONFIGSERVER) } parts := make([]string, 0, 3) for { @@ -193,7 +179,7 @@ func splitVespaConfigservers() []string { } func findConfigproxyRpcPort() int { - p := getNumFromEnv(ENV_CONFIGPROXY_RPC_PORT) + p := getNumFromEnv(envvars.CONFIGPROXY_RPC_PORT) if p > 0 { return p } @@ -201,9 +187,9 @@ func findConfigproxyRpcPort() int { } func findConfigserverRpcPort() int { - p := getNumFromEnv(ENV_CONFIGSERVER_RPC_PORT) + p := getNumFromEnv(envvars.CONFIGSERVER_RPC_PORT) if p > 0 { - trace.Debug(ENV_CONFIGSERVER_RPC_PORT, p) + trace.Debug(envvars.CONFIGSERVER_RPC_PORT, p) return p } return VespaPortBase() + CONFIGSERVER_RPC_PORT_OFFSET diff --git a/client/go/envvars/env_vars.go b/client/go/envvars/env_vars.go new file mode 100644 index 00000000000..dfefa3cb51e --- /dev/null +++ b/client/go/envvars/env_vars.go @@ -0,0 +1,85 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Author: arnej + +package envvars + +// well-known environment variable names + +const ( + ADDR_CONFIGSERVER = "addr_configserver" + CLOUDCONFIG_SERVER_MULTITENANT = "cloudconfig_server__multitenant" + CONFIGPROXY_RPC_PORT = "port_configproxy_rpc" + CONFIGSERVER_RPC_PORT = "port_configserver_rpc" + DEBUG_JVM_STARTUP = "DEBUG_JVM_STARTUP" + FILE_DESCRIPTOR_LIMIT = "file_descriptor_limit" + GLIBCXX_FORCE_NEW = "GLIBCXX_FORCE_NEW" + HUGEPAGES_LIST = "HUGEPAGES_LIST" + JAVA_HOME = "JAVA_HOME" + JAVAVM_LD_PRELOAD = "JAVAVM_LD_PRELOAD" + LD_LIBRARY_PATH = "LD_LIBRARY_PATH" + LD_PRELOAD = "LD_PRELOAD" + MADVISE_LIST = "MADVISE_LIST" + MALLOC_ARENA_MAX = "MALLOC_ARENA_MAX" + NO_VESPAMALLOC_LIST = "NO_VESPAMALLOC_LIST" + NUM_PROCESSES_LIMIT = "num_processes_limit" + PATH = "PATH" + PRELOAD = "PRELOAD" + ROOT = "ROOT" + STANDALONE_JDISC_APP_LOCATION = "standalone_jdisc_container__app_location" + STANDALONE_JDISC_DEPLOYMENT_PROFILE = "standalone_jdisc_container__deployment_profile" + STD_THREAD_PREVENT_TRY_CATCH = "STD_THREAD_PREVENT_TRY_CATCH" + TERM = "TERM" + TRACE_JVM_STARTUP = "TRACE_JVM_STARTUP" + VESPA_AFFINITY_CPU_SOCKET = "VESPA_AFFINITY_CPU_SOCKET" + VESPA_ALREADY_SWITCHED_USER_TO = "VESPA_ALREADY_SWITCHED_USER_TO" + VESPA_CLI_API_KEY_FILE = "VESPA_CLI_API_KEY_FILE" + VESPA_CLI_API_KEY = "VESPA_CLI_API_KEY" + VESPA_CLI_CACHE_DIR = "VESPA_CLI_CACHE_DIR" + VESPA_CLI_CLOUD_CI = "VESPA_CLI_CLOUD_CI" + VESPA_CLI_CLOUD_SYSTEM = "VESPA_CLI_CLOUD_SYSTEM" + VESPA_CLI_DATA_PLANE_CERT_FILE = "VESPA_CLI_DATA_PLANE_CERT_FILE" + VESPA_CLI_DATA_PLANE_CERT = "VESPA_CLI_DATA_PLANE_CERT" + VESPA_CLI_DATA_PLANE_KEY_FILE = "VESPA_CLI_DATA_PLANE_KEY_FILE" + VESPA_CLI_DATA_PLANE_KEY = "VESPA_CLI_DATA_PLANE_KEY" + VESPA_CLI_ENDPOINTS = "VESPA_CLI_ENDPOINTS" + VESPA_CLI_HOME = "VESPA_CLI_HOME" + VESPA_CONFIG_ID = "VESPA_CONFIG_ID" + VESPA_CONFIGSERVER_JVMARGS = "VESPA_CONFIGSERVER_JVMARGS" + VESPA_CONFIGSERVER_MULTITENANT = "VESPA_CONFIGSERVER_MULTITENANT" + VESPA_CONFIGSERVERS = "VESPA_CONFIGSERVERS" + VESPA_CONTAINER_JVMARGS = "VESPA_CONTAINER_JVMARGS" + VESPA_GROUP = "VESPA_GROUP" + VESPA_HOME = "VESPA_HOME" + VESPA_HOSTNAME = "VESPA_HOSTNAME" + VESPA_LOAD_CODE_AS_HUGEPAGES = "VESPA_LOAD_CODE_AS_HUGEPAGES" + VESPA_LOG_CONTROL_DIR = "VESPA_LOG_CONTROL_DIR" + VESPA_LOG_CONTROL_FILE = "VESPA_LOG_CONTROL_FILE" + VESPA_LOG_TARGET = "VESPA_LOG_TARGET" + VESPAMALLOCD_LIST = "VESPAMALLOCD_LIST" + VESPAMALLOCDST_LIST = "VESPAMALLOCDST_LIST" + VESPA_MALLOC_HUGEPAGES = "VESPA_MALLOC_HUGEPAGES" + VESPAMALLOC_LIST = "VESPAMALLOCD_LIST" + VESPA_MALLOC_MADVISE_LIMIT = "VESPA_MALLOC_MADVISE_LIMIT" + VESPA_NO_NUMACTL = "VESPA_NO_NUMACTL" + VESPA_PORT_BASE = "VESPA_PORT_BASE" + VESPA_SERVICE_NAME = "VESPA_SERVICE_NAME" + VESPA_TIMER_HZ = "VESPA_TIMER_HZ" + VESPA_TLS_CA_CERT = "VESPA_TLS_CA_CERT" + VESPA_TLS_CERT = "VESPA_TLS_CERT" + VESPA_TLS_CONFIG_FILE = "VESPA_TLS_CONFIG_FILE" + VESPA_TLS_ENABLED = "VESPA_TLS_ENABLED" + VESPA_TLS_HOSTNAME_VALIDATION_DISABLED = "VESPA_TLS_HOSTNAME_VALIDATION_DISABLED" + VESPA_TLS_INSECURE_MIXED_MODE = "VESPA_TLS_INSECURE_MIXED_MODE" + VESPA_TLS_PRIVATE_KEY = "VESPA_TLS_PRIVATE_KEY" + VESPA_USE_HUGEPAGES_LIST = "VESPA_USE_HUGEPAGES_LIST" + VESPA_USE_HUGEPAGES = "VESPA_USE_HUGEPAGES" + VESPA_USE_MADVISE_LIST = "VESPA_USE_MADVISE_LIST" + VESPA_USE_NO_VESPAMALLOC = "VESPA_USE_NO_VESPAMALLOC" + VESPA_USER = "VESPA_USER" + VESPA_USE_VALGRIND = "VESPA_USE_VALGRIND" + VESPA_USE_VESPAMALLOC_DST = "VESPA_USE_VESPAMALLOC_DST" + VESPA_USE_VESPAMALLOC_D = "VESPA_USE_VESPAMALLOC_D" + VESPA_USE_VESPAMALLOC = "VESPA_USE_VESPAMALLOC" + VESPA_VALGRIND_OPT = "VESPA_VALGRIND_OPT" + VESPA_WEB_SERVICE_PORT = "VESPA_WEB_SERVICE_PORT" +) diff --git a/client/go/jvm/application_container.go b/client/go/jvm/application_container.go index 2387ad66269..924a47f1997 100644 --- a/client/go/jvm/application_container.go +++ b/client/go/jvm/application_container.go @@ -8,6 +8,7 @@ import ( "os" "github.com/vespa-engine/vespa/client/go/defaults" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" ) @@ -144,7 +145,7 @@ func (a *ApplicationContainer) configureCPU(qc *QrStartConfig) { func (a *ApplicationContainer) configureOptions() { opts := a.JvmOptions() opts.AddOption("-Dconfig.id=" + a.ConfigId()) - if env := os.Getenv(VESPA_CONTAINER_JVMARGS); env != "" { + if env := os.Getenv(envvars.VESPA_CONTAINER_JVMARGS); env != "" { opts.AddJvmArgsFromString(env) } qrStartCfg := a.getQrStartCfg() diff --git a/client/go/jvm/env.go b/client/go/jvm/env.go index 3db0cfd17b4..97050bcca7c 100644 --- a/client/go/jvm/env.go +++ b/client/go/jvm/env.go @@ -7,41 +7,27 @@ import ( "fmt" "github.com/vespa-engine/vespa/client/go/defaults" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/prog" "github.com/vespa-engine/vespa/client/go/util" ) -const ( - ENV_JDISC_EXPORT = "jdisc_export_packages" - JAVAVM_LD_PRELOAD = "JAVAVM_LD_PRELOAD" - PRELOAD = "PRELOAD" - VESPA_CONTAINER_JVMARGS = "VESPA_CONTAINER_JVMARGS" - VESPA_LOG_CONTROL_DIR = "VESPA_LOG_CONTROL_DIR" - VESPA_LOG_TARGET = "VESPA_LOG_TARGET" - - LD_LIBRARY_PATH = util.ENV_LD_LIBRARY_PATH - LD_PRELOAD = util.ENV_LD_PRELOAD - VESPA_CONFIG_ID = util.ENV_CONFIG_ID - VESPA_SERVICE_NAME = util.ENV_SERVICE_NAME - MALLOC_ARENA_MAX = util.ENV_MALLOC_ARENA_MAX -) - func (c *containerBase) exportEnvSettings(ps *prog.Spec) { vespaHome := defaults.VespaHome() vlt := fmt.Sprintf("file:%s/logs/vespa/vespa.log", vespaHome) lcd := fmt.Sprintf("%s/var/db/vespa/logcontrol", vespaHome) dlp := fmt.Sprintf("%s/lib64", vespaHome) - ps.Setenv(VESPA_LOG_TARGET, vlt) - ps.Setenv(VESPA_LOG_CONTROL_DIR, lcd) - ps.Setenv(VESPA_SERVICE_NAME, c.ServiceName()) - ps.Setenv(LD_LIBRARY_PATH, dlp) - ps.Setenv(MALLOC_ARENA_MAX, "1") - if preload := ps.Getenv(PRELOAD); preload != "" { - ps.Setenv(JAVAVM_LD_PRELOAD, preload) - ps.Setenv(LD_PRELOAD, preload) + ps.Setenv(envvars.VESPA_LOG_TARGET, vlt) + ps.Setenv(envvars.VESPA_LOG_CONTROL_DIR, lcd) + ps.Setenv(envvars.VESPA_SERVICE_NAME, c.ServiceName()) + ps.Setenv(envvars.LD_LIBRARY_PATH, dlp) + ps.Setenv(envvars.MALLOC_ARENA_MAX, "1") + if preload := ps.Getenv(envvars.PRELOAD); preload != "" { + ps.Setenv(envvars.JAVAVM_LD_PRELOAD, preload) + ps.Setenv(envvars.LD_PRELOAD, preload) } if c.ConfigId() != "" { - ps.Setenv(VESPA_CONFIG_ID, c.ConfigId()) + ps.Setenv(envvars.VESPA_CONFIG_ID, c.ConfigId()) } util.OptionallyReduceTimerFrequency() } diff --git a/client/go/jvm/run.go b/client/go/jvm/run.go index 01111e8a1a4..d0ce2f72988 100644 --- a/client/go/jvm/run.go +++ b/client/go/jvm/run.go @@ -6,15 +6,15 @@ package jvm import ( "os" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" - "github.com/vespa-engine/vespa/client/go/util" ) func RunApplicationContainer(extraArgs []string) int { - if doTrace := os.Getenv("TRACE_JVM_STARTUP"); doTrace != "" { + if doTrace := os.Getenv(envvars.TRACE_JVM_STARTUP); doTrace != "" { trace.AdjustVerbosity(1) } - if doDebug := os.Getenv("DEBUG_JVM_STARTUP"); doDebug != "" { + if doDebug := os.Getenv(envvars.DEBUG_JVM_STARTUP); doDebug != "" { trace.AdjustVerbosity(2) } container := NewApplicationContainer(extraArgs) @@ -25,8 +25,8 @@ func RunApplicationContainer(extraArgs []string) int { func NewApplicationContainer(extraArgs []string) Container { var a ApplicationContainer - a.configId = os.Getenv(util.ENV_CONFIG_ID) - a.serviceName = os.Getenv(util.ENV_SERVICE_NAME) + a.configId = os.Getenv(envvars.VESPA_CONFIG_ID) + a.serviceName = os.Getenv(envvars.VESPA_SERVICE_NAME) a.jvmArgs = NewOptions(&a) a.configureOptions() for _, x := range extraArgs { diff --git a/client/go/prog/common_env.go b/client/go/prog/common_env.go index f8c8ad54def..a970895bf84 100644 --- a/client/go/prog/common_env.go +++ b/client/go/prog/common_env.go @@ -7,66 +7,30 @@ import ( "os" "strings" - "github.com/vespa-engine/vespa/client/go/util" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/vespa" ) -const ( - ENV_JAVA_HOME = util.ENV_JAVA_HOME - ENV_LD_LIBRARY_PATH = util.ENV_LD_LIBRARY_PATH - ENV_LD_PRELOAD = util.ENV_LD_PRELOAD - ENV_MALLOC_ARENA_MAX = util.ENV_MALLOC_ARENA_MAX - ENV_PATH = util.ENV_PATH - ENV_ROOT = util.ENV_ROOT - ENV_VESPA_USER = util.ENV_VESPA_USER - - ENV_VESPA_AFFINITY_CPU_SOCKET = "VESPA_AFFINITY_CPU_SOCKET" - ENV_VESPA_LOAD_CODE_AS_HUGEPAGES = "VESPA_LOAD_CODE_AS_HUGEPAGES" - ENV_VESPA_MALLOC_HUGEPAGES = "VESPA_MALLOC_HUGEPAGES" - ENV_VESPA_MALLOC_MADVISE_LIMIT = "VESPA_MALLOC_MADVISE_LIMIT" - ENV_VESPA_NO_NUMACTL = "VESPA_NO_NUMACTL" - ENV_VESPA_TIMER_HZ = "VESPA_TIMER_HZ" - ENV_VESPA_USE_HUGEPAGES = "VESPA_USE_HUGEPAGES" - ENV_VESPA_USE_HUGEPAGES_LIST = "VESPA_USE_HUGEPAGES_LIST" - ENV_VESPA_USE_MADVISE_LIST = "VESPA_USE_MADVISE_LIST" - ENV_VESPA_USE_NO_VESPAMALLOC = "VESPA_USE_NO_VESPAMALLOC" - ENV_VESPA_USE_VALGRIND = "VESPA_USE_VALGRIND" - ENV_VESPA_USE_VESPAMALLOC = "VESPA_USE_VESPAMALLOC" - ENV_VESPA_USE_VESPAMALLOC_D = "VESPA_USE_VESPAMALLOC_D" - ENV_VESPA_USE_VESPAMALLOC_DST = "VESPA_USE_VESPAMALLOC_DST" - ENV_VESPA_VALGRIND_OPT = "VESPA_VALGRIND_OPT" - - // backwards compatibility variables: - ENV_GLIBCXX_FORCE_NEW = "GLIBCXX_FORCE_NEW" - ENV_HUGEPAGES_LIST = "HUGEPAGES_LIST" - ENV_MADVISE_LIST = "MADVISE_LIST" - ENV_NO_VESPAMALLOC_LIST = "NO_VESPAMALLOC_LIST" - ENV_STD_THREAD_PREVENT_TRY_CATCH = "STD_THREAD_PREVENT_TRY_CATCH" - ENV_VESPAMALLOCDST_LIST = "VESPAMALLOCDST_LIST" - ENV_VESPAMALLOCD_LIST = "VESPAMALLOCD_LIST" - ENV_VESPAMALLOC_LIST = "VESPAMALLOCD_LIST" -) - func (spec *Spec) configureCommonEnv() { - os.Unsetenv(ENV_LD_PRELOAD) - spec.Setenv(ENV_STD_THREAD_PREVENT_TRY_CATCH, "true") - spec.Setenv(ENV_GLIBCXX_FORCE_NEW, "1") - spec.Setenv(ENV_LD_LIBRARY_PATH, vespa.FindHome()+"/lib64") - spec.Setenv(ENV_MALLOC_ARENA_MAX, "1") + os.Unsetenv(envvars.LD_PRELOAD) + spec.Setenv(envvars.STD_THREAD_PREVENT_TRY_CATCH, "true") + spec.Setenv(envvars.GLIBCXX_FORCE_NEW, "1") + spec.Setenv(envvars.LD_LIBRARY_PATH, vespa.FindHome()+"/lib64") + spec.Setenv(envvars.MALLOC_ARENA_MAX, "1") // fallback from old env.vars: - spec.considerEnvFallback(ENV_VESPA_USE_HUGEPAGES_LIST, ENV_HUGEPAGES_LIST) - spec.considerEnvFallback(ENV_VESPA_USE_MADVISE_LIST, ENV_MADVISE_LIST) - spec.considerEnvFallback(ENV_VESPA_USE_VESPAMALLOC, ENV_VESPAMALLOC_LIST) - spec.considerEnvFallback(ENV_VESPA_USE_VESPAMALLOC_D, ENV_VESPAMALLOCD_LIST) - spec.considerEnvFallback(ENV_VESPA_USE_VESPAMALLOC_DST, ENV_VESPAMALLOCDST_LIST) - spec.considerEnvFallback(ENV_VESPA_USE_NO_VESPAMALLOC, ENV_NO_VESPAMALLOC_LIST) + spec.considerEnvFallback(envvars.VESPA_USE_HUGEPAGES_LIST, envvars.HUGEPAGES_LIST) + spec.considerEnvFallback(envvars.VESPA_USE_MADVISE_LIST, envvars.MADVISE_LIST) + spec.considerEnvFallback(envvars.VESPA_USE_VESPAMALLOC, envvars.VESPAMALLOC_LIST) + spec.considerEnvFallback(envvars.VESPA_USE_VESPAMALLOC_D, envvars.VESPAMALLOCD_LIST) + spec.considerEnvFallback(envvars.VESPA_USE_VESPAMALLOC_DST, envvars.VESPAMALLOCDST_LIST) + spec.considerEnvFallback(envvars.VESPA_USE_NO_VESPAMALLOC, envvars.NO_VESPAMALLOC_LIST) // other fallbacks: - spec.considerFallback(ENV_ROOT, vespa.FindHome()) - spec.considerFallback(ENV_VESPA_USER, vespa.FindVespaUser()) - spec.considerFallback(ENV_VESPA_USE_HUGEPAGES_LIST, "all") - spec.considerFallback(ENV_VESPA_USE_VESPAMALLOC, "all") - spec.considerFallback(ENV_VESPA_USE_NO_VESPAMALLOC, strings.Join([]string{ + spec.considerFallback(envvars.ROOT, vespa.FindHome()) + spec.considerFallback(envvars.VESPA_USER, vespa.FindVespaUser()) + spec.considerFallback(envvars.VESPA_USE_HUGEPAGES_LIST, "all") + spec.considerFallback(envvars.VESPA_USE_VESPAMALLOC, "all") + spec.considerFallback(envvars.VESPA_USE_NO_VESPAMALLOC, strings.Join([]string{ "vespa-rpc-invoke", "vespa-get-config", "vespa-sentinel-cmd", diff --git a/client/go/prog/hugepages.go b/client/go/prog/hugepages.go index 79c5f4d7854..1ca345c0d54 100644 --- a/client/go/prog/hugepages.go +++ b/client/go/prog/hugepages.go @@ -4,12 +4,13 @@ package prog import ( + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" ) func (spec *Spec) ConfigureHugePages() { - if spec.matchesListEnv(ENV_VESPA_USE_HUGEPAGES_LIST) { - trace.Debug("setting", ENV_VESPA_USE_HUGEPAGES, "= 'yes'") - spec.Setenv(ENV_VESPA_USE_HUGEPAGES, "yes") + if spec.matchesListEnv(envvars.VESPA_USE_HUGEPAGES_LIST) { + trace.Debug("setting", envvars.VESPA_USE_HUGEPAGES, "= 'yes'") + spec.Setenv(envvars.VESPA_USE_HUGEPAGES, "yes") } } diff --git a/client/go/prog/madvise.go b/client/go/prog/madvise.go index fda6aa3bea0..7312e345e8d 100644 --- a/client/go/prog/madvise.go +++ b/client/go/prog/madvise.go @@ -4,14 +4,15 @@ package prog import ( + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" ) func (spec *Spec) ConfigureUseMadvise() { - limit := spec.valueFromListEnv(ENV_VESPA_USE_MADVISE_LIST) + limit := spec.valueFromListEnv(envvars.VESPA_USE_MADVISE_LIST) if limit != "" { - trace.Trace("shall use madvise with limit", limit, "as set in", ENV_VESPA_USE_MADVISE_LIST) - spec.Setenv(ENV_VESPA_MALLOC_MADVISE_LIMIT, limit) + trace.Trace("shall use madvise with limit", limit, "as set in", envvars.VESPA_USE_MADVISE_LIST) + spec.Setenv(envvars.VESPA_MALLOC_MADVISE_LIMIT, limit) return } } diff --git a/client/go/prog/numactl.go b/client/go/prog/numactl.go index 6fda925908c..becf6329f27 100644 --- a/client/go/prog/numactl.go +++ b/client/go/prog/numactl.go @@ -8,6 +8,7 @@ import ( "strconv" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" ) @@ -19,7 +20,7 @@ const ( func (p *Spec) ConfigureNumaCtl() { p.shouldUseNumaCtl = false p.numaSocket = -1 - if p.Getenv(ENV_VESPA_NO_NUMACTL) != "" { + if p.Getenv(envvars.VESPA_NO_NUMACTL) != "" { return } backticks := util.BackTicksIgnoreStderr @@ -39,7 +40,7 @@ func (p *Spec) ConfigureNumaCtl() { return } p.shouldUseNumaCtl = true - if affinity := p.Getenv(ENV_VESPA_AFFINITY_CPU_SOCKET); affinity != "" { + if affinity := p.Getenv(envvars.VESPA_AFFINITY_CPU_SOCKET); affinity != "" { wantSocket, _ := strconv.Atoi(affinity) trace.Debug("want socket:", wantSocket) parts := strings.Fields(out) diff --git a/client/go/prog/run.go b/client/go/prog/run.go index 49d1b626cb4..29f35837bf5 100644 --- a/client/go/prog/run.go +++ b/client/go/prog/run.go @@ -4,6 +4,7 @@ package prog import ( + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/util" ) @@ -18,7 +19,7 @@ func (spec *Spec) Run() error { prog = args[0] } if spec.shouldUseVespaMalloc { - spec.Setenv(ENV_LD_PRELOAD, spec.vespaMallocPreload) + spec.Setenv(envvars.LD_PRELOAD, spec.vespaMallocPreload) } envv := spec.effectiveEnv() return util.Execvpe(prog, args, envv) diff --git a/client/go/prog/valgrind.go b/client/go/prog/valgrind.go index da893fed1f5..1a282edd1ae 100644 --- a/client/go/prog/valgrind.go +++ b/client/go/prog/valgrind.go @@ -8,6 +8,7 @@ import ( "os" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" "github.com/vespa-engine/vespa/client/go/vespa" @@ -20,29 +21,29 @@ const ( func (p *Spec) ConfigureValgrind() { p.shouldUseValgrind = false p.shouldUseCallgrind = false - env := p.Getenv(ENV_VESPA_USE_VALGRIND) + env := p.Getenv(envvars.VESPA_USE_VALGRIND) parts := strings.Split(env, " ") for _, part := range parts { if p.BaseName == part { - trace.Trace("using valgrind as", p.Program, "has basename in", ENV_VESPA_USE_VALGRIND, "=>", env) + trace.Trace("using valgrind as", p.Program, "has basename in", envvars.VESPA_USE_VALGRIND, "=>", env) backticks := util.BackTicksWithStderr out, err := backticks.Run(VALGRIND_PROG, "--help") if err != nil { trace.Trace("trial run of valgrind fails:", err, "=>", out) return } - if opts := p.Getenv(ENV_VESPA_VALGRIND_OPT); strings.Contains(opts, "callgrind") { + if opts := p.Getenv(envvars.VESPA_VALGRIND_OPT); strings.Contains(opts, "callgrind") { p.shouldUseCallgrind = true } p.shouldUseValgrind = true return } - trace.Debug("checking", ENV_VESPA_USE_VALGRIND, ":", p.BaseName, "!=", part) + trace.Debug("checking", envvars.VESPA_USE_VALGRIND, ":", p.BaseName, "!=", part) } } func (p *Spec) valgrindOptions() []string { - env := p.Getenv(ENV_VESPA_VALGRIND_OPT) + env := p.Getenv(envvars.VESPA_VALGRIND_OPT) if env != "" { return strings.Fields(env) } diff --git a/client/go/prog/vespamalloc.go b/client/go/prog/vespamalloc.go index 94952548507..34c98349415 100644 --- a/client/go/prog/vespamalloc.go +++ b/client/go/prog/vespamalloc.go @@ -6,6 +6,7 @@ package prog import ( "fmt" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/vespa" ) @@ -26,7 +27,7 @@ func vespaMallocLib(suf string) string { func (p *Spec) ConfigureVespaMalloc() { p.shouldUseVespaMalloc = false - if p.matchesListEnv(ENV_VESPA_USE_NO_VESPAMALLOC) { + if p.matchesListEnv(envvars.VESPA_USE_NO_VESPAMALLOC) { trace.Trace("use no vespamalloc:", p.BaseName) return } @@ -35,22 +36,22 @@ func (p *Spec) ConfigureVespaMalloc() { return } var useFile string - if p.matchesListEnv(ENV_VESPA_USE_VESPAMALLOC_DST) { + if p.matchesListEnv(envvars.VESPA_USE_VESPAMALLOC_DST) { useFile = vespaMallocLib("libvespamallocdst16.so") - } else if p.matchesListEnv(ENV_VESPA_USE_VESPAMALLOC_D) { + } else if p.matchesListEnv(envvars.VESPA_USE_VESPAMALLOC_D) { useFile = vespaMallocLib("libvespamallocd.so") - } else if p.matchesListEnv(ENV_VESPA_USE_VESPAMALLOC) { + } else if p.matchesListEnv(envvars.VESPA_USE_VESPAMALLOC) { useFile = vespaMallocLib("libvespamalloc.so") } trace.Trace("use file:", useFile) if useFile == "" { return } - if loadAsHuge := p.Getenv(ENV_VESPA_LOAD_CODE_AS_HUGEPAGES); loadAsHuge != "" { + if loadAsHuge := p.Getenv(envvars.VESPA_LOAD_CODE_AS_HUGEPAGES); loadAsHuge != "" { otherFile := vespaMallocLib("libvespa_load_as_huge.so") useFile = fmt.Sprintf("%s:%s", useFile, otherFile) } - p.considerEnvFallback(ENV_VESPA_MALLOC_HUGEPAGES, ENV_VESPA_USE_HUGEPAGES) + p.considerEnvFallback(envvars.VESPA_MALLOC_HUGEPAGES, envvars.VESPA_USE_HUGEPAGES) p.vespaMallocPreload = useFile p.shouldUseVespaMalloc = true } diff --git a/client/go/script-utils/configserver/env.go b/client/go/script-utils/configserver/env.go index ce4dd8c3c64..c2607d293d6 100644 --- a/client/go/script-utils/configserver/env.go +++ b/client/go/script-utils/configserver/env.go @@ -7,6 +7,7 @@ import ( "fmt" "os" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/util" ) @@ -16,15 +17,15 @@ func exportSettings(vespaHome string) { lcf := fmt.Sprintf("%s/configserver.logcontrol", lcd) dlp := fmt.Sprintf("%s/lib64", vespaHome) app := fmt.Sprintf("%s/conf/configserver-app", vespaHome) - os.Setenv("VESPA_LOG_TARGET", vlt) - os.Setenv("VESPA_LOG_CONTROL_DIR", lcd) - os.Setenv("VESPA_LOG_CONTROL_FILE", lcf) - os.Setenv("VESPA_SERVICE_NAME", "configserver") - os.Setenv("LD_LIBRARY_PATH", dlp) - os.Setenv("JAVAVM_LD_PRELOAD", "") - os.Setenv("LD_PRELOAD", "") - os.Setenv("standalone_jdisc_container__app_location", app) - os.Setenv("standalone_jdisc_container__deployment_profile", "configserver") - os.Setenv("MALLOC_ARENA_MAX", "1") + os.Setenv(envvars.VESPA_LOG_TARGET, vlt) + os.Setenv(envvars.VESPA_LOG_CONTROL_DIR, lcd) + os.Setenv(envvars.VESPA_LOG_CONTROL_FILE, lcf) + os.Setenv(envvars.VESPA_SERVICE_NAME, "configserver") + os.Setenv(envvars.LD_LIBRARY_PATH, dlp) + os.Setenv(envvars.JAVAVM_LD_PRELOAD, "") + os.Setenv(envvars.LD_PRELOAD, "") + os.Setenv(envvars.STANDALONE_JDISC_APP_LOCATION, app) + os.Setenv(envvars.STANDALONE_JDISC_DEPLOYMENT_PROFILE, "configserver") + os.Setenv(envvars.MALLOC_ARENA_MAX, "1") util.OptionallyReduceTimerFrequency() } diff --git a/client/go/script-utils/configserver/logd.go b/client/go/script-utils/configserver/logd.go index 7eed70b23da..676c96d037d 100644 --- a/client/go/script-utils/configserver/logd.go +++ b/client/go/script-utils/configserver/logd.go @@ -6,13 +6,14 @@ package configserver import ( "os" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" ) func maybeStartLogd() { - v1 := os.Getenv("cloudconfig_server__multitenant") - v2 := os.Getenv("VESPA_CONFIGSERVER_MULTITENANT") + v1 := os.Getenv(envvars.CLOUDCONFIG_SERVER_MULTITENANT) + v2 := os.Getenv(envvars.VESPA_CONFIGSERVER_MULTITENANT) if v1 == "true" || v2 == "true" { backticks := util.BackTicksForwardStderr out, err := backticks.Run("libexec/vespa/start-logd") diff --git a/client/go/script-utils/configserver/start.go b/client/go/script-utils/configserver/start.go index cff38471d53..afba4760703 100644 --- a/client/go/script-utils/configserver/start.go +++ b/client/go/script-utils/configserver/start.go @@ -6,6 +6,7 @@ package configserver import ( "os" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/jvm" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" @@ -17,10 +18,10 @@ const ( ) func commonPreChecks() (veHome string) { - if doTrace := os.Getenv("TRACE_JVM_STARTUP"); doTrace != "" { + if doTrace := os.Getenv(envvars.TRACE_JVM_STARTUP); doTrace != "" { trace.AdjustVerbosity(1) } - if doDebug := os.Getenv("DEBUG_JVM_STARTUP"); doDebug != "" { + if doDebug := os.Getenv(envvars.DEBUG_JVM_STARTUP); doDebug != "" { trace.AdjustVerbosity(2) } _ = vespa.FindAndVerifyVespaHome() @@ -49,7 +50,7 @@ func JustStartConfigserver() int { removeStaleZkLocks(vespaHome) c := jvm.NewStandaloneContainer(SERVICE_NAME) jvmOpts := c.JvmOptions() - if extra := os.Getenv("VESPA_CONFIGSERVER_JVMARGS"); extra != "" { + if extra := os.Getenv(envvars.VESPA_CONFIGSERVER_JVMARGS); extra != "" { jvmOpts.AddJvmArgsFromString(extra) } minFallback := jvm.MegaBytesOfMemory(128) diff --git a/client/go/script-utils/startcbinary/cmd.go b/client/go/script-utils/startcbinary/cmd.go index 590569f61cf..730d7b10c37 100644 --- a/client/go/script-utils/startcbinary/cmd.go +++ b/client/go/script-utils/startcbinary/cmd.go @@ -7,6 +7,7 @@ import ( "os" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" "github.com/vespa-engine/vespa/client/go/vespa" @@ -35,7 +36,7 @@ func IsCandidate(program string) bool { if strings.Contains(binary, "/") { return util.IsRegularFile(binary) } else { - path := strings.Split(os.Getenv(ENV_PATH), ":") + path := strings.Split(os.Getenv(envvars.PATH), ":") for _, dir := range path { fn := dir + "/" + binary if util.IsRegularFile(fn) { diff --git a/client/go/script-utils/startcbinary/common_env.go b/client/go/script-utils/startcbinary/common_env.go index ca3c187d36a..812f182a757 100644 --- a/client/go/script-utils/startcbinary/common_env.go +++ b/client/go/script-utils/startcbinary/common_env.go @@ -7,47 +7,11 @@ import ( "os" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" - "github.com/vespa-engine/vespa/client/go/util" "github.com/vespa-engine/vespa/client/go/vespa" ) -const ( - ENV_JAVA_HOME = util.ENV_JAVA_HOME - ENV_LD_LIBRARY_PATH = util.ENV_LD_LIBRARY_PATH - ENV_LD_PRELOAD = util.ENV_LD_PRELOAD - ENV_MALLOC_ARENA_MAX = util.ENV_MALLOC_ARENA_MAX - ENV_PATH = util.ENV_PATH - ENV_ROOT = util.ENV_ROOT - ENV_VESPA_USER = util.ENV_VESPA_USER - - ENV_VESPA_AFFINITY_CPU_SOCKET = "VESPA_AFFINITY_CPU_SOCKET" - ENV_VESPA_LOAD_CODE_AS_HUGEPAGES = "VESPA_LOAD_CODE_AS_HUGEPAGES" - ENV_VESPA_MALLOC_HUGEPAGES = "VESPA_MALLOC_HUGEPAGES" - ENV_VESPA_MALLOC_MADVISE_LIMIT = "VESPA_MALLOC_MADVISE_LIMIT" - ENV_VESPA_NO_NUMACTL = "VESPA_NO_NUMACTL" - ENV_VESPA_TIMER_HZ = "VESPA_TIMER_HZ" - ENV_VESPA_USE_HUGEPAGES = "VESPA_USE_HUGEPAGES" - ENV_VESPA_USE_HUGEPAGES_LIST = "VESPA_USE_HUGEPAGES_LIST" - ENV_VESPA_USE_MADVISE_LIST = "VESPA_USE_MADVISE_LIST" - ENV_VESPA_USE_NO_VESPAMALLOC = "VESPA_USE_NO_VESPAMALLOC" - ENV_VESPA_USE_VALGRIND = "VESPA_USE_VALGRIND" - ENV_VESPA_USE_VESPAMALLOC = "VESPA_USE_VESPAMALLOC" - ENV_VESPA_USE_VESPAMALLOC_D = "VESPA_USE_VESPAMALLOC_D" - ENV_VESPA_USE_VESPAMALLOC_DST = "VESPA_USE_VESPAMALLOC_DST" - ENV_VESPA_VALGRIND_OPT = "VESPA_VALGRIND_OPT" - - // backwards compatibility variables: - ENV_GLIBCXX_FORCE_NEW = "GLIBCXX_FORCE_NEW" - ENV_HUGEPAGES_LIST = "HUGEPAGES_LIST" - ENV_MADVISE_LIST = "MADVISE_LIST" - ENV_NO_VESPAMALLOC_LIST = "NO_VESPAMALLOC_LIST" - ENV_STD_THREAD_PREVENT_TRY_CATCH = "STD_THREAD_PREVENT_TRY_CATCH" - ENV_VESPAMALLOCDST_LIST = "VESPAMALLOCDST_LIST" - ENV_VESPAMALLOCD_LIST = "VESPAMALLOCD_LIST" - ENV_VESPAMALLOC_LIST = "VESPAMALLOCD_LIST" -) - func (spec *ProgSpec) considerFallback(varName, varValue string) { if spec.getenv(varName) == "" && varValue != "" { spec.setenv(varName, varValue) @@ -59,25 +23,25 @@ func (spec *ProgSpec) considerEnvFallback(targetVar, fallbackVar string) { } func (spec *ProgSpec) configureCommonEnv() { - os.Unsetenv(ENV_LD_PRELOAD) - spec.setenv(ENV_STD_THREAD_PREVENT_TRY_CATCH, "true") - spec.setenv(ENV_GLIBCXX_FORCE_NEW, "1") - spec.setenv(ENV_LD_LIBRARY_PATH, vespa.FindHome()+"/lib64") - spec.setenv(ENV_MALLOC_ARENA_MAX, "1") + os.Unsetenv(envvars.LD_PRELOAD) + spec.setenv(envvars.STD_THREAD_PREVENT_TRY_CATCH, "true") + spec.setenv(envvars.GLIBCXX_FORCE_NEW, "1") + spec.setenv(envvars.LD_LIBRARY_PATH, vespa.FindHome()+"/lib64") + spec.setenv(envvars.MALLOC_ARENA_MAX, "1") // fallback from old env.vars: - spec.considerEnvFallback(ENV_VESPA_USE_HUGEPAGES_LIST, ENV_HUGEPAGES_LIST) - spec.considerEnvFallback(ENV_VESPA_USE_MADVISE_LIST, ENV_MADVISE_LIST) - spec.considerEnvFallback(ENV_VESPA_USE_VESPAMALLOC, ENV_VESPAMALLOC_LIST) - spec.considerEnvFallback(ENV_VESPA_USE_VESPAMALLOC_D, ENV_VESPAMALLOCD_LIST) - spec.considerEnvFallback(ENV_VESPA_USE_VESPAMALLOC_DST, ENV_VESPAMALLOCDST_LIST) - spec.considerEnvFallback(ENV_VESPA_USE_NO_VESPAMALLOC, ENV_NO_VESPAMALLOC_LIST) + spec.considerEnvFallback(envvars.VESPA_USE_HUGEPAGES_LIST, envvars.HUGEPAGES_LIST) + spec.considerEnvFallback(envvars.VESPA_USE_MADVISE_LIST, envvars.MADVISE_LIST) + spec.considerEnvFallback(envvars.VESPA_USE_VESPAMALLOC, envvars.VESPAMALLOC_LIST) + spec.considerEnvFallback(envvars.VESPA_USE_VESPAMALLOC_D, envvars.VESPAMALLOCD_LIST) + spec.considerEnvFallback(envvars.VESPA_USE_VESPAMALLOC_DST, envvars.VESPAMALLOCDST_LIST) + spec.considerEnvFallback(envvars.VESPA_USE_NO_VESPAMALLOC, envvars.NO_VESPAMALLOC_LIST) // other fallbacks: - spec.considerFallback(ENV_ROOT, vespa.FindHome()) - spec.considerFallback(ENV_VESPA_USER, vespa.FindVespaUser()) - spec.considerFallback(ENV_VESPA_USE_HUGEPAGES_LIST, "all") - spec.considerFallback(ENV_VESPA_USE_VESPAMALLOC, "all") - spec.considerFallback(ENV_VESPA_USE_NO_VESPAMALLOC, strings.Join([]string{ + spec.considerFallback(envvars.ROOT, vespa.FindHome()) + spec.considerFallback(envvars.VESPA_USER, vespa.FindVespaUser()) + spec.considerFallback(envvars.VESPA_USE_HUGEPAGES_LIST, "all") + spec.considerFallback(envvars.VESPA_USE_VESPAMALLOC, "all") + spec.considerFallback(envvars.VESPA_USE_NO_VESPAMALLOC, strings.Join([]string{ "vespa-rpc-invoke", "vespa-get-config", "vespa-sentinel-cmd", @@ -90,16 +54,16 @@ func (spec *ProgSpec) configureCommonEnv() { } func (spec *ProgSpec) configureHugePages() { - if spec.matchesListEnv(ENV_VESPA_USE_HUGEPAGES_LIST) { - spec.setenv(ENV_VESPA_USE_HUGEPAGES, "yes") + if spec.matchesListEnv(envvars.VESPA_USE_HUGEPAGES_LIST) { + spec.setenv(envvars.VESPA_USE_HUGEPAGES, "yes") } } func (spec *ProgSpec) configureUseMadvise() { - limit := spec.valueFromListEnv(ENV_VESPA_USE_MADVISE_LIST) + limit := spec.valueFromListEnv(envvars.VESPA_USE_MADVISE_LIST) if limit != "" { - trace.Trace("shall use madvise with limit", limit, "as set in", ENV_VESPA_USE_MADVISE_LIST) - spec.setenv(ENV_VESPA_MALLOC_MADVISE_LIMIT, limit) + trace.Trace("shall use madvise with limit", limit, "as set in", envvars.VESPA_USE_MADVISE_LIST) + spec.setenv(envvars.VESPA_MALLOC_MADVISE_LIMIT, limit) return } } @@ -113,7 +77,7 @@ func (spec *ProgSpec) configurePath() { spec.prependPath(vespa.FindHome() + "/bin") // how to find the "java" program? // should be available in $VESPA_HOME/bin or JAVA_HOME - if javaHome := spec.getenv(ENV_JAVA_HOME); javaHome != "" { + if javaHome := spec.getenv(envvars.JAVA_HOME); javaHome != "" { spec.prependPath(javaHome + "/bin") } } diff --git a/client/go/script-utils/startcbinary/numactl.go b/client/go/script-utils/startcbinary/numactl.go index 1456fe05a5f..89d9c144649 100644 --- a/client/go/script-utils/startcbinary/numactl.go +++ b/client/go/script-utils/startcbinary/numactl.go @@ -8,6 +8,7 @@ import ( "strconv" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" ) @@ -15,7 +16,7 @@ import ( func (p *ProgSpec) configureNumaCtl() { p.shouldUseNumaCtl = false p.numaSocket = -1 - if p.getenv(ENV_VESPA_NO_NUMACTL) != "" { + if p.getenv(envvars.VESPA_NO_NUMACTL) != "" { return } backticks := util.BackTicksIgnoreStderr @@ -35,7 +36,7 @@ func (p *ProgSpec) configureNumaCtl() { return } p.shouldUseNumaCtl = true - if affinity := p.getenv(ENV_VESPA_AFFINITY_CPU_SOCKET); affinity != "" { + if affinity := p.getenv(envvars.VESPA_AFFINITY_CPU_SOCKET); affinity != "" { wantSocket, _ := strconv.Atoi(affinity) trace.Debug("want socket:", wantSocket) parts := strings.Fields(out) diff --git a/client/go/script-utils/startcbinary/progspec.go b/client/go/script-utils/startcbinary/progspec.go index 9ce74646cf6..242cb846587 100644 --- a/client/go/script-utils/startcbinary/progspec.go +++ b/client/go/script-utils/startcbinary/progspec.go @@ -7,6 +7,7 @@ import ( "os" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" ) @@ -56,7 +57,7 @@ func (p *ProgSpec) getenv(k string) string { func (p *ProgSpec) prependPath(dirName string) { pathList := []string{dirName} - oldPath := p.getenv(ENV_PATH) + oldPath := p.getenv(envvars.PATH) if oldPath == "" { oldPath = "/usr/bin" } @@ -66,8 +67,8 @@ func (p *ProgSpec) prependPath(dirName string) { } } newPath := strings.Join(pathList, ":") - p.setenv(ENV_PATH, newPath) - os.Setenv(ENV_PATH, newPath) + p.setenv(envvars.PATH, newPath) + os.Setenv(envvars.PATH, newPath) } func (p *ProgSpec) matchesListEnv(envVarName string) bool { diff --git a/client/go/script-utils/startcbinary/startcbinary.go b/client/go/script-utils/startcbinary/startcbinary.go index ca1ab181f7e..142217c1fe8 100644 --- a/client/go/script-utils/startcbinary/startcbinary.go +++ b/client/go/script-utils/startcbinary/startcbinary.go @@ -7,6 +7,7 @@ import ( "fmt" "os" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/util" ) @@ -39,7 +40,7 @@ func (spec *ProgSpec) run() error { prog = spec.numaCtlBinary() } if spec.shouldUseVespaMalloc { - spec.setenv(ENV_LD_PRELOAD, spec.vespaMallocPreload) + spec.setenv(envvars.LD_PRELOAD, spec.vespaMallocPreload) } envv := spec.effectiveEnv() return util.Execvpe(prog, args, envv) diff --git a/client/go/script-utils/startcbinary/valgrind.go b/client/go/script-utils/startcbinary/valgrind.go index f474347016d..ecbca36e823 100644 --- a/client/go/script-utils/startcbinary/valgrind.go +++ b/client/go/script-utils/startcbinary/valgrind.go @@ -8,6 +8,7 @@ import ( "os" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" "github.com/vespa-engine/vespa/client/go/vespa" @@ -16,24 +17,24 @@ import ( func (p *ProgSpec) configureValgrind() { p.shouldUseValgrind = false p.shouldUseCallgrind = false - env := p.getenv(ENV_VESPA_USE_VALGRIND) + env := p.getenv(envvars.VESPA_USE_VALGRIND) parts := strings.Split(env, " ") for _, part := range parts { if p.BaseName == part { - trace.Trace("using valgrind as", p.Program, "has basename in", ENV_VESPA_USE_VALGRIND, "=>", env) + trace.Trace("using valgrind as", p.Program, "has basename in", envvars.VESPA_USE_VALGRIND, "=>", env) backticks := util.BackTicksWithStderr out, err := backticks.Run("which", "valgrind") if err != nil { trace.Trace("no valgrind, 'which' fails:", err, "=>", out) return } - if opts := p.getenv(ENV_VESPA_VALGRIND_OPT); strings.Contains(opts, "callgrind") { + if opts := p.getenv(envvars.VESPA_VALGRIND_OPT); strings.Contains(opts, "callgrind") { p.shouldUseCallgrind = true } p.shouldUseValgrind = true return } - trace.Debug("checking", ENV_VESPA_USE_VALGRIND, ":", p.BaseName, "!=", part) + trace.Debug("checking", envvars.VESPA_USE_VALGRIND, ":", p.BaseName, "!=", part) } } @@ -42,7 +43,7 @@ func (p *ProgSpec) valgrindBinary() string { } func (p *ProgSpec) valgrindOptions() []string { - env := p.getenv(ENV_VESPA_VALGRIND_OPT) + env := p.getenv(envvars.VESPA_VALGRIND_OPT) if env != "" { return strings.Fields(env) } diff --git a/client/go/script-utils/startcbinary/vespamalloc.go b/client/go/script-utils/startcbinary/vespamalloc.go index 15b0fdc80bc..6c0bd3ea9db 100644 --- a/client/go/script-utils/startcbinary/vespamalloc.go +++ b/client/go/script-utils/startcbinary/vespamalloc.go @@ -6,6 +6,7 @@ package startcbinary import ( "fmt" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/vespa" ) @@ -26,7 +27,7 @@ func vespaMallocLib(suf string) string { func (p *ProgSpec) configureVespaMalloc() { p.shouldUseVespaMalloc = false - if p.matchesListEnv(ENV_VESPA_USE_NO_VESPAMALLOC) { + if p.matchesListEnv(envvars.VESPA_USE_NO_VESPAMALLOC) { trace.Trace("use no vespamalloc:", p.BaseName) return } @@ -35,22 +36,22 @@ func (p *ProgSpec) configureVespaMalloc() { return } var useFile string - if p.matchesListEnv(ENV_VESPA_USE_VESPAMALLOC_DST) { + if p.matchesListEnv(envvars.VESPA_USE_VESPAMALLOC_DST) { useFile = vespaMallocLib("libvespamallocdst16.so") - } else if p.matchesListEnv(ENV_VESPA_USE_VESPAMALLOC_D) { + } else if p.matchesListEnv(envvars.VESPA_USE_VESPAMALLOC_D) { useFile = vespaMallocLib("libvespamallocd.so") - } else if p.matchesListEnv(ENV_VESPA_USE_VESPAMALLOC) { + } else if p.matchesListEnv(envvars.VESPA_USE_VESPAMALLOC) { useFile = vespaMallocLib("libvespamalloc.so") } trace.Trace("use file:", useFile) if useFile == "" { return } - if loadAsHuge := p.getenv(ENV_VESPA_LOAD_CODE_AS_HUGEPAGES); loadAsHuge != "" { + if loadAsHuge := p.getenv(envvars.VESPA_LOAD_CODE_AS_HUGEPAGES); loadAsHuge != "" { otherFile := vespaMallocLib("libvespa_load_as_huge.so") useFile = fmt.Sprintf("%s:%s", useFile, otherFile) } - p.considerEnvFallback(ENV_VESPA_MALLOC_HUGEPAGES, ENV_VESPA_USE_HUGEPAGES) + p.considerEnvFallback(envvars.VESPA_MALLOC_HUGEPAGES, envvars.VESPA_USE_HUGEPAGES) p.vespaMallocPreload = useFile p.shouldUseVespaMalloc = true } diff --git a/client/go/trace/log.go b/client/go/trace/log.go index ba81d38acf6..3a8fa1a4846 100644 --- a/client/go/trace/log.go +++ b/client/go/trace/log.go @@ -9,6 +9,8 @@ import ( "os" "strings" "time" + + "github.com/vespa-engine/vespa/client/go/envvars" ) // make a vespa-format log line @@ -16,9 +18,9 @@ import ( func logMessage(l outputLevel, msg string) { out := os.Stderr unixTime := float64(time.Now().UnixMicro()) * 1.0e-6 - hostname := os.Getenv("VESPA_HOSTNAME") + hostname := os.Getenv(envvars.VESPA_HOSTNAME) pid := os.Getpid() - service := os.Getenv("VESPA_SERVICE_NAME") + service := os.Getenv(envvars.VESPA_SERVICE_NAME) component := "stderr" level := "error" switch l { diff --git a/client/go/util/env_vars.go b/client/go/util/env_vars.go deleted file mode 100644 index 2818e452c6f..00000000000 --- a/client/go/util/env_vars.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -// Author: arnej - -package util - -// well-known environment variable names - -const ( - ENV_JAVA_HOME = "JAVA_HOME" - ENV_LD_LIBRARY_PATH = "LD_LIBRARY_PATH" - ENV_LD_PRELOAD = "LD_PRELOAD" - ENV_MALLOC_ARENA_MAX = "MALLOC_ARENA_MAX" - ENV_PATH = "PATH" - ENV_ROOT = "ROOT" - ENV_VESPA_HOME = "VESPA_HOME" - ENV_VESPA_HOSTNAME = "VESPA_HOSTNAME" - ENV_VESPA_USER = "VESPA_USER" - ENV_SERVICE_NAME = "VESPA_SERVICE_NAME" - ENV_CONFIG_ID = "VESPA_CONFIG_ID" -) diff --git a/client/go/util/execvp.go b/client/go/util/execvp.go index 2b47af4de1b..9ee7d7deb6c 100644 --- a/client/go/util/execvp.go +++ b/client/go/util/execvp.go @@ -10,6 +10,7 @@ import ( "os" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "golang.org/x/sys/unix" ) @@ -18,7 +19,7 @@ func findInPath(prog string) string { if strings.Contains(prog, "/") { return prog } - path := strings.Split(os.Getenv("PATH"), ":") + path := strings.Split(os.Getenv(envvars.PATH), ":") for _, dir := range path { fn := dir + "/" + prog if IsExecutableFile(fn) { diff --git a/client/go/util/tuning.go b/client/go/util/tuning.go index 322d2c31462..d727df42631 100644 --- a/client/go/util/tuning.go +++ b/client/go/util/tuning.go @@ -8,25 +8,22 @@ import ( "strconv" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" ) -const ( - ENV_VESPA_TIMER_HZ = "VESPA_TIMER_HZ" -) - func OptionallyReduceTimerFrequency() { - if os.Getenv(ENV_VESPA_TIMER_HZ) == "" { + if os.Getenv(envvars.VESPA_TIMER_HZ) == "" { backticks := BackTicksIgnoreStderr out, _ := backticks.Run("uname", "-r") if strings.Contains(out, "linuxkit") { - if os.Getenv(ENV_VESPA_TIMER_HZ) != "100" { + if os.Getenv(envvars.VESPA_TIMER_HZ) != "100" { trace.Trace( "Running docker on macos.", "Reducing base frequency from 1000hz to 100hz due to high cost of sampling time.", "This will reduce timeout accuracy.") } - os.Setenv(ENV_VESPA_TIMER_HZ, "100") + os.Setenv(envvars.VESPA_TIMER_HZ, "100") } } } @@ -34,13 +31,13 @@ func OptionallyReduceTimerFrequency() { func TuneResourceLimits() { var numfiles uint64 = 262144 var numprocs uint64 = 409600 - if env := os.Getenv("file_descriptor_limit"); env != "" { + if env := os.Getenv(envvars.FILE_DESCRIPTOR_LIMIT); env != "" { n, err := strconv.Atoi(env) if err != nil { numfiles = uint64(n) } } - if env := os.Getenv("num_processes_limit"); env != "" { + if env := os.Getenv(envvars.NUM_PROCESSES_LIMIT); env != "" { n, err := strconv.Atoi(env) if err != nil { numprocs = uint64(n) diff --git a/client/go/vespa/detect_hostname.go b/client/go/vespa/detect_hostname.go index 2bff3506042..0462665caf1 100644 --- a/client/go/vespa/detect_hostname.go +++ b/client/go/vespa/detect_hostname.go @@ -9,6 +9,7 @@ import ( "os" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" ) @@ -46,7 +47,7 @@ func HasOnlyIpV6() bool { // single-node setups still have a good chance of working. // Use the enviroment variable VESPA_HOSTNAME to override. func FindOurHostname() (string, error) { - env := os.Getenv("VESPA_HOSTNAME") + env := os.Getenv(envvars.VESPA_HOSTNAME) if env != "" { // assumes: env var is already validated and OK return env, nil @@ -57,7 +58,7 @@ func FindOurHostname() (string, error) { } name, err = findOurHostnameFrom(name) if err == nil { - os.Setenv("VESPA_HOSTNAME", name) + os.Setenv(envvars.VESPA_HOSTNAME, name) } return name, err } diff --git a/client/go/vespa/find_home.go b/client/go/vespa/find_home.go index 29e0ca494f3..a5ce8134477 100644 --- a/client/go/vespa/find_home.go +++ b/client/go/vespa/find_home.go @@ -9,6 +9,7 @@ import ( "os" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" ) @@ -20,7 +21,7 @@ const ( func FindHome() string { // use env var if it is set: - if ev := os.Getenv("VESPA_HOME"); ev != "" { + if ev := os.Getenv(envvars.VESPA_HOME); ev != "" { return ev } // some helper functions... @@ -43,7 +44,7 @@ func FindHome() string { trace.Debug("findPath", myProgName, "=>", path) return path } - for _, dir := range strings.Split(os.Getenv("PATH"), ":") { + for _, dir := range strings.Split(os.Getenv(envvars.PATH), ":") { fn := fmt.Sprintf("%s/%s", dir, myProgName) if util.IsRegularFile(fn) { trace.Debug("findPath", myProgName, "=>", dir) @@ -57,12 +58,12 @@ func FindHome() string { mySelf := fmt.Sprintf("%s/%s", path, scriptUtilsFilename) if util.IsRegularFile(mySelf) { trace.Debug("found", mySelf, "VH =>", path) - os.Setenv("VESPA_HOME", path) + os.Setenv(envvars.VESPA_HOME, path) return path } } // fallback - os.Setenv("VESPA_HOME", defaultVespaInstallDir) + os.Setenv(envvars.VESPA_HOME, defaultVespaInstallDir) return defaultVespaInstallDir } diff --git a/client/go/vespa/find_user.go b/client/go/vespa/find_user.go index c3f4e32906f..4441871ef24 100644 --- a/client/go/vespa/find_user.go +++ b/client/go/vespa/find_user.go @@ -8,6 +8,8 @@ import ( "os" "os/user" "strconv" + + "github.com/vespa-engine/vespa/client/go/envvars" ) // Which user should vespa services run as? If current user is root, @@ -17,7 +19,7 @@ import ( // we want to change to some non-privileged user. // Should be run after LoadDefaultEnv() which possibly loads VESPA_USER func FindVespaUser() string { - uName := os.Getenv("VESPA_USER") + uName := os.Getenv(envvars.VESPA_USER) if uName != "" { // no check here, assume valid return uName @@ -40,7 +42,7 @@ func FindVespaUser() string { } } if uName != "" { - os.Setenv("VESPA_USER", uName) + os.Setenv(envvars.VESPA_USER, uName) } return uName } @@ -52,8 +54,8 @@ func FindVespaUser() string { func FindVespaUidAndGid() (userId, groupId int) { userId = -1 groupId = -1 - uName := os.Getenv("VESPA_USER") - gName := os.Getenv("VESPA_GROUP") + uName := os.Getenv(envvars.VESPA_USER) + gName := os.Getenv(envvars.VESPA_GROUP) if uName == "" { uName = FindVespaUser() } diff --git a/client/go/vespa/load_env.go b/client/go/vespa/load_env.go index 381b7fb5c0b..5c216c12c31 100644 --- a/client/go/vespa/load_env.go +++ b/client/go/vespa/load_env.go @@ -11,15 +11,12 @@ import ( "os" "strings" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" ) const ( - ENV_JAVA_HOME = util.ENV_JAVA_HOME - ENV_PATH = util.ENV_PATH - ENV_VESPA_HOME = util.ENV_VESPA_HOME - ENV_VESPA_USER = util.ENV_VESPA_USER CURRENT_GCC_TOOLSET = "/opt/rh/gcc-toolset-11/root/usr/bin" ) @@ -35,8 +32,8 @@ func LoadDefaultEnv() error { func ExportDefaultEnvToSh() error { holder := newShellEnvExporter() err := loadDefaultEnvTo(holder) - holder.fallbackVar(ENV_VESPA_HOME, FindHome()) - holder.fallbackVar(ENV_VESPA_USER, FindVespaUser()) + holder.fallbackVar(envvars.VESPA_HOME, FindHome()) + holder.fallbackVar(envvars.VESPA_USER, FindVespaUser()) ensureGoodPath(holder) holder.dump() return err @@ -269,10 +266,10 @@ type pathBuilder struct { func (builder *pathBuilder) applyTo(receiver loadEnvReceiver) { newPath := strings.Join(builder.curPath, ":") - if newPath != receiver.currentValue(ENV_PATH) { + if newPath != receiver.currentValue(envvars.PATH) { trace.Trace("updating PATH in environment =>", newPath) } - receiver.overrideVar(ENV_PATH, newPath) + receiver.overrideVar(envvars.PATH, newPath) } func (builder *pathBuilder) appendPath(p string) { @@ -295,10 +292,10 @@ func ensureGoodPath(receiver loadEnvReceiver) { // Prefer newer gdb and pstack: builder.appendPath("/opt/rh/gcc-toolset-11/root/usr/bin") // how to find the "java" program? - if javaHome := os.Getenv(ENV_JAVA_HOME); javaHome != "" { + if javaHome := os.Getenv(envvars.JAVA_HOME); javaHome != "" { builder.appendPath(javaHome + "/bin") } - envPath := receiver.currentValue(ENV_PATH) + envPath := receiver.currentValue(envvars.PATH) for _, p := range strings.Split(envPath, ":") { builder.appendPath(p) } diff --git a/client/go/vespa/switch_user.go b/client/go/vespa/switch_user.go index 79677e9c145..9e3d8b25276 100644 --- a/client/go/vespa/switch_user.go +++ b/client/go/vespa/switch_user.go @@ -9,11 +9,12 @@ import ( "os" "os/user" + "github.com/vespa-engine/vespa/client/go/envvars" "github.com/vespa-engine/vespa/client/go/trace" "github.com/vespa-engine/vespa/client/go/util" ) -const ENV_CHECK = "VESPA_ALREADY_SWITCHED_USER_TO" +const ENV_CHECK = envvars.VESPA_ALREADY_SWITCHED_USER_TO func CheckCorrectUser() { vespaUser := FindVespaUser() diff --git a/client/go/vespa/tls_options.go b/client/go/vespa/tls_options.go index f25f9aaed1b..7476d62db02 100644 --- a/client/go/vespa/tls_options.go +++ b/client/go/vespa/tls_options.go @@ -6,6 +6,8 @@ import ( "bytes" "encoding/json" "os" + + "github.com/vespa-engine/vespa/client/go/envvars" ) type VespaTlsConfig struct { @@ -18,7 +20,7 @@ type VespaTlsConfig struct { } func LoadTlsConfig() (*VespaTlsConfig, error) { - fn := os.Getenv("VESPA_TLS_CONFIG_FILE") + fn := os.Getenv(envvars.VESPA_TLS_CONFIG_FILE) if fn == "" { return nil, nil } @@ -40,24 +42,24 @@ func ExportSecurityEnvToSh() { cfg, _ := LoadTlsConfig() helper := newShellEnvExporter() if cfg == nil { - helper.unsetVar("VESPA_TLS_ENABLED") + helper.unsetVar(envvars.VESPA_TLS_ENABLED) } else { if fn := cfg.Files.PrivateKey; fn != "" { - helper.overrideVar("VESPA_TLS_PRIVATE_KEY", fn) + helper.overrideVar(envvars.VESPA_TLS_PRIVATE_KEY, fn) } if fn := cfg.Files.CaCertificates; fn != "" { - helper.overrideVar("VESPA_TLS_CA_CERT", fn) + helper.overrideVar(envvars.VESPA_TLS_CA_CERT, fn) } if fn := cfg.Files.Certificates; fn != "" { - helper.overrideVar("VESPA_TLS_CERT", fn) + helper.overrideVar(envvars.VESPA_TLS_CERT, fn) } if cfg.DisableHostnameValidation { - helper.overrideVar("VESPA_TLS_HOSTNAME_VALIDATION_DISABLED", "1") + helper.overrideVar(envvars.VESPA_TLS_HOSTNAME_VALIDATION_DISABLED, "1") } else { - helper.unsetVar("VESPA_TLS_HOSTNAME_VALIDATION_DISABLED") + helper.unsetVar(envvars.VESPA_TLS_HOSTNAME_VALIDATION_DISABLED) } - if os.Getenv("VESPA_TLS_INSECURE_MIXED_MODE") != "plaintext_client_mixed_server" { - helper.overrideVar("VESPA_TLS_ENABLED", "1") + if os.Getenv(envvars.VESPA_TLS_INSECURE_MIXED_MODE) != "plaintext_client_mixed_server" { + helper.overrideVar(envvars.VESPA_TLS_ENABLED, "1") } } helper.dump() |