github.com/kubeshop/testkube@v1.17.23/contrib/executor/jmeterd/pkg/slaves/env.go (about) 1 package slaves 2 3 import ( 4 "os" 5 "strings" 6 7 "github.com/kubeshop/testkube/pkg/api/v1/testkube" 8 exenv "github.com/kubeshop/testkube/pkg/executor/env" 9 ) 10 11 const ( 12 MasterOverrideJvmArgs = "MASTER_OVERRIDE_JVM_ARGS" 13 MasterAdditionalJvmArgs = "MASTER_ADDITIONAL_JVM_ARGS" 14 SlavesOverrideJvmArgs = "SLAVES_OVERRIDE_JVM_ARGS" 15 SlavesAdditionalJvmArgs = "SLAVES_ADDITIONAL_JVM_ARGS" 16 SlavesAdditionalJmeterArgs = "SLAVES_ADDITIONAL_JMETER_ARGS" 17 SlavesCount = "SLAVES_COUNT" 18 MasterPrefix = "MASTER_" 19 SlavesPrefix = "SLAVES_" 20 RunnerPrefix = "RUNNER_" 21 HttpProxyPrefix = "HTTP_PROXY=" 22 HttpsProxyPrefix = "HTTPS_PROXY=" 23 DebugPrefix = "DEBUG=" 24 ) 25 26 // ExtractSlaveEnvVariables removes slave environment variables from the given map and returns them separately. 27 func ExtractSlaveEnvVariables(variables map[string]testkube.Variable) map[string]testkube.Variable { 28 slaveVariables := make(map[string]testkube.Variable) 29 30 // Iterate through the variables to extract slave environment variables. 31 for k, v := range variables { 32 switch { 33 case strings.HasPrefix(k, SlavesPrefix): 34 slaveVariables[k] = v 35 delete(variables, k) // Remove slave variable from the main variables map. 36 case strings.HasPrefix(k, MasterPrefix): 37 continue 38 default: 39 slaveVariables[k] = v 40 } 41 } 42 return slaveVariables 43 } 44 45 // GetRunnerEnvVariables returns runner env variables 46 func GetRunnerEnvVariables() map[string]string { 47 envVars := make(map[string]string) 48 envs := os.Environ() 49 OuterLoop: 50 for _, env := range envs { 51 for _, prefix := range []string{exenv.SecretEnvVarPrefix, exenv.SecretVarPrefix, 52 exenv.GitUsernameEnvVarName, exenv.GitTokenEnvVarName} { 53 if strings.HasPrefix(env, prefix) { 54 continue OuterLoop 55 } 56 } 57 58 for _, prefix := range []string{RunnerPrefix, HttpProxyPrefix, HttpsProxyPrefix, DebugPrefix} { 59 if strings.HasPrefix(env, prefix) { 60 pair := strings.SplitN(env, "=", 2) 61 if len(pair) != 2 { 62 continue OuterLoop 63 } 64 65 envVars[pair[0]] += pair[1] 66 } 67 } 68 } 69 70 envVars["CI"] = "1" 71 return envVars 72 }