mirror of
https://github.com/alibaba/higress.git
synced 2026-06-09 04:37:31 +08:00
Sync inner fix (#634)
This commit is contained in:
@@ -716,7 +716,7 @@ func (c *controller) ApplyDefaultBackend(convertOptions *common.ConvertOptions,
|
||||
}
|
||||
|
||||
func (c *controller) ApplyCanaryIngress(convertOptions *common.ConvertOptions, wrapper *common.WrapperConfig) error {
|
||||
byHeader, byWeight := wrapper.AnnotationsConfig.CanaryKind()
|
||||
byHeader, _ := wrapper.AnnotationsConfig.CanaryKind()
|
||||
|
||||
cfg := wrapper.Config
|
||||
ingressV1, ok := cfg.Spec.(ingress.IngressSpec)
|
||||
@@ -769,8 +769,6 @@ func (c *controller) ApplyCanaryIngress(convertOptions *common.ConvertOptions, w
|
||||
}
|
||||
canary.OriginPath = originPath
|
||||
canary.OriginPathType = pathType
|
||||
canary.HTTPRoute.Match = c.generateHttpMatches(pathType, httpPath.Path, nil)
|
||||
canary.HTTPRoute.Name = common.GenerateUniqueRouteName(c.options.SystemNamespace, canary)
|
||||
|
||||
ingressRouteBuilder := convertOptions.IngressRouteCache.New(canary)
|
||||
// backend service check
|
||||
@@ -785,39 +783,37 @@ func (c *controller) ApplyCanaryIngress(convertOptions *common.ConvertOptions, w
|
||||
}
|
||||
canary.RuleKey = createRuleKey(canary.WrapperConfig.Config.Annotations, canary.PathFormat())
|
||||
|
||||
canaryConfig := wrapper.AnnotationsConfig.Canary
|
||||
if byWeight {
|
||||
canary.HTTPRoute.Route[0].Weight = int32(canaryConfig.Weight)
|
||||
}
|
||||
|
||||
// find the base ingress
|
||||
pos := 0
|
||||
var targetRoute *common.WrapperHTTPRoute
|
||||
for _, route := range routes {
|
||||
if isCanaryRoute(canary, route) {
|
||||
targetRoute = route
|
||||
// Header, Cookie
|
||||
if byHeader {
|
||||
IngressLog.Debug("Insert canary route by header")
|
||||
annotations.ApplyByHeader(canary.HTTPRoute, route.HTTPRoute, canary.WrapperConfig.AnnotationsConfig)
|
||||
canary.HTTPRoute.Name = common.GenerateUniqueRouteName(c.options.SystemNamespace, canary)
|
||||
} else {
|
||||
IngressLog.Debug("Merge canary route by weight")
|
||||
if route.WeightTotal == 0 {
|
||||
route.WeightTotal = int32(canaryConfig.WeightTotal)
|
||||
}
|
||||
annotations.ApplyByWeight(canary.HTTPRoute, route.HTTPRoute, canary.WrapperConfig.AnnotationsConfig)
|
||||
}
|
||||
|
||||
break
|
||||
}
|
||||
pos += 1
|
||||
}
|
||||
|
||||
IngressLog.Debugf("Canary route is %v", canary)
|
||||
if targetRoute == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
canaryConfig := wrapper.AnnotationsConfig.Canary
|
||||
|
||||
// Header, Cookie
|
||||
if byHeader {
|
||||
IngressLog.Debug("Insert canary route by header")
|
||||
annotations.ApplyByHeader(canary.HTTPRoute, targetRoute.HTTPRoute, canary.WrapperConfig.AnnotationsConfig)
|
||||
canary.HTTPRoute.Name = common.GenerateUniqueRouteName(c.options.SystemNamespace, canary)
|
||||
} else {
|
||||
IngressLog.Debug("Merge canary route by weight")
|
||||
if targetRoute.WeightTotal == 0 {
|
||||
targetRoute.WeightTotal = int32(canaryConfig.WeightTotal)
|
||||
}
|
||||
annotations.ApplyByWeight(canary.HTTPRoute, targetRoute.HTTPRoute, canary.WrapperConfig.AnnotationsConfig)
|
||||
}
|
||||
IngressLog.Debugf("Canary route is %v", canary)
|
||||
|
||||
if byHeader {
|
||||
// Inherit policy from normal route
|
||||
canary.WrapperConfig.AnnotationsConfig.Auth = targetRoute.WrapperConfig.AnnotationsConfig.Auth
|
||||
|
||||
Reference in New Issue
Block a user