mirror of
https://github.com/akvorado/akvorado.git
synced 2025-12-12 06:24:10 +01:00
cmd: change prefix for environment variables to AKVORADO_CFG
Otherwise, this may clash with automatically set environment variables by various solutions, including Kubernetes.
This commit is contained in:
@@ -105,16 +105,16 @@ func (c ConfigRelatedOptions) Parse(out io.Writer, component string, config inte
|
||||
continue
|
||||
}
|
||||
kk := strings.Split(kv[0], "_")
|
||||
if len(kk) < 3 || kk[0] != "AKVORADO" || kk[1] != strings.ToUpper(component) {
|
||||
if len(kk) < 4 || kk[0] != "AKVORADO" || kk[1] != "CFG" || kk[2] != strings.ToUpper(component) {
|
||||
continue
|
||||
}
|
||||
// From AKVORADO_CMP_SQUID_PURPLE_QUIRK=47, we
|
||||
// From AKVORADO_CFG_CMP_SQUID_PURPLE_QUIRK=47, we
|
||||
// build a map "squid -> purple -> quirk ->
|
||||
// 47". From AKVORADO_CMP_SQUID_3_PURPLE=47, we
|
||||
// 47". From AKVORADO_CFG_CMP_SQUID_3_PURPLE=47, we
|
||||
// build "squid[3] -> purple -> 47"
|
||||
var rawConfig interface{}
|
||||
rawConfig = kv[1]
|
||||
for i := len(kk) - 1; i > 1; i-- {
|
||||
for i := len(kk) - 1; i > 2; i-- {
|
||||
if index, err := strconv.Atoi(kk[i]); err == nil {
|
||||
newRawConfig := make([]interface{}, index+1)
|
||||
newRawConfig[index] = rawConfig
|
||||
|
||||
@@ -203,21 +203,21 @@ module2:
|
||||
// Environment
|
||||
clean := func() {
|
||||
for _, env := range os.Environ() {
|
||||
if strings.HasPrefix(env, "AKVORADO_DUMMY_") {
|
||||
if strings.HasPrefix(env, "AKVORADO_CFG_DUMMY_") {
|
||||
os.Unsetenv(strings.Split(env, "=")[0])
|
||||
}
|
||||
}
|
||||
}
|
||||
clean()
|
||||
defer clean()
|
||||
os.Setenv("AKVORADO_DUMMY_MODULE1_LISTEN", "127.0.0.1:9000")
|
||||
os.Setenv("AKVORADO_DUMMY_MODULE1_TOPIC", "something")
|
||||
os.Setenv("AKVORADO_DUMMY_MODULE2_DETAILS_INTERVALVALUE", "10m")
|
||||
os.Setenv("AKVORADO_DUMMY_MODULE2_STUFF", "bye")
|
||||
os.Setenv("AKVORADO_DUMMY_MODULE2_ELEMENTS_0_NAME", "something")
|
||||
os.Setenv("AKVORADO_DUMMY_MODULE2_ELEMENTS_0_GAUGE", "18")
|
||||
os.Setenv("AKVORADO_DUMMY_MODULE2_ELEMENTS_1_NAME", "something else")
|
||||
os.Setenv("AKVORADO_DUMMY_MODULE2_ELEMENTS_1_GAUGE", "7")
|
||||
os.Setenv("AKVORADO_CFG_DUMMY_MODULE1_LISTEN", "127.0.0.1:9000")
|
||||
os.Setenv("AKVORADO_CFG_DUMMY_MODULE1_TOPIC", "something")
|
||||
os.Setenv("AKVORADO_CFG_DUMMY_MODULE2_DETAILS_INTERVALVALUE", "10m")
|
||||
os.Setenv("AKVORADO_CFG_DUMMY_MODULE2_STUFF", "bye")
|
||||
os.Setenv("AKVORADO_CFG_DUMMY_MODULE2_ELEMENTS_0_NAME", "something")
|
||||
os.Setenv("AKVORADO_CFG_DUMMY_MODULE2_ELEMENTS_0_GAUGE", "18")
|
||||
os.Setenv("AKVORADO_CFG_DUMMY_MODULE2_ELEMENTS_1_NAME", "something else")
|
||||
os.Setenv("AKVORADO_CFG_DUMMY_MODULE2_ELEMENTS_1_GAUGE", "7")
|
||||
|
||||
c := cmd.ConfigRelatedOptions{
|
||||
Path: configFile,
|
||||
|
||||
@@ -14,7 +14,7 @@ written using strings like `10h20m` or `5s`. Valid time units are `ms`, `s`,
|
||||
|
||||
It is also possible to override configuration settings using
|
||||
environment variables. You need to remove any `-` from key names and
|
||||
use `_` to handle nesting. Then, put `AKVORADO_ORCHESTRATOR_` as a
|
||||
use `_` to handle nesting. Then, put `AKVORADO_CFG_ORCHESTRATOR_` as a
|
||||
prefix. For example, let's consider the following configuration file:
|
||||
|
||||
```yaml
|
||||
@@ -30,9 +30,9 @@ kafka:
|
||||
It can be translated to:
|
||||
|
||||
```sh
|
||||
AKVORADO_ORCHESTRATOR_HTTP_LISTEN=127.0.0.1:8081
|
||||
AKVORADO_ORCHESTRATOR_KAFKA_TOPIC=test-topic
|
||||
AKVORADO_ORCHESTRATOR_KAFKA_BROKERS=192.0.2.1:9092,192.0.2.2:9092
|
||||
AKVORADO_CFG_ORCHESTRATOR_HTTP_LISTEN=127.0.0.1:8081
|
||||
AKVORADO_CFG_ORCHESTRATOR_KAFKA_TOPIC=test-topic
|
||||
AKVORADO_CFG_ORCHESTRATOR_KAFKA_BROKERS=192.0.2.1:9092,192.0.2.2:9092
|
||||
```
|
||||
|
||||
The orchestrator service has its own configuration, as well as the
|
||||
|
||||
@@ -13,6 +13,9 @@ identified with a specific icon:
|
||||
|
||||
## Unreleased
|
||||
|
||||
- 💥 *cmd*: use `AKVORADO_CFG_` as a prefix for environment variables used to
|
||||
modify configuration (`AKVORADO_CFG_ORCHESTRATOR_HTTP_LISTEN` instead of
|
||||
`AKVORADO_ORCHESTRATOR_HTTP_LISTEN`)
|
||||
- 💥 *inlet*: `inlet`→`metadata`→`provider(snmp)`→`ports` is now a map from
|
||||
exporter subnets to ports, instead of a map from agent subnets to ports. This
|
||||
is aligned with how `communities` and `security-parameters` options behave.
|
||||
|
||||
Reference in New Issue
Block a user