@@ -177,7 +177,7 @@ func (t *Translator) buildRoute(ar *apiv2.ApisixRoute, service *adc.Service, rul
177177 route .ID = id .GenID (route .Name )
178178 route .Desc = "Created by apisix-ingress-controller, DO NOT modify it manually"
179179 route .Labels = label .GenLabel (ar )
180- route .EnableWebsocket = ptr .To (true )
180+ route .EnableWebsocket = ptr .To (rule . Websocket )
181181 route .FilterFunc = rule .Match .FilterFunc
182182 route .Hosts = rule .Match .Hosts
183183 route .Methods = rule .Match .Methods
@@ -198,10 +198,10 @@ func (t *Translator) buildUpstream(tctx *provider.TranslateContext, service *adc
198198 var (
199199 upstreams = make ([]* adc.Upstream , 0 )
200200 weightedUpstreams = make ([]adc.TrafficSplitConfigRuleWeightedUpstream , 0 )
201- backendErr error
202201 )
203202
204203 for _ , backend := range rule .Backends {
204+ var backendErr error
205205 upstream := adc .NewDefaultUpstream ()
206206 // try to get the apisixupstream with the same name as the backend service to be upstream config.
207207 // err is ignored because it does not care about the externalNodes of the apisixupstream.
@@ -223,7 +223,9 @@ func (t *Translator) buildUpstream(tctx *provider.TranslateContext, service *adc
223223 continue
224224 }
225225 }
226-
226+ if backend .Weight != nil {
227+ upstream .Labels ["meta_weight" ] = strconv .FormatInt (int64 (* backend .Weight ), 10 )
228+ }
227229 upstreams = append (upstreams , upstream )
228230 }
229231
@@ -250,7 +252,7 @@ func (t *Translator) buildUpstream(tctx *provider.TranslateContext, service *adc
250252 }
251253
252254 // no valid upstream
253- if backendErr != nil || len (upstreams ) == 0 || len (upstreams [0 ].Nodes ) == 0 {
255+ if len (upstreams ) == 0 || len (upstreams [0 ].Nodes ) == 0 {
254256 return
255257 }
256258
0 commit comments