@@ -33,6 +33,7 @@ import (
33
33
"k8s.io/apimachinery/pkg/util/wait"
34
34
clientset "k8s.io/client-go/kubernetes"
35
35
"k8s.io/ingress-nginx/internal/ingress/annotations"
36
+ "k8s.io/ingress-nginx/internal/ingress/annotations/canary"
36
37
"k8s.io/ingress-nginx/internal/ingress/annotations/log"
37
38
"k8s.io/ingress-nginx/internal/ingress/annotations/parser"
38
39
"k8s.io/ingress-nginx/internal/ingress/annotations/proxy"
@@ -968,14 +969,7 @@ func (n *NGINXController) createUpstreams(data []*ingress.Ingress, du *ingress.B
968
969
// configure traffic shaping for canary
969
970
if anns .Canary .Enabled {
970
971
upstreams [defBackend ].NoServer = true
971
- upstreams [defBackend ].TrafficShapingPolicy = ingress.TrafficShapingPolicy {
972
- Weight : anns .Canary .Weight ,
973
- WeightTotal : anns .Canary .WeightTotal ,
974
- Header : anns .Canary .Header ,
975
- HeaderValue : anns .Canary .HeaderValue ,
976
- HeaderPattern : anns .Canary .HeaderPattern ,
977
- Cookie : anns .Canary .Cookie ,
978
- }
972
+ upstreams [defBackend ].TrafficShapingPolicy = newTrafficShapingPolicy (anns .Canary )
979
973
}
980
974
981
975
if len (upstreams [defBackend ].Endpoints ) == 0 {
@@ -1040,13 +1034,7 @@ func (n *NGINXController) createUpstreams(data []*ingress.Ingress, du *ingress.B
1040
1034
// configure traffic shaping for canary
1041
1035
if anns .Canary .Enabled {
1042
1036
upstreams [name ].NoServer = true
1043
- upstreams [name ].TrafficShapingPolicy = ingress.TrafficShapingPolicy {
1044
- Weight : anns .Canary .Weight ,
1045
- Header : anns .Canary .Header ,
1046
- HeaderValue : anns .Canary .HeaderValue ,
1047
- HeaderPattern : anns .Canary .HeaderPattern ,
1048
- Cookie : anns .Canary .Cookie ,
1049
- }
1037
+ upstreams [name ].TrafficShapingPolicy = newTrafficShapingPolicy (anns .Canary )
1050
1038
}
1051
1039
1052
1040
if len (upstreams [name ].Endpoints ) == 0 {
@@ -1819,3 +1807,15 @@ func (n *NGINXController) getStreamSnippets(ingresses []*ingress.Ingress) []stri
1819
1807
}
1820
1808
return snippets
1821
1809
}
1810
+
1811
+ // newTrafficShapingPolicy creates new ingress.TrafficShapingPolicy instance using canary configuration
1812
+ func newTrafficShapingPolicy (cfg canary.Config ) ingress.TrafficShapingPolicy {
1813
+ return ingress.TrafficShapingPolicy {
1814
+ Weight : cfg .Weight ,
1815
+ WeightTotal : cfg .WeightTotal ,
1816
+ Header : cfg .Header ,
1817
+ HeaderValue : cfg .HeaderValue ,
1818
+ HeaderPattern : cfg .HeaderPattern ,
1819
+ Cookie : cfg .Cookie ,
1820
+ }
1821
+ }
0 commit comments