Avoid sending zero-value upstream defaults from api

This commit is contained in:
freddygv 2021-04-07 15:03:42 -06:00
parent a6388c7e2f
commit ab752c1c86
3 changed files with 10 additions and 5 deletions

View File

@ -194,7 +194,9 @@ func (cfg *ConnectConfiguration) Normalize() {
v.Normalize() v.Normalize()
} }
cfg.UpstreamDefaults.Normalize() if cfg.UpstreamDefaults != nil {
cfg.UpstreamDefaults.Normalize()
}
} }
func (cfg ConnectConfiguration) Validate() error { func (cfg ConnectConfiguration) Validate() error {
@ -206,8 +208,11 @@ func (cfg ConnectConfiguration) Validate() error {
} }
} }
if err := cfg.UpstreamDefaults.Validate(); err != nil { if cfg.UpstreamDefaults != nil {
validationErr = multierror.Append(validationErr, fmt.Errorf("error in upstream defaults %v", err)) err := cfg.UpstreamDefaults.Validate()
if err != nil {
validationErr = multierror.Append(validationErr, fmt.Errorf("error in upstream defaults %v", err))
}
} }
return validationErr return validationErr

View File

@ -98,7 +98,7 @@ type ConnectConfiguration struct {
UpstreamConfigs map[string]UpstreamConfig `json:",omitempty" alias:"upstream_configs"` UpstreamConfigs map[string]UpstreamConfig `json:",omitempty" alias:"upstream_configs"`
// UpstreamDefaults contains default configuration for all upstreams of a given service // UpstreamDefaults contains default configuration for all upstreams of a given service
UpstreamDefaults UpstreamConfig `json:",omitempty" alias:"upstream_defaults"` UpstreamDefaults *UpstreamConfig `json:",omitempty" alias:"upstream_defaults"`
} }
type UpstreamConfig struct { type UpstreamConfig struct {

View File

@ -638,7 +638,7 @@ func TestParseConfigEntry(t *testing.T) {
}, },
}, },
}, },
UpstreamDefaults: api.UpstreamConfig{ UpstreamDefaults: &api.UpstreamConfig{
EnvoyClusterJSON: "zip", EnvoyClusterJSON: "zip",
EnvoyListenerJSON: "zop", EnvoyListenerJSON: "zop",
Protocol: "http", Protocol: "http",