Skip to content

Commit 1ee8f5b

Browse files
committed
Merge branch 'main' into dym-lb-policy
Signed-off-by: jukie <10012479+jukie@users.noreply.github.com>
1 parent 1a7125b commit 1ee8f5b

215 files changed

Lines changed: 9191 additions & 9123 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ updates:
6464
- /tools
6565
schedule:
6666
interval: weekly
67+
ignore:
68+
# fortawesome/fontawesome-free should be updated with docsy.
69+
- dependency-name: "@fortawesome/fontawesome-free"
6770
- package-ecosystem: pip
6871
directories:
6972
- /tools/src/codespell

.github/workflows/codeql.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ jobs:
3636
- uses: ./tools/github-actions/setup-deps
3737

3838
- name: Initialize CodeQL
39-
uses: github/codeql-action/init@c10b8064de6f491fea524254123dbe5e09572f13 # v3.29.5
39+
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v3.29.5
4040
with:
4141
languages: ${{ matrix.language }}
4242

4343
- name: Autobuild
44-
uses: github/codeql-action/autobuild@c10b8064de6f491fea524254123dbe5e09572f13 # v3.29.5
44+
uses: github/codeql-action/autobuild@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v3.29.5
4545

4646
- name: Perform CodeQL Analysis
47-
uses: github/codeql-action/analyze@c10b8064de6f491fea524254123dbe5e09572f13 # v3.29.5
47+
uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v3.29.5
4848
with:
4949
category: "/language:${{matrix.language}}"

.github/workflows/docs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
- uses: ./tools/github-actions/setup-deps
4949

5050
- name: Setup Node
51-
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
51+
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
5252
with:
5353
node-version-file: site/.nvmrc
5454

.github/workflows/scorecard.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,6 @@ jobs:
4040
retention-days: 5
4141

4242
- name: "Upload to code-scanning"
43-
uses: github/codeql-action/upload-sarif@c10b8064de6f491fea524254123dbe5e09572f13 # v3.29.5
43+
uses: github/codeql-action/upload-sarif@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v3.29.5
4444
with:
4545
sarif_file: results.sarif

.github/workflows/trivy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
IMAGE=envoy-proxy/gateway-dev TAG=${{ github.sha }} make image
3636
3737
- name: Run Trivy vulnerability scanner
38-
uses: aquasecurity/trivy-action@57a97c7e7821a5776cebc9bb87c984fa69cba8f1 # v0.35.0
38+
uses: aquasecurity/trivy-action@ed142fd0673e97e23eac54620cfb913e5ce36c25 # v0.36.0
3939
with:
4040
image-ref: envoy-proxy/gateway-dev:${{ github.sha }}
4141
exit-code: '1'

api/v1alpha1/envoygateway_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,8 @@ type ExtensionAPISettings struct {
312312
// DisableLua determines if Lua EnvoyExtensionPolicies should be disabled.
313313
// If set to true, the Lua EnvoyExtensionPolicy feature will be disabled.
314314
DisableLua bool `json:"disableLua"`
315+
// EnableSDSSecretRef enables read SDS(Secret Discovery Service) settings from a secret(with type gateway.envoyproxy.io/sds).
316+
EnableSDSSecretRef bool `json:"enableSDSSecretRef"`
315317
}
316318

317319
// EnvoyGatewayProvider defines the desired configuration of a provider.

api/v1alpha1/healthcheck_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ type PassiveHealthCheck struct {
7070
// MaxEjectionPercent sets the maximum percentage of hosts in a cluster that can be ejected.
7171
//
7272
// +kubebuilder:default=10
73+
// +kubebuilder:validation:Minimum=0
74+
// +kubebuilder:validation:Maximum=100
7375
// +optional
7476
MaxEjectionPercent *int32 `json:"maxEjectionPercent,omitempty"`
7577

api/v1alpha1/loadbalancer_types.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ import (
1818
// +kubebuilder:validation:XValidation:rule="self.type == 'DynamicModule' ? has(self.dynamicModule) : !has(self.dynamicModule)",message="If LoadBalancer type is DynamicModule, dynamicModule field needs to be set."
1919
// +kubebuilder:validation:XValidation:rule="self.type in ['Random', 'ConsistentHash', 'DynamicModule'] ? !has(self.slowStart) : true",message="Currently SlowStart is only supported for RoundRobin, LeastRequest, and BackendUtilization load balancers."
2020
// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' && has(self.zoneAware) ? !has(self.zoneAware.preferLocal) : true",message="PreferLocal zone-aware routing is not supported for ConsistentHash load balancers. Use weightedZones instead."
21-
// +kubebuilder:validation:XValidation:rule="self.type in ['BackendUtilization', 'DynamicModule'] ? !has(self.zoneAware) : true",message="ZoneAware routing is not supported for BackendUtilization and DynamicModule load balancers."
21+
// +kubebuilder:validation:XValidation:rule="self.type == 'BackendUtilization' && has(self.zoneAware) ? !has(self.zoneAware.preferLocal) : true",message="PreferLocal zone-aware routing is not currently supported for BackendUtilization load balancers. Only WeightedZones can be used with BackendUtilization."
22+
// +kubebuilder:validation:XValidation:rule="self.type == 'DynamicModule' ? !has(self.zoneAware) : true",message="ZoneAware routing is not supported for DynamicModule load balancers."
2223
// +kubebuilder:validation:XValidation:rule="has(self.zoneAware) ? !(has(self.zoneAware.preferLocal) && has(self.zoneAware.weightedZones)) : true",message="ZoneAware PreferLocal and WeightedZones cannot be specified together."
2324
// +kubebuilder:validation:XValidation:rule="self.type == 'DynamicModule' ? !has(self.endpointOverride) : true",message="EndpointOverride is not supported for DynamicModule load balancers."
2425
type LoadBalancer struct {

api/v1alpha1/ratelimit_types.go

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,23 @@ type LocalRateLimit struct {
7171
Rules []RateLimitRule `json:"rules"`
7272
}
7373

74+
// XRateLimitHeadersOption controls whether X-RateLimit response headers are sent for a rate limit rule.
75+
// Valid values are "Off" and "DraftVersion03".
76+
// This allows per-rule override of the global X-RateLimit header setting in ClientTrafficPolicy.
77+
//
78+
// +kubebuilder:validation:Enum=Off;DraftVersion03
79+
type XRateLimitHeadersOption string
80+
81+
const (
82+
// XRateLimitHeadersOptionDisabled disables X-RateLimit headers for this rate limit rule,
83+
// regardless of the global ClientTrafficPolicy setting.
84+
XRateLimitHeadersOptionDisabled XRateLimitHeadersOption = "Disabled"
85+
86+
// XRateLimitHeadersOptionDraftVersion03 enables X-RateLimit headers using RFC draft version 03
87+
// for this rate limit rule, regardless of the global ClientTrafficPolicy setting.
88+
XRateLimitHeadersOptionDraftVersion03 XRateLimitHeadersOption = "DraftVersion03"
89+
)
90+
7491
// RateLimitRule defines the semantics for matching attributes
7592
// from the incoming requests, and setting limits for them.
7693
type RateLimitRule struct {
@@ -119,6 +136,12 @@ type RateLimitRule struct {
119136
//
120137
// +optional
121138
ShadowMode *bool `json:"shadowMode,omitempty"`
139+
// XRateLimitHeaders controls whether X-RateLimit response headers are emitted for this rate limit rule.
140+
// When set, this overrides the global DisableRateLimitHeaders setting in ClientTrafficPolicy for this rule.
141+
// If not set, the rule inherits the listener-level setting (default behavior).
142+
//
143+
// +optional
144+
XRateLimitHeaders *XRateLimitHeadersOption `json:"xRateLimitHeaders,omitempty"`
122145
}
123146

124147
type RateLimitCost struct {
@@ -409,7 +432,12 @@ type PathMatch struct {
409432

410433
// RateLimitValue defines the limits for rate limiting.
411434
type RateLimitValue struct {
412-
Requests uint `json:"requests"`
435+
// Requests is the number of requests (or cost units, when used with
436+
// cost-based rate limiting) allowed per Unit.
437+
//
438+
// +kubebuilder:validation:Minimum=1
439+
// +kubebuilder:validation:Maximum=4294967295
440+
Requests uint32 `json:"requests"`
413441
Unit RateLimitUnit `json:"unit"`
414442
}
415443

api/v1alpha1/shared_types.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ import (
1616
)
1717

1818
const (
19+
// SDSSecretType is the type for secrets that reference SDS configuration
20+
SDSSecretType = "gateway.envoyproxy.io/sds"
21+
1922
// DefaultDeploymentReplicas is the default number of deployment replicas.
2023
DefaultDeploymentReplicas = 1
2124
// DefaultDeploymentCPUResourceRequests for deployment cpu resource

0 commit comments

Comments
 (0)