Skip to content

Commit

Permalink
feat: Copy slowStartConfig for Gloo upstreams
Browse files Browse the repository at this point in the history
Signed-off-by: Nick Caballero <[email protected]>
  • Loading branch information
nickcaballero authored and aryan9600 committed Jul 13, 2023
1 parent ac3140b commit 8747d15
Show file tree
Hide file tree
Showing 5 changed files with 117 additions and 1 deletion.
21 changes: 21 additions & 0 deletions pkg/apis/gloo/gloo/v1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ type UpstreamSpec struct {
SslConfig *UpstreamSslConfig `json:"sslConfig,omitempty"`
CircuitBreakers *CircuitBreakerConfig `json:"circuitBreakers,omitempty"`
ConnectionConfig *ConnectionConfig `json:"connectionConfig,omitempty"`
LoadBalancerConfig *LoadBalancerConfig `json:"loadBalancerConfig,omitempty"`
UseHttp2 bool `json:"useHttp2,omitempty"`
InitialStreamWindowSize uint32 `json:"initialStreamWindowSize,omitempty"`
InitialConnectionWindowSize uint32 `json:"initialConnectionWindowSize,omitempty"`
Expand Down Expand Up @@ -109,6 +110,26 @@ type ConnectionConfig_HttpProtocolOptions struct {
HeadersWithUnderscoresAction uint32 `json:"headersWithUnderscoresAction,omitempty"`
}

type LoadBalancerConfig struct {
RoundRobin *LoadBalancerConfigRoundRobin `json:"roundRobin,omitempty"`
LeastRequest *LoadBalancerConfigLeastRequest `json:"leastRequest,omitempty"`
}

type LoadBalancerConfigRoundRobin struct {
SlowStartConfig *SlowStartConfig `json:"slowStartConfig,omitempty"`
}

type LoadBalancerConfigLeastRequest struct {
SlowStartConfig *SlowStartConfig `json:"slowStartConfig,omitempty"`
ChoiceCount uint32 `json:"choiceCount,omitempty"`
}

type SlowStartConfig struct {
SlowStartWindow string `json:"slowStartWindow,omitempty"`
Aggression float64 `json:"aggression,omitempty"`
MinWeightPercent float64 `json:"minWeightPercent,omitempty"`
}

type Duration struct {
Seconds int64 `json:"seconds,omitempty"`
Nanos int32 `json:"nanos,omitempty"`
Expand Down
89 changes: 89 additions & 0 deletions pkg/apis/gloo/gloo/v1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pkg/router/gloo.go
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,7 @@ func (gr *GlooRouter) getGlooUpstreamKubeService(canary *flaggerv1.Canary, svc *
SslConfig: configSpec.SslConfig,
CircuitBreakers: configSpec.CircuitBreakers,
ConnectionConfig: configSpec.ConnectionConfig,
LoadBalancerConfig: configSpec.LoadBalancerConfig,
UseHttp2: configSpec.UseHttp2,
InitialStreamWindowSize: configSpec.InitialStreamWindowSize,
InitialConnectionWindowSize: configSpec.InitialConnectionWindowSize,
Expand Down
2 changes: 1 addition & 1 deletion test/gloo/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

set -o errexit

GLOO_VER="1.12.31"
GLOO_VER="1.14.10"
REPO_ROOT=$(git rev-parse --show-toplevel)

mkdir -p ${REPO_ROOT}/bin
Expand Down
5 changes: 5 additions & 0 deletions test/gloo/test-canary.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ spec:
port: 80
connectionConfig:
maxRequestsPerConnection: 51
loadBalancerConfig:
roundRobin:
slowStartConfig:
slowStartWindow: 2m
minWeightPercent: 5
EOF

cat <<EOF | kubectl apply -f -
Expand Down

0 comments on commit 8747d15

Please sign in to comment.