mirror of
https://github.com/alibaba/higress.git
synced 2026-06-09 04:37:31 +08:00
feat: add more coverages to ingressController (#147)
Signed-off-by: bitliu <bitliu@tencent.com>
This commit is contained in:
1
go.mod
1
go.mod
@@ -155,7 +155,6 @@ require (
|
|||||||
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
||||||
github.com/spf13/cast v1.3.1 // indirect
|
github.com/spf13/cast v1.3.1 // indirect
|
||||||
github.com/spf13/pflag v1.0.5 // indirect
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
github.com/stretchr/objx v0.5.0 // indirect
|
|
||||||
github.com/toolkits/concurrent v0.0.0-20150624120057-a4371d70e3e3 // indirect
|
github.com/toolkits/concurrent v0.0.0-20150624120057-a4371d70e3e3 // indirect
|
||||||
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca // indirect
|
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca // indirect
|
||||||
github.com/yl2chen/cidranger v1.0.2 // indirect
|
github.com/yl2chen/cidranger v1.0.2 // indirect
|
||||||
|
|||||||
3
go.sum
3
go.sum
@@ -253,7 +253,6 @@ github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnht
|
|||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||||
github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4 h1:hzAQntlaYRkVSFEfj9OTWlVV1H155FMD8BTKktLv0QI=
|
github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4 h1:hzAQntlaYRkVSFEfj9OTWlVV1H155FMD8BTKktLv0QI=
|
||||||
github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
|
||||||
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
|
||||||
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||||
github.com/cncf/xds/go v0.0.0-20220520190051-1e77728a1eaa h1:B/lvg4tQ5hfFZd4V2hcSfFVfUvAK6GSFKxIIzwnkv8g=
|
github.com/cncf/xds/go v0.0.0-20220520190051-1e77728a1eaa h1:B/lvg4tQ5hfFZd4V2hcSfFVfUvAK6GSFKxIIzwnkv8g=
|
||||||
@@ -1259,7 +1258,6 @@ github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+
|
|||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||||
github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4=
|
|
||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
|
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
@@ -1271,7 +1269,6 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
|
|||||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
|
|
||||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
|
|||||||
@@ -348,6 +348,13 @@ func extractTLSSecretName(host string, tls []ingress.IngressTLS) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *controller) ConvertGateway(convertOptions *common.ConvertOptions, wrapper *common.WrapperConfig) error {
|
func (c *controller) ConvertGateway(convertOptions *common.ConvertOptions, wrapper *common.WrapperConfig) error {
|
||||||
|
if convertOptions == nil {
|
||||||
|
return fmt.Errorf("convertOptions is nil")
|
||||||
|
}
|
||||||
|
if wrapper == nil {
|
||||||
|
return fmt.Errorf("wrapperConfig is nil")
|
||||||
|
}
|
||||||
|
|
||||||
// Ignore canary config.
|
// Ignore canary config.
|
||||||
if wrapper.AnnotationsConfig.IsCanary() {
|
if wrapper.AnnotationsConfig.IsCanary() {
|
||||||
return nil
|
return nil
|
||||||
@@ -455,6 +462,13 @@ func (c *controller) ConvertGateway(convertOptions *common.ConvertOptions, wrapp
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *controller) ConvertHTTPRoute(convertOptions *common.ConvertOptions, wrapper *common.WrapperConfig) error {
|
func (c *controller) ConvertHTTPRoute(convertOptions *common.ConvertOptions, wrapper *common.WrapperConfig) error {
|
||||||
|
if convertOptions == nil {
|
||||||
|
return fmt.Errorf("convertOptions is nil")
|
||||||
|
}
|
||||||
|
if wrapper == nil {
|
||||||
|
return fmt.Errorf("wrapperConfig is nil")
|
||||||
|
}
|
||||||
|
|
||||||
// Canary ingress will be processed in the end.
|
// Canary ingress will be processed in the end.
|
||||||
if wrapper.AnnotationsConfig.IsCanary() {
|
if wrapper.AnnotationsConfig.IsCanary() {
|
||||||
convertOptions.CanaryIngresses = append(convertOptions.CanaryIngresses, wrapper)
|
convertOptions.CanaryIngresses = append(convertOptions.CanaryIngresses, wrapper)
|
||||||
@@ -618,6 +632,13 @@ func (c *controller) ConvertHTTPRoute(convertOptions *common.ConvertOptions, wra
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *controller) ApplyDefaultBackend(convertOptions *common.ConvertOptions, wrapper *common.WrapperConfig) error {
|
func (c *controller) ApplyDefaultBackend(convertOptions *common.ConvertOptions, wrapper *common.WrapperConfig) error {
|
||||||
|
if convertOptions == nil {
|
||||||
|
return fmt.Errorf("convertOptions is nil")
|
||||||
|
}
|
||||||
|
if wrapper == nil {
|
||||||
|
return fmt.Errorf("wrapperConfig is nil")
|
||||||
|
}
|
||||||
|
|
||||||
if wrapper.AnnotationsConfig.IsCanary() {
|
if wrapper.AnnotationsConfig.IsCanary() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -688,6 +709,13 @@ func (c *controller) ApplyDefaultBackend(convertOptions *common.ConvertOptions,
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *controller) ApplyCanaryIngress(convertOptions *common.ConvertOptions, wrapper *common.WrapperConfig) error {
|
func (c *controller) ApplyCanaryIngress(convertOptions *common.ConvertOptions, wrapper *common.WrapperConfig) error {
|
||||||
|
if convertOptions == nil {
|
||||||
|
return fmt.Errorf("convertOptions is nil")
|
||||||
|
}
|
||||||
|
if wrapper == nil {
|
||||||
|
return fmt.Errorf("wrapperConfig is nil")
|
||||||
|
}
|
||||||
|
|
||||||
byHeader, byWeight := wrapper.AnnotationsConfig.CanaryKind()
|
byHeader, byWeight := wrapper.AnnotationsConfig.CanaryKind()
|
||||||
|
|
||||||
cfg := wrapper.Config
|
cfg := wrapper.Config
|
||||||
@@ -820,6 +848,13 @@ func (c *controller) ApplyCanaryIngress(convertOptions *common.ConvertOptions, w
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *controller) ConvertTrafficPolicy(convertOptions *common.ConvertOptions, wrapper *common.WrapperConfig) error {
|
func (c *controller) ConvertTrafficPolicy(convertOptions *common.ConvertOptions, wrapper *common.WrapperConfig) error {
|
||||||
|
if convertOptions == nil {
|
||||||
|
return fmt.Errorf("convertOptions is nil")
|
||||||
|
}
|
||||||
|
if wrapper == nil {
|
||||||
|
return fmt.Errorf("wrapperConfig is nil")
|
||||||
|
}
|
||||||
|
|
||||||
if !wrapper.AnnotationsConfig.NeedTrafficPolicy() {
|
if !wrapper.AnnotationsConfig.NeedTrafficPolicy() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -941,6 +976,10 @@ func (c *controller) createDefaultRoute(wrapper *common.WrapperConfig, backend *
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *controller) createServiceKey(service *ingress.IngressBackend, namespace string) (common.ServiceKey, error) {
|
func (c *controller) createServiceKey(service *ingress.IngressBackend, namespace string) (common.ServiceKey, error) {
|
||||||
|
if service == nil {
|
||||||
|
return common.ServiceKey{}, fmt.Errorf("ingressBackend is nil")
|
||||||
|
}
|
||||||
|
|
||||||
serviceKey := common.ServiceKey{}
|
serviceKey := common.ServiceKey{}
|
||||||
if service.ServiceName == "" {
|
if service.ServiceName == "" {
|
||||||
return serviceKey, errors.New("service name is empty")
|
return serviceKey, errors.New("service name is empty")
|
||||||
@@ -965,7 +1004,7 @@ func (c *controller) createServiceKey(service *ingress.IngressBackend, namespace
|
|||||||
}
|
}
|
||||||
|
|
||||||
func isCanaryRoute(canary, route *common.WrapperHTTPRoute) bool {
|
func isCanaryRoute(canary, route *common.WrapperHTTPRoute) bool {
|
||||||
return !route.WrapperConfig.AnnotationsConfig.IsCanary() && canary.OriginPath == route.OriginPath &&
|
return route != nil && canary != nil && !route.WrapperConfig.AnnotationsConfig.IsCanary() && canary.OriginPath == route.OriginPath &&
|
||||||
canary.OriginPathType == route.OriginPathType
|
canary.OriginPathType == route.OriginPathType
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1016,6 +1055,10 @@ func (c *controller) backendToRouteDestination(backend *ingress.IngressBackend,
|
|||||||
}
|
}
|
||||||
|
|
||||||
func resolveNamedPort(backend *ingress.IngressBackend, namespace string, serviceLister listerv1.ServiceLister) (int32, error) {
|
func resolveNamedPort(backend *ingress.IngressBackend, namespace string, serviceLister listerv1.ServiceLister) (int32, error) {
|
||||||
|
if backend == nil {
|
||||||
|
return 0, fmt.Errorf("ingressBackend is nil")
|
||||||
|
}
|
||||||
|
|
||||||
svc, err := serviceLister.Services(namespace).Get(backend.ServiceName)
|
svc, err := serviceLister.Services(namespace).Get(backend.ServiceName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
@@ -1132,6 +1175,10 @@ func (c *controller) shouldProcessIngressUpdate(ing *ingress.Ingress) (bool, err
|
|||||||
|
|
||||||
// setDefaultMSEIngressOptionalField sets a default value for optional fields when is not defined.
|
// setDefaultMSEIngressOptionalField sets a default value for optional fields when is not defined.
|
||||||
func setDefaultMSEIngressOptionalField(ing *ingress.Ingress) {
|
func setDefaultMSEIngressOptionalField(ing *ingress.Ingress) {
|
||||||
|
if ing == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
for idx, tls := range ing.Spec.TLS {
|
for idx, tls := range ing.Spec.TLS {
|
||||||
if len(tls.Hosts) == 0 {
|
if len(tls.Hosts) == 0 {
|
||||||
ing.Spec.TLS[idx].Hosts = []string{common.DefaultHost}
|
ing.Spec.TLS[idx].Hosts = []string{common.DefaultHost}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user