Skip to content

Commit 174be3d

Browse files
authored
Change environment prefix from nms to nginx_agent (#706)
* changed env variable prefix from NMS to NGINX_AGENT * changed env variable prefix from NMS to NGINX_AGENT * renamed env prefix constants * renamed env prefix constants * refactored string building of oldKey and newKey * refactored string building of oldKey and newKey * added test for env prefix migration * added test for env prefix migration * refactored string builing of oldKey and newKey * refactored string builing of oldKey and newKey * fixed deprecated env prefix migration test
1 parent 3dc9eb3 commit 174be3d

File tree

8 files changed

+85
-6
lines changed

8 files changed

+85
-6
lines changed

main.go

+4
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ func main() {
5959
defer logFile.Close()
6060
}
6161

62+
if config.MigratedEnv {
63+
log.Warnf("The environment variable prefix 'NMS' is deprecated. Prefix has been migrated to 'NGINX_AGENT'. Please update your configuration to use the new prefix.")
64+
}
65+
6266
log.Tracef("Config loaded from disk, %v", loadedConfig)
6367

6468
if loadedConfig.DisplayName == "" {

src/core/config/config.go

+15-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@ const (
4747
`
4848
)
4949

50-
var Viper = viper.NewWithOptions(viper.KeyDelimiter(agent_config.KeyDelimiter))
50+
var (
51+
Viper = viper.NewWithOptions(viper.KeyDelimiter(agent_config.KeyDelimiter))
52+
MigratedEnv = false
53+
)
5154

5255
func SetVersion(version, commit string) {
5356
ROOT_COMMAND.Version = version + "-" + commit
@@ -149,6 +152,17 @@ func RegisterFlags() {
149152
if err := Viper.BindPFlag(strings.ReplaceAll(flag.Name, "-", "_"), fs.Lookup(flag.Name)); err != nil {
150153
return
151154
}
155+
156+
oldKey := strings.ToUpper(LegacyEnvPrefix + agent_config.KeyDelimiter + strings.ReplaceAll(flag.Name, "-", agent_config.KeyDelimiter))
157+
newKey := strings.ToUpper(EnvPrefix + agent_config.KeyDelimiter + strings.ReplaceAll(flag.Name, "-", agent_config.KeyDelimiter))
158+
159+
if os.Getenv(oldKey) != "" && os.Getenv(newKey) == "" {
160+
if err := os.Setenv(newKey, os.Getenv(oldKey)); err != nil {
161+
log.Warnf("Failed to set environment variable %s: %v", newKey, err)
162+
}
163+
MigratedEnv = true
164+
}
165+
152166
err := Viper.BindEnv(flag.Name)
153167
if err != nil {
154168
log.Warnf("Error occurred binding env %s: %v", flag.Name, err)

src/core/config/config_test.go

+30
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,36 @@ func TestUpdateAgentConfig(t *testing.T) {
479479
}
480480
}
481481

482+
func TestDeprecatedEnvPrefixMigration(t *testing.T) {
483+
want := true
484+
485+
curDir, err := os.Getwd()
486+
require.NoError(t, err)
487+
488+
tempConfDeleteFunc, err := sysutils.CopyFile(fmt.Sprintf("%s/%s", testCfgDir, emptyConfigFile), tempCfgFile)
489+
defer func() {
490+
err := tempConfDeleteFunc()
491+
require.NoError(t, err, "deletion of temp config file failed")
492+
}()
493+
require.NoError(t, err)
494+
495+
tempDynamicDeleteFunc, err := sysutils.CopyFile(fmt.Sprintf("%s/%s", testCfgDir, emptyConfigFile), tempDynamicCfgFile)
496+
defer func() {
497+
err := tempDynamicDeleteFunc()
498+
require.NoError(t, err, "deletion of temp dynamic config file failed")
499+
}()
500+
require.NoError(t, err)
501+
502+
cleanEnv(t, tempCfgFile, fmt.Sprintf("%s/%s", curDir, tempDynamicCfgFile))
503+
setEnvVariable(t, "tls_skip_verify", "true")
504+
505+
config, err := GetConfig("1234")
506+
require.NoError(t, err)
507+
508+
got := config.TLS.SkipVerify
509+
assert.Equal(t, want, got)
510+
}
511+
482512
func setEnvVariable(t *testing.T, name string, value string) {
483513
key := strings.ToUpper(EnvPrefix + agent_config.KeyDelimiter + name)
484514
err := os.Setenv(key, value)

src/core/config/defaults.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ const (
103103
DynamicConfigFileAbsFreeBsdPath = "/var/db/nginx-agent/agent-dynamic.conf"
104104
ConfigFileName = "nginx-agent.conf"
105105
ConfigFileType = "yaml"
106-
EnvPrefix = "nms"
106+
LegacyEnvPrefix = "nms"
107+
EnvPrefix = "nginx_agent"
107108
ConfigPathKey = "path"
108109
DynamicConfigPathKey = "dynamic_config_path"
109110

test/integration/vendor/github.com/nginx/agent/v2/src/core/config/config.go

+15-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/integration/vendor/github.com/nginx/agent/v2/src/core/config/defaults.go

+2-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/performance/vendor/github.com/nginx/agent/v2/src/core/config/config.go

+15-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/performance/vendor/github.com/nginx/agent/v2/src/core/config/defaults.go

+2-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)