Skip to content

Commit b20c9bd

Browse files
ronethingjuzhiyuankayx23dependabot[bot]12ya
authored
backport: part 1 (#240)
* docs: fix links (#2502) * docs: update load balancing Gateway API doc for RC3 fix (#2506) * fix indentation (#2512) * chore(deps): bump golang.org/x/oauth2 from 0.24.0 to 0.27.0 (#2485) Signed-off-by: Ashing Zheng <[email protected]> * chore(test): Refactor loop to use range over integer in test (#2494) * chore: remove redundant backend traffic policy attachment (#2524) Removed unnecessary call to attachBackendTrafficPolicyToUpstream with nil. --------- Signed-off-by: Ashing Zheng <[email protected]> Co-authored-by: 琚致远 / Zhiyuan Ju <[email protected]> Co-authored-by: Traky Deng <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: iliya <[email protected]> Co-authored-by: Ashish Tiwari <[email protected]>
1 parent a019269 commit b20c9bd

File tree

8 files changed

+98
-49
lines changed

8 files changed

+98
-49
lines changed

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,9 @@ The APISIX Ingress Controller allows you to run the APISIX Gateway as a Kubernet
66

77
## Document
88

9-
* [Quickstart](./docs/quickstart.md)
10-
* [Concepts](./docs/concepts.md)
11-
* [Configuration](./docs/configuration.md)
12-
* [Gateway API](./docs/gateway-api.md)
9+
* [Getting Started](./docs/en/latest/getting-started)
10+
* [Concepts](./docs/en/latest/concepts)
11+
* [Configuration](./docs/en/latest/reference)
1312

1413
## Getting Started
1514

docs/en/latest/getting-started/load-balancing.md

Lines changed: 58 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ If you are using Ingress or APISIX custom resources, you can proceed without add
8080
8181
:::
8282
83+
Create a Kubernetes manifest file for a route that proxy requests to two upstream services for load balancing:
84+
8385
<Tabs
8486
groupId="k8s-api"
8587
defaultValue="gateway-api"
@@ -90,14 +92,63 @@ values={[
9092
9193
<TabItem value="gateway-api">
9294
93-
APISIX Ingress controller installed with the current helm chart version (`apisix-2.11.2`) has a bug in load balancing, which is actively being fixed.
95+
```yaml title="lb-route.yaml"
96+
apiVersion: v1
97+
kind: Service
98+
metadata:
99+
name: httpbin-external-domain
100+
spec:
101+
type: ExternalName
102+
externalName: httpbin.org
103+
---
104+
apiVersion: v1
105+
kind: Service
106+
metadata:
107+
name: mockapi7-external-domain
108+
spec:
109+
type: ExternalName
110+
externalName: mock.api7.ai
111+
---
112+
apiVersion: apisix.apache.org/v1alpha1
113+
kind: BackendTrafficPolicy
114+
metadata:
115+
name: passhost-node
116+
spec:
117+
targetRefs:
118+
- name: httpbin-external-domain
119+
kind: Service
120+
group: ""
121+
- name: mockapi7-external-domain
122+
kind: Service
123+
group: ""
124+
passHost: node
125+
scheme: https
126+
---
127+
apiVersion: gateway.networking.k8s.io/v1
128+
kind: HTTPRoute
129+
metadata:
130+
name: lb-route
131+
spec:
132+
parentRefs:
133+
- name: apisix
134+
rules:
135+
- matches:
136+
- path:
137+
type: Exact
138+
value: /headers
139+
backendRefs:
140+
- name: httpbin-external-domain
141+
port: 443
142+
weight: 1
143+
- name: mockapi7-external-domain
144+
port: 443
145+
weight: 1
146+
```
94147
95148
</TabItem>
96149
97150
<TabItem value="apisix-crd">
98151
99-
Create a Kubernetes manifest file for a route that proxy requests to two upstream services for load balancing:
100-
101152
```yaml title="lb-route.yaml"
102153
apiVersion: apisix.apache.org/v2
103154
kind: ApisixUpstream
@@ -141,16 +192,16 @@ spec:
141192
- name: mockapi7-external-domain
142193
```
143194
195+
</TabItem>
196+
197+
</Tabs>
198+
144199
Apply the configuration to your cluster:
145200
146201
```shell
147202
kubectl apply -f lb-route.yaml
148203
```
149204

150-
</TabItem>
151-
152-
</Tabs>
153-
154205
## Verify
155206

156207
Expose the service port to your local machine by port forwarding:

docs/en/latest/reference/example.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -716,12 +716,12 @@ spec:
716716
match:
717717
paths:
718718
- /ip
719-
authentication:
720-
enable: true
721-
type: keyAuth
722-
backends:
723-
- serviceName: httpbin
724-
servicePort: 80
719+
authentication:
720+
enable: true
721+
type: keyAuth
722+
backends:
723+
- serviceName: httpbin
724+
servicePort: 80
725725
```
726726

727727
To enable other plugins:
@@ -745,9 +745,9 @@ spec:
745745
count: 2
746746
time_window: 10
747747
rejected_code: 429
748-
backends:
749-
- serviceName: httpbin
750-
servicePort: 80
748+
backends:
749+
- serviceName: httpbin
750+
servicePort: 80
751751
```
752752

753753
</TabItem>

go.mod

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ require (
2828
go.uber.org/multierr v1.11.0
2929
go.uber.org/zap v1.27.0
3030
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
31-
golang.org/x/net v0.28.0
31+
golang.org/x/net v0.38.0
3232
gopkg.in/yaml.v3 v3.0.1
3333
helm.sh/helm/v3 v3.15.4
3434
k8s.io/api v0.31.1
@@ -188,14 +188,14 @@ require (
188188
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
189189
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect
190190
golang.org/x/arch v0.6.0 // indirect
191-
golang.org/x/crypto v0.26.0 // indirect
191+
golang.org/x/crypto v0.36.0 // indirect
192192
golang.org/x/mod v0.20.0 // indirect
193-
golang.org/x/oauth2 v0.21.0 // indirect
194-
golang.org/x/sync v0.8.0 // indirect
195-
golang.org/x/sys v0.24.0 // indirect
196-
golang.org/x/term v0.23.0 // indirect
197-
golang.org/x/text v0.17.0 // indirect
198-
golang.org/x/time v0.5.0 // indirect
193+
golang.org/x/oauth2 v0.27.0 // indirect
194+
golang.org/x/sync v0.12.0 // indirect
195+
golang.org/x/sys v0.31.0 // indirect
196+
golang.org/x/term v0.30.0 // indirect
197+
golang.org/x/text v0.23.0 // indirect
198+
golang.org/x/time v0.8.0 // indirect
199199
golang.org/x/tools v0.24.0 // indirect
200200
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
201201
google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect

go.sum

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -582,8 +582,8 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y
582582
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
583583
golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
584584
golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
585-
golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
586-
golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
585+
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
586+
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
587587
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
588588
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
589589
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
@@ -612,20 +612,20 @@ golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su
612612
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
613613
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
614614
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
615-
golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
616-
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
615+
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
616+
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
617617
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
618-
golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs=
619-
golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
618+
golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
619+
golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
620620
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
621621
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
622622
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
623623
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
624624
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
625625
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
626626
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
627-
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
628-
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
627+
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
628+
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
629629
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
630630
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
631631
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -651,24 +651,24 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc
651651
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
652652
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
653653
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
654-
golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg=
655-
golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
654+
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
655+
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
656656
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
657657
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
658658
golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
659659
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
660660
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
661-
golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU=
662-
golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk=
661+
golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
662+
golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
663663
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
664664
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
665665
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
666666
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
667667
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
668-
golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc=
669-
golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
670-
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
671-
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
668+
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
669+
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
670+
golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg=
671+
golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
672672
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
673673
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
674674
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=

internal/adc/translator/httproute.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,6 @@ func (t *Translator) TranslateHTTPRoute(tctx *provider.TranslateContext, httpRou
481481
t.AttachBackendTrafficPolicyToUpstream(backend.BackendRef, tctx.BackendTrafficPolicies, upstream)
482482
upstream.Nodes = append(upstream.Nodes, upNodes...)
483483
}
484-
t.attachBackendTrafficPolicyToUpstream(nil, upstream)
485484

486485
// todo: support multiple backends
487486
service := adctypes.NewDefaultService()

test/e2e/crds/v1alpha1/consumer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ spec:
176176
Check: scaffold.WithExpectedStatus(503),
177177
})
178178

179-
for i := 0; i < 10; i++ {
179+
for range 10 {
180180
s.RequestAssert(&scaffold.RequestAssert{
181181
Method: "GET",
182182
Path: "/get",

test/e2e/gatewayapi/httproute.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1656,7 +1656,7 @@ spec:
16561656
hitNginxCnt = 0
16571657
hitHttpbinCnt = 0
16581658
)
1659-
for i := 0; i < 20; i++ {
1659+
for range 20 {
16601660
resp := s.NewAPISIXClient().GET("/get").
16611661
WithHeader("Host", "httpbin.example").
16621662
Expect()
@@ -1682,7 +1682,7 @@ spec:
16821682
hitNginxCnt = 0
16831683
hitHttpbinCnt = 0
16841684
)
1685-
for i := 0; i < 20; i++ {
1685+
for range 20 {
16861686
resp := s.NewAPISIXClient().GET("/get").
16871687
WithHeader("Host", "httpbin.example").
16881688
Expect()
@@ -1859,7 +1859,7 @@ spec:
18591859
upstreamHosts := make(map[string]int)
18601860
totalRequests := 20
18611861

1862-
for i := 0; i < totalRequests; i++ {
1862+
for range totalRequests {
18631863
statusCode := s.NewAPISIXClient().GET("/headers").Expect().Raw().StatusCode
18641864
Expect(statusCode).To(Or(Equal(http.StatusOK), Equal(http.StatusMovedPermanently)))
18651865

0 commit comments

Comments
 (0)