Apply default MaxConnsPerHost in agent even if template_config block is missing (#24989)

This commit is contained in:
indjb 2024-01-24 12:56:05 -05:00 committed by GitHub
parent 5bb10fe149
commit b87318b35e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 134 additions and 0 deletions

View File

@ -1106,6 +1106,9 @@ func parseTemplateConfig(result *Config, list *ast.ObjectList) error {
templateConfigList := list.Filter(name)
if len(templateConfigList.Items) == 0 {
result.TemplateConfig = &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
}
return nil
}

View File

@ -92,6 +92,9 @@ func TestLoadConfigFile_AgentCache(t *testing.T) {
ServiceAccountTokenFile: "/tmp/serviceaccount/token",
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
CACert: "config_ca_cert",
@ -197,6 +200,9 @@ func TestLoadConfigDir_AgentCache(t *testing.T) {
ServiceAccountTokenFile: "/tmp/serviceaccount/token",
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
CACert: "config_ca_cert",
@ -267,6 +273,9 @@ func TestLoadConfigDir_AutoAuthAndListener(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -330,6 +339,9 @@ func TestLoadConfigDir_VaultBlock(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -397,6 +409,9 @@ func TestLoadConfigFile_AgentCache_NoListeners(t *testing.T) {
ServiceAccountTokenFile: "/tmp/serviceaccount/token",
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
CACert: "config_ca_cert",
@ -476,6 +491,9 @@ func TestLoadConfigFile(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -524,6 +542,9 @@ func TestLoadConfigFile_Method_Wrapping(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -563,6 +584,9 @@ func TestLoadConfigFile_Method_InitialBackoff(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -602,6 +626,9 @@ func TestLoadConfigFile_Method_ExitOnErr(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -628,6 +655,9 @@ func TestLoadConfigFile_AgentCache_NoAutoAuth(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -762,6 +792,9 @@ func TestLoadConfigFile_AgentCache_AutoAuth_NoSink(t *testing.T) {
UseAutoAuthTokenRaw: true,
ForceAutoAuthToken: false,
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -805,6 +838,9 @@ func TestLoadConfigFile_AgentCache_AutoAuth_Force(t *testing.T) {
UseAutoAuthTokenRaw: "force",
ForceAutoAuthToken: true,
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -848,6 +884,9 @@ func TestLoadConfigFile_AgentCache_AutoAuth_True(t *testing.T) {
UseAutoAuthTokenRaw: "true",
ForceAutoAuthToken: false,
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -889,6 +928,9 @@ func TestLoadConfigFile_Agent_AutoAuth_APIProxyAllConfig(t *testing.T) {
EnforceConsistency: "always",
WhenInconsistent: "forward",
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -939,6 +981,9 @@ func TestLoadConfigFile_AgentCache_AutoAuth_False(t *testing.T) {
UseAutoAuthTokenRaw: "false",
ForceAutoAuthToken: false,
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -973,6 +1018,9 @@ func TestLoadConfigFile_AgentCache_Persist(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -1008,6 +1056,12 @@ func TestLoadConfigFile_TemplateConfig(t *testing.T) {
MaxConnectionsPerHost: 10,
},
},
"missing": {
"./test-fixtures/config-template_config-missing.hcl",
TemplateConfig{
MaxConnectionsPerHost: 10,
},
},
}
for name, tc := range testCases {
@ -1141,6 +1195,9 @@ func TestLoadConfigFile_Template(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Templates: tc.expectedTemplates,
}
@ -1237,6 +1294,9 @@ func TestLoadConfigFile_Template_NoSinks(t *testing.T) {
},
Sinks: nil,
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Templates: tc.expectedTemplates,
}
@ -1271,6 +1331,9 @@ func TestLoadConfigFile_Template_WithCache(t *testing.T) {
},
},
Cache: &Cache{},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Templates: []*ctconfig.TemplateConfig{
{
Source: pointerutil.StringPtr("/path/on/disk/to/template.ctmpl"),
@ -1316,6 +1379,9 @@ func TestLoadConfigFile_Vault_Retry(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -1361,6 +1427,9 @@ func TestLoadConfigFile_Vault_Retry_Empty(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -1396,6 +1465,9 @@ func TestLoadConfigFile_EnforceConsistency(t *testing.T) {
EnforceConsistency: "always",
WhenInconsistent: "retry",
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -1425,6 +1497,9 @@ func TestLoadConfigFile_EnforceConsistency_APIProxy(t *testing.T) {
EnforceConsistency: "always",
WhenInconsistent: "retry",
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
}
config.Prune()
@ -1468,6 +1543,9 @@ func TestLoadConfigFile_Disable_Idle_Conns_All(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -1517,6 +1595,9 @@ func TestLoadConfigFile_Disable_Idle_Conns_Auto_Auth(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -1566,6 +1647,9 @@ func TestLoadConfigFile_Disable_Idle_Conns_Templating(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -1615,6 +1699,9 @@ func TestLoadConfigFile_Disable_Idle_Conns_Caching(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -1664,6 +1751,9 @@ func TestLoadConfigFile_Disable_Idle_Conns_Proxying(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -1713,6 +1803,9 @@ func TestLoadConfigFile_Disable_Idle_Conns_Empty(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -1768,6 +1861,9 @@ func TestLoadConfigFile_Disable_Idle_Conns_Env(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -1824,6 +1920,9 @@ func TestLoadConfigFile_Disable_Keep_Alives_All(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -1873,6 +1972,9 @@ func TestLoadConfigFile_Disable_Keep_Alives_Auto_Auth(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -1922,6 +2024,9 @@ func TestLoadConfigFile_Disable_Keep_Alives_Templating(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -1971,6 +2076,9 @@ func TestLoadConfigFile_Disable_Keep_Alives_Caching(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -2020,6 +2128,9 @@ func TestLoadConfigFile_Disable_Keep_Alives_Proxying(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -2069,6 +2180,9 @@ func TestLoadConfigFile_Disable_Keep_Alives_Empty(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{
@ -2124,6 +2238,9 @@ func TestLoadConfigFile_Disable_Keep_Alives_Env(t *testing.T) {
},
},
},
TemplateConfig: &TemplateConfig{
MaxConnectionsPerHost: DefaultTemplateConfigMaxConnsPerHost,
},
Vault: &Vault{
Address: "http://127.0.0.1:1111",
Retry: &Retry{

View File

@ -0,0 +1,14 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: BUSL-1.1
vault {
address = "http://127.0.0.1:1111"
retry {
num_retries = 5
}
}
template {
source = "/path/on/disk/to/template.ctmpl"
destination = "/path/on/disk/where/template/will/render.txt"
}