mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-11-01 19:17:58 +00:00
Initial Atlas listener implementation
This commit is contained in:
@@ -200,6 +200,7 @@ func ParseConfig(d string) (*Config, error) {
|
||||
}
|
||||
|
||||
valid := []string{
|
||||
"atlas",
|
||||
"backend",
|
||||
"ha_backend",
|
||||
"listener",
|
||||
@@ -414,6 +415,8 @@ func parseHABackends(result *Config, list *ast.ObjectList) error {
|
||||
}
|
||||
|
||||
func parseListeners(result *Config, list *ast.ObjectList) error {
|
||||
var foundAtlas bool
|
||||
|
||||
listeners := make([]*Listener, 0, len(list.Items))
|
||||
for _, item := range list.Items {
|
||||
key := "listener"
|
||||
@@ -423,10 +426,13 @@ func parseListeners(result *Config, list *ast.ObjectList) error {
|
||||
|
||||
valid := []string{
|
||||
"address",
|
||||
"endpoint",
|
||||
"infrastructure",
|
||||
"tls_disable",
|
||||
"tls_cert_file",
|
||||
"tls_key_file",
|
||||
"tls_min_version",
|
||||
"token",
|
||||
}
|
||||
if err := checkHCLKeys(item.Val, valid); err != nil {
|
||||
return multierror.Prefix(err, fmt.Sprintf("listeners.%s:", key))
|
||||
@@ -437,8 +443,24 @@ func parseListeners(result *Config, list *ast.ObjectList) error {
|
||||
return multierror.Prefix(err, fmt.Sprintf("listeners.%s:", key))
|
||||
}
|
||||
|
||||
lnType := strings.ToLower(key)
|
||||
|
||||
if lnType == "atlas" {
|
||||
if foundAtlas {
|
||||
return multierror.Prefix(fmt.Errorf("only one listener of type 'atlas' is permitted"), fmt.Sprintf("listeners.%s", key))
|
||||
} else {
|
||||
foundAtlas = true
|
||||
if m["token"] == "" {
|
||||
return multierror.Prefix(fmt.Errorf("'token' must be specified for an Atlas listener"), fmt.Sprintf("listeners.%s", key))
|
||||
}
|
||||
if m["infrastructure"] == "" {
|
||||
return multierror.Prefix(fmt.Errorf("'infrastructure' must be specified for an Atlas listener"), fmt.Sprintf("listeners.%s", key))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
listeners = append(listeners, &Listener{
|
||||
Type: strings.ToLower(key),
|
||||
Type: lnType,
|
||||
Config: m,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user