diff --git a/agent/config/config.go b/agent/config/config.go index 8fad60cbc..fc30db934 100644 --- a/agent/config/config.go +++ b/agent/config/config.go @@ -234,6 +234,12 @@ type Config struct { VerifyServerHostname *bool `json:"verify_server_hostname,omitempty" hcl:"verify_server_hostname" mapstructure:"verify_server_hostname"` Watches []map[string]interface{} `json:"watches,omitempty" hcl:"watches" mapstructure:"watches"` + // This isn't used by Consul but we've documented a feature where users + // can deploy their snapshot agent configs alongside their Consul configs + // so we have a placeholder here so it can be parsed but this doesn't + // manifest itself in any way inside the runtime config. + SnapshotAgent map[string]interface{} `json:"snapshot_agent,omitempty" hcl:"snapshot_agent" mapstructure:"snapshot_agent"` + // non-user configurable values ACLDisabledTTL *string `json:"acl_disabled_ttl,omitempty" hcl:"acl_disabled_ttl" mapstructure:"acl_disabled_ttl"` AEInterval *string `json:"ae_interval,omitempty" hcl:"ae_interval" mapstructure:"ae_interval"` diff --git a/agent/config/runtime_test.go b/agent/config/runtime_test.go index 03389cd28..0776b4383 100644 --- a/agent/config/runtime_test.go +++ b/agent/config/runtime_test.go @@ -1194,6 +1194,7 @@ func TestConfigFlagsAndEdgecases(t *testing.T) { // ------------------------------------------------------------ // transformations // + { desc: "raft performance scaling", args: []string{`-data-dir=` + dataDir}, @@ -1922,6 +1923,21 @@ func TestConfigFlagsAndEdgecases(t *testing.T) { rt.DataDir = dataDir }, }, + { + desc: "ignore snapshot_agent sub-object", + args: []string{ + `-data-dir=` + dataDir, + }, + json: []string{ + `{ "snapshot_agent": { "dont": "care" } }`, + }, + hcl: []string{ + `snapshot_agent = { dont = "care" }`, + }, + patch: func(rt *RuntimeConfig) { + rt.DataDir = dataDir + }, + }, } testConfig(t, tests, dataDir)