This is an automated email from the ASF dual-hosted git repository.

zhangjintao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git


The following commit(s) were added to refs/heads/master by this push:
     new 3fa789df chore: remove support for Ingress in the extensions/v1beta1 
API version (#1840)
3fa789df is described below

commit 3fa789df1fdf996b7dcac806633b076432581ce4
Author: Jintao Zhang <[email protected]>
AuthorDate: Thu Aug 3 09:27:40 2023 +0800

    chore: remove support for Ingress in the extensions/v1beta1 API version 
(#1840)
    
    Signed-off-by: Jintao Zhang <[email protected]>
---
 cmd/ingress/ingress.go                             |   7 -
 pkg/config/config.go                               |   2 +-
 pkg/kube/ingress.go                                |  65 ++-------
 pkg/providers/controller.go                        |  15 +-
 pkg/providers/ingress/ingress.go                   |  45 +-----
 pkg/providers/ingress/ingress_test.go              |  40 ------
 pkg/providers/ingress/translation/translator.go    | 151 --------------------
 pkg/providers/utils/ingress_status.go              |  43 ------
 pkg/providers/utils/ingress_status_test.go         |  72 ----------
 test/e2e/suite-annotations/authorization.go        |  92 -------------
 test/e2e/suite-annotations/cors.go                 |  85 ------------
 test/e2e/suite-annotations/csrf.go                 |  54 --------
 test/e2e/suite-annotations/forward_auth.go         |  43 +-----
 test/e2e/suite-annotations/http_method.go          |  70 ----------
 test/e2e/suite-annotations/iprestriction.go        |  58 --------
 test/e2e/suite-annotations/plugin_conifg.go        |  29 ----
 test/e2e/suite-annotations/redirect.go             |  95 -------------
 test/e2e/suite-annotations/response_rewrite.go     |  99 --------------
 test/e2e/suite-annotations/rewrite.go              |  59 --------
 test/e2e/suite-annotations/svc_namespace.go        |  78 -----------
 test/e2e/suite-annotations/upstreamprotocol.go     |  33 -----
 test/e2e/suite-annotations/websocket.go            |  84 ------------
 test/e2e/suite-chore/consistency.go                |  54 --------
 .../suite-ingress-resource/ingress.go              | 152 +--------------------
 24 files changed, 22 insertions(+), 1503 deletions(-)

diff --git a/cmd/ingress/ingress.go b/cmd/ingress/ingress.go
index 638a4ddd..03666b9d 100644
--- a/cmd/ingress/ingress.go
+++ b/cmd/ingress/ingress.go
@@ -80,13 +80,6 @@ For Kubernetes cluster version older than v1.19.0, you 
should always set the --i
       --kubeconfig /path/to/kubeconfig \
       --ingress-version networking/v1beta1
 
-If your Kubernetes cluster version is prior to v1.14+, only 
ingress.extensions/v1beta1 can be used.
-
-    apisix-ingress-controller ingress \
-      --default-apisix-cluster-base-url 
http://apisix-service:9180/apisix/admin \
-      --kubeconfig /path/to/kubeconfig \
-      --ingress-version extensions/v1beta1
-
 If you run apisix-ingress-controller outside the Kubernetes cluster, 
--kubeconfig option (or kubeconfig item in configuration file) should be 
specified explicitly,
 or if you run it inside cluster, leave it alone and in-cluster configuration 
will be discovered and used.
 
diff --git a/pkg/config/config.go b/pkg/config/config.go
index 0b31f87f..c164affa 100644
--- a/pkg/config/config.go
+++ b/pkg/config/config.go
@@ -207,7 +207,7 @@ func (cfg *Config) Validate() error {
                return errors.New("apisix base url is required")
        }
        switch cfg.Kubernetes.IngressVersion {
-       case IngressNetworkingV1, IngressNetworkingV1beta1, 
IngressExtensionsV1beta1:
+       case IngressNetworkingV1, IngressNetworkingV1beta1:
                break
        default:
                return errors.New("unsupported ingress version")
diff --git a/pkg/kube/ingress.go b/pkg/kube/ingress.go
index 84b7ba31..91e2e11d 100644
--- a/pkg/kube/ingress.go
+++ b/pkg/kube/ingress.go
@@ -17,11 +17,9 @@ package kube
 import (
        "errors"
 
-       extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
        networkingv1 "k8s.io/api/networking/v1"
        networkingv1beta1 "k8s.io/api/networking/v1beta1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-       listersextensionsv1beta1 "k8s.io/client-go/listers/extensions/v1beta1"
        listersnetworkingv1 "k8s.io/client-go/listers/networking/v1"
        listersnetworkingv1beta1 "k8s.io/client-go/listers/networking/v1beta1"
 )
@@ -31,8 +29,6 @@ const (
        IngressV1 = "networking/v1"
        // IngressV1beta1 represents the Ingress in networking/v1beta1 group 
version.
        IngressV1beta1 = "networking/v1beta1"
-       // IngressExtensionsV1beta1 represents the Ingress in 
extensions/v1beta1 group version.
-       IngressExtensionsV1beta1 = "extensions/v1beta1"
 )
 
 // IngressLister is an encapsulation for the lister of Kubernetes
@@ -42,8 +38,6 @@ type IngressLister interface {
        V1(string, string) (Ingress, error)
        // V1beta1 gets the ingress in networking/v1beta1.
        V1beta1(string, string) (Ingress, error)
-       // ExtensionsV1beta1 gets the ingress in extensions/v1beta1.
-       ExtensionsV1beta1(string, string) (Ingress, error)
 }
 
 // IngressInformer is an encapsulation for the informer of Kubernetes
@@ -64,9 +58,6 @@ type Ingress interface {
        // V1beta1 returns the ingress in networking/v1beta1, the real
        // ingress must be in networking/v1beta1, or V1beta1() will panic.
        V1beta1() *networkingv1beta1.Ingress
-       // ExtensionsV1beta1 returns the ingress in extensions/v1beta1, the real
-       // ingress must be in extensions/v1beta1, or ExtensionsV1beta1() will 
panic.
-       ExtensionsV1beta1() *extensionsv1beta1.Ingress
        // ResourceVersion returns the the resource version field inside
        // the real Ingress.
        ResourceVersion() string
@@ -83,10 +74,9 @@ type IngressEvent struct {
 }
 
 type ingress struct {
-       groupVersion      string
-       v1                *networkingv1.Ingress
-       v1beta1           *networkingv1beta1.Ingress
-       extensionsV1beta1 *extensionsv1beta1.Ingress
+       groupVersion string
+       v1           *networkingv1.Ingress
+       v1beta1      *networkingv1beta1.Ingress
        metav1.Object
 }
 
@@ -104,31 +94,20 @@ func (ing *ingress) V1beta1() *networkingv1beta1.Ingress {
        return ing.v1beta1
 }
 
-func (ing *ingress) ExtensionsV1beta1() *extensionsv1beta1.Ingress {
-       if ing.groupVersion != IngressExtensionsV1beta1 {
-               panic("not a extensions/v1beta1 ingress")
-       }
-       return ing.extensionsV1beta1
-}
-
 func (ing *ingress) GroupVersion() string {
        return ing.groupVersion
 }
 
 func (ing *ingress) ResourceVersion() string {
-       if ing.GroupVersion() == IngressV1 {
-               return ing.V1().ResourceVersion
-       }
        if ing.GroupVersion() == IngressV1beta1 {
                return ing.V1beta1().ResourceVersion
        }
-       return ing.ExtensionsV1beta1().ResourceVersion
+       return ing.V1().ResourceVersion
 }
 
 type ingressLister struct {
-       v1Lister                listersnetworkingv1.IngressLister
-       v1beta1Lister           listersnetworkingv1beta1.IngressLister
-       extensionsV1beta1Lister listersextensionsv1beta1.IngressLister
+       v1Lister      listersnetworkingv1.IngressLister
+       v1beta1Lister listersnetworkingv1beta1.IngressLister
 }
 
 func (l *ingressLister) V1(namespace, name string) (Ingress, error) {
@@ -155,18 +134,6 @@ func (l *ingressLister) V1beta1(namespace, name string) 
(Ingress, error) {
        }, nil
 }
 
-func (l *ingressLister) ExtensionsV1beta1(namespace, name string) (Ingress, 
error) {
-       ing, err := l.extensionsV1beta1Lister.Ingresses(namespace).Get(name)
-       if err != nil {
-               return nil, err
-       }
-       return &ingress{
-               groupVersion:      IngressExtensionsV1beta1,
-               extensionsV1beta1: ing,
-               Object:            ing,
-       }, nil
-}
-
 // MustNewIngress creates a kube.Ingress object according to the
 // type of obj.
 func MustNewIngress(obj interface{}) Ingress {
@@ -183,12 +150,6 @@ func MustNewIngress(obj interface{}) Ingress {
                        v1beta1:      ing,
                        Object:       ing,
                }
-       case *extensionsv1beta1.Ingress:
-               return &ingress{
-                       groupVersion:      IngressExtensionsV1beta1,
-                       extensionsV1beta1: ing,
-                       Object:            ing,
-               }
        default:
                panic("invalid ingress type")
        }
@@ -211,23 +172,15 @@ func NewIngress(obj interface{}) (Ingress, error) {
                        v1beta1:      ing,
                        Object:       ing,
                }, nil
-       case *extensionsv1beta1.Ingress:
-               return &ingress{
-                       groupVersion:      IngressExtensionsV1beta1,
-                       extensionsV1beta1: ing,
-                       Object:            ing,
-               }, nil
        default:
                return nil, errors.New("invalid ingress type")
        }
 }
 
 // NewIngressLister creates an version-neutral Ingress lister.
-func NewIngressLister(v1 listersnetworkingv1.IngressLister, v1beta1 
listersnetworkingv1beta1.IngressLister,
-       extensionsv1beta1 listersextensionsv1beta1.IngressLister) IngressLister 
{
+func NewIngressLister(v1 listersnetworkingv1.IngressLister, v1beta1 
listersnetworkingv1beta1.IngressLister) IngressLister {
        return &ingressLister{
-               v1Lister:                v1,
-               v1beta1Lister:           v1beta1,
-               extensionsV1beta1Lister: extensionsv1beta1,
+               v1Lister:      v1,
+               v1beta1Lister: v1beta1,
        }
 }
diff --git a/pkg/providers/controller.go b/pkg/providers/controller.go
index fc1f97c5..63ee65a4 100644
--- a/pkg/providers/controller.go
+++ b/pkg/providers/controller.go
@@ -27,7 +27,6 @@ import (
        utilruntime "k8s.io/apimachinery/pkg/util/runtime"
        "k8s.io/client-go/kubernetes/scheme"
        typedcorev1 "k8s.io/client-go/kubernetes/typed/core/v1"
-       extensionsv1beta1 "k8s.io/client-go/listers/extensions/v1beta1"
        networkingv1 "k8s.io/client-go/listers/networking/v1"
        networkingv1beta1 "k8s.io/client-go/listers/networking/v1beta1"
        "k8s.io/client-go/tools/cache"
@@ -225,9 +224,8 @@ func (c *Controller) initSharedInformers() 
*providertypes.ListerInformer {
        var (
                ingressInformer cache.SharedIndexInformer
 
-               ingressListerV1                networkingv1.IngressLister
-               ingressListerV1beta1           networkingv1beta1.IngressLister
-               ingressListerExtensionsV1beta1 extensionsv1beta1.IngressLister
+               ingressListerV1      networkingv1.IngressLister
+               ingressListerV1beta1 networkingv1beta1.IngressLister
        )
 
        var (
@@ -292,18 +290,15 @@ func (c *Controller) initSharedInformers() 
*providertypes.ListerInformer {
        configmapLister := kubeFactory.Core().V1().ConfigMaps().Lister()
 
        switch c.cfg.Kubernetes.IngressVersion {
-       case config.IngressNetworkingV1:
-               ingressInformer = 
kubeFactory.Networking().V1().Ingresses().Informer()
-               ingressListerV1 = 
kubeFactory.Networking().V1().Ingresses().Lister()
        case config.IngressNetworkingV1beta1:
                ingressInformer = 
kubeFactory.Networking().V1beta1().Ingresses().Informer()
                ingressListerV1beta1 = 
kubeFactory.Networking().V1beta1().Ingresses().Lister()
        default:
-               ingressInformer = 
kubeFactory.Extensions().V1beta1().Ingresses().Informer()
-               ingressListerExtensionsV1beta1 = 
kubeFactory.Extensions().V1beta1().Ingresses().Lister()
+               ingressInformer = 
kubeFactory.Networking().V1().Ingresses().Informer()
+               ingressListerV1 = 
kubeFactory.Networking().V1().Ingresses().Lister()
        }
 
-       ingressLister := kube.NewIngressLister(ingressListerV1, 
ingressListerV1beta1, ingressListerExtensionsV1beta1)
+       ingressLister := kube.NewIngressLister(ingressListerV1, 
ingressListerV1beta1)
 
        listerInformer := &providertypes.ListerInformer{
                ApisixFactory: apisixFactory,
diff --git a/pkg/providers/ingress/ingress.go b/pkg/providers/ingress/ingress.go
index 49bb1d17..d89ec3c8 100644
--- a/pkg/providers/ingress/ingress.go
+++ b/pkg/providers/ingress/ingress.go
@@ -25,7 +25,6 @@ import (
        "go.uber.org/zap"
        "gopkg.in/go-playground/pool.v3"
        corev1 "k8s.io/api/core/v1"
-       extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
        networkingv1 "k8s.io/api/networking/v1"
        networkingv1beta1 "k8s.io/api/networking/v1beta1"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
@@ -122,11 +121,9 @@ func (c *ingressController) sync(ctx context.Context, ev 
*types.Event) error {
                ing, err = c.IngressLister.V1(namespace, name)
        case kube.IngressV1beta1:
                ing, err = c.IngressLister.V1beta1(namespace, name)
-       case kube.IngressExtensionsV1beta1:
-               ing, err = c.IngressLister.ExtensionsV1beta1(namespace, name)
        default:
-               err = fmt.Errorf("unsupported group version %s, one of 
(%s/%s/%s) is expected", ingEv.GroupVersion,
-                       kube.IngressV1, kube.IngressV1beta1, 
kube.IngressExtensionsV1beta1)
+               err = fmt.Errorf("unsupported group version %s, one of (%s/%s) 
is expected", ingEv.GroupVersion,
+                       kube.IngressV1, kube.IngressV1beta1)
        }
 
        if err != nil {
@@ -163,10 +160,6 @@ func (c *ingressController) sync(ctx context.Context, ev 
*types.Event) error {
                for _, tls := range ing.V1beta1().Spec.TLS {
                        secrets = append(secrets, tls.SecretName)
                }
-       case kube.IngressExtensionsV1beta1:
-               for _, tls := range ing.ExtensionsV1beta1().Spec.TLS {
-                       secrets = append(secrets, tls.SecretName)
-               }
        }
 
        for _, secret := range secrets {
@@ -283,8 +276,6 @@ func (c *ingressController) UpdateStatus(obj kube.Ingress) {
                ing, err = c.IngressLister.V1(namespace, name)
        case kube.IngressV1beta1:
                ing, err = c.IngressLister.V1beta1(namespace, name)
-       case kube.IngressExtensionsV1beta1:
-               ing, err = c.IngressLister.ExtensionsV1beta1(namespace, name)
        }
        if err != nil {
                if !k8serrors.IsNotFound(err) {
@@ -304,8 +295,6 @@ func (c *ingressController) UpdateStatus(obj kube.Ingress) {
                c.recordStatus(obj.V1())
        case kube.IngressV1beta1:
                c.recordStatus(obj.V1beta1())
-       case kube.IngressExtensionsV1beta1:
-               c.recordStatus(obj.ExtensionsV1beta1())
        }
 }
 
@@ -362,11 +351,6 @@ func (c *ingressController) onUpdate(oldObj, newObj 
interface{}) {
                                !reflect.DeepEqual(prev.V1beta1().Status, 
curr.V1beta1().Status) {
                                return
                        }
-               case kube.IngressExtensionsV1beta1:
-                       if reflect.DeepEqual(prev.ExtensionsV1beta1().Spec, 
curr.ExtensionsV1beta1().Spec) &&
-                               
!reflect.DeepEqual(prev.ExtensionsV1beta1().Status, 
curr.ExtensionsV1beta1().Status) {
-                               return
-                       }
                }
        }
 
@@ -457,10 +441,8 @@ func (c *ingressController) isIngressEffective(ing 
kube.Ingress) bool {
        } else if ing.GroupVersion() == kube.IngressV1beta1 {
                ic = ing.V1beta1().Spec.IngressClassName
                ica = ing.V1beta1().GetAnnotations()[_ingressKey]
-       } else {
-               ic = ing.ExtensionsV1beta1().Spec.IngressClassName
-               ica = ing.ExtensionsV1beta1().GetAnnotations()[_ingressKey]
        }
+
        if configIngressClass == config.IngressClassApisixAndAll {
                configIngressClass = config.IngressClass
        }
@@ -554,27 +536,6 @@ func (c *ingressController) recordStatus(at 
runtime.Object) {
                                )
                        }
                }
-       case *extensionsv1beta1.Ingress:
-               // set to status
-               lbips, err := c.ingressLBStatusIPs()
-               if err != nil {
-                       log.Errorw("failed to get APISIX gateway external IPs",
-                               zap.Error(err),
-                       )
-
-               }
-
-               ingressLB := utils.CoreV1ToExtensionsV1beta1LB(lbips)
-               if 
!utils.CompareExtensionsV1beta1LBEqual(v.Status.LoadBalancer.Ingress, 
ingressLB) {
-                       v.Status.LoadBalancer.Ingress = ingressLB
-                       if _, errRecord := 
client.ExtensionsV1beta1().Ingresses(v.Namespace).UpdateStatus(context.TODO(), 
v, metav1.UpdateOptions{}); errRecord != nil {
-                               log.Errorw("failed to record status change for 
IngressExtensionsv1beta1",
-                                       zap.Error(errRecord),
-                                       zap.String("name", v.Name),
-                                       zap.String("namespace", v.Namespace),
-                               )
-                       }
-               }
        default:
                // This should not be executed
                log.Errorf("unsupported resource record: %s", v)
diff --git a/pkg/providers/ingress/ingress_test.go 
b/pkg/providers/ingress/ingress_test.go
index 2f8bb98f..06be9bda 100644
--- a/pkg/providers/ingress/ingress_test.go
+++ b/pkg/providers/ingress/ingress_test.go
@@ -18,7 +18,6 @@ import (
        "testing"
 
        "github.com/stretchr/testify/assert"
-       extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
        networkingv1 "k8s.io/api/networking/v1"
        networkingv1beta1 "k8s.io/api/networking/v1beta1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -132,43 +131,4 @@ func TestIsIngressEffective(t *testing.T) {
        assert.Nil(t, err)
        // Spec.IngressClassName takes the precedence.
        assert.Equal(t, false, c.isIngressEffective(ing))
-
-       ingExtV1beta1 := &extensionsv1beta1.Ingress{
-               TypeMeta: metav1.TypeMeta{
-                       Kind:       "ingress",
-                       APIVersion: "extensions/v1beta1",
-               },
-               ObjectMeta: metav1.ObjectMeta{
-                       Namespace: "default",
-                       Name:      "v1extbeta1-ing",
-                       Annotations: map[string]string{
-                               _ingressKey: "apisix",
-                       },
-               },
-               Spec: extensionsv1beta1.IngressSpec{
-                       IngressClassName: &cn,
-               },
-       }
-       ing, err = kube.NewIngress(ingExtV1beta1)
-       assert.Nil(t, err)
-       // Annotations takes precedence.
-       assert.Equal(t, true, c.isIngressEffective(ing))
-
-       ingExtV1beta1 = &extensionsv1beta1.Ingress{
-               TypeMeta: metav1.TypeMeta{
-                       Kind:       "ingress",
-                       APIVersion: "extensions/v1beta1",
-               },
-               ObjectMeta: metav1.ObjectMeta{
-                       Namespace: "default",
-                       Name:      "v1extbeta1-ing",
-               },
-               Spec: extensionsv1beta1.IngressSpec{
-                       IngressClassName: &cn,
-               },
-       }
-       ing, err = kube.NewIngress(ingExtV1beta1)
-       assert.Nil(t, err)
-       // Spec.IngressClassName takes the precedence.
-       assert.Equal(t, false, c.isIngressEffective(ing))
 }
diff --git a/pkg/providers/ingress/translation/translator.go 
b/pkg/providers/ingress/translation/translator.go
index 92545a46..3b0a87f2 100644
--- a/pkg/providers/ingress/translation/translator.go
+++ b/pkg/providers/ingress/translation/translator.go
@@ -23,7 +23,6 @@ import (
        "strings"
 
        "go.uber.org/zap"
-       extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
        networkingv1 "k8s.io/api/networking/v1"
        networkingv1beta1 "k8s.io/api/networking/v1beta1"
        k8serrors "k8s.io/apimachinery/pkg/api/errors"
@@ -116,8 +115,6 @@ func (t *translator) TranslateIngress(ing kube.Ingress, 
args ...bool) (*translat
                return t.translateIngressV1(ing.V1(), skipVerify)
        case kube.IngressV1beta1:
                return t.translateIngressV1beta1(ing.V1beta1(), skipVerify)
-       case kube.IngressExtensionsV1beta1:
-               return 
t.translateIngressExtensionsV1beta1(ing.ExtensionsV1beta1(), skipVerify)
        default:
                return nil, fmt.Errorf("translator: source group version not 
supported: %s", ing.GroupVersion())
        }
@@ -129,8 +126,6 @@ func (t *translator) TranslateIngressDeleteEvent(ing 
kube.Ingress, args ...bool)
                return t.translateOldIngressV1(ing.V1())
        case kube.IngressV1beta1:
                return t.translateOldIngressV1beta1(ing.V1beta1())
-       case kube.IngressExtensionsV1beta1:
-               return 
t.translateOldIngressExtensionsv1beta1(ing.ExtensionsV1beta1())
        default:
                return nil, fmt.Errorf("translator: source group version not 
supported: %s", ing.GroupVersion())
        }
@@ -407,113 +402,6 @@ func (t *translator) 
translateUpstreamFromIngressV1(namespace string, backend *n
        return ups, nil
 }
 
-func (t *translator) translateIngressExtensionsV1beta1(ing 
*extensionsv1beta1.Ingress, skipVerify bool) (*translation.TranslateContext, 
error) {
-       ctx := translation.DefaultEmptyTranslateContext()
-       ingress := t.TranslateAnnotations(ing.Annotations)
-
-       // add https
-       for _, tls := range ing.Spec.TLS {
-               ssl, err := t.TranslateIngressTLS(ing.Namespace, ing.Name, 
tls.SecretName, tls.Hosts)
-               if err != nil {
-                       log.Errorw("failed to translate ingress tls to apisix 
tls",
-                               zap.Error(err),
-                               zap.Any("ingress", ing),
-                       )
-                       return nil, err
-               }
-               ctx.AddSSL(ssl)
-       }
-       ns := ing.Namespace
-       if ingress.ServiceNamespace != "" {
-               ns = ingress.ServiceNamespace
-       }
-       for _, rule := range ing.Spec.Rules {
-               for _, pathRule := range rule.HTTP.Paths {
-                       var (
-                               ups *apisixv1.Upstream
-                               err error
-                       )
-                       if pathRule.Backend.ServiceName != "" {
-                               // Structure here is same to 
ingress.extensions/v1beta1, so just use this method.
-                               if skipVerify {
-                                       ups = 
t.translateDefaultUpstreamFromIngressV1beta1(ns, pathRule.Backend.ServiceName, 
pathRule.Backend.ServicePort)
-                               } else {
-                                       ups, err = 
t.translateUpstreamFromIngressV1beta1(ns, pathRule.Backend.ServiceName, 
pathRule.Backend.ServicePort)
-                                       if err != nil {
-                                               log.Errorw("failed to translate 
ingress backend to upstream",
-                                                       zap.Error(err),
-                                                       zap.Any("ingress", ing),
-                                               )
-                                               return nil, err
-                                       }
-                               }
-                               if ingress.UpstreamScheme != "" {
-                                       ups.Scheme = ingress.UpstreamScheme
-                               }
-                               ctx.AddUpstream(ups)
-                       }
-                       uris := []string{pathRule.Path}
-                       var nginxVars []kubev2.ApisixRouteHTTPMatchExpr
-                       if pathRule.PathType != nil {
-                               if *pathRule.PathType == 
extensionsv1beta1.PathTypePrefix {
-                                       // As per the specification of Ingress 
path matching rule:
-                                       // if the last element of the path is a 
substring of the
-                                       // last element in request path, it is 
not a match, e.g. /foo/bar
-                                       // matches /foo/bar/baz, but does not 
match /foo/barbaz.
-                                       // While in APISIX, /foo/bar matches 
both /foo/bar/baz and
-                                       // /foo/barbaz.
-                                       // In order to be conformant with 
Ingress specification, here
-                                       // we create two paths here, the first 
is the path itself
-                                       // (exact match), the other is path + 
"/*" (prefix match).
-                                       prefix := pathRule.Path
-                                       if strings.HasSuffix(prefix, "/") {
-                                               prefix += "*"
-                                       } else {
-                                               prefix += "/*"
-                                       }
-                                       uris = append(uris, prefix)
-                               } else if *pathRule.PathType == 
extensionsv1beta1.PathTypeImplementationSpecific && ingress.UseRegex {
-                                       nginxVars = append(nginxVars, 
kubev2.ApisixRouteHTTPMatchExpr{
-                                               Subject: 
kubev2.ApisixRouteHTTPMatchExprSubject{
-                                                       Scope: 
apisixconst.ScopePath,
-                                               },
-                                               Op:    apisixconst.OpRegexMatch,
-                                               Value: &pathRule.Path,
-                                       })
-                                       uris = []string{"/*"}
-                               }
-                       }
-                       route := apisixv1.NewDefaultRoute()
-                       route.Name = composeIngressRouteName(ing.Namespace, 
ing.Name, rule.Host, pathRule.Path)
-                       route.ID = id.GenID(route.Name)
-                       route.Host = rule.Host
-                       route.Uris = uris
-                       route.EnableWebsocket = ingress.EnableWebSocket
-                       if len(nginxVars) > 0 {
-                               routeVars, err := 
t.ApisixTranslator.TranslateRouteMatchExprs(nginxVars)
-                               if err != nil {
-                                       return nil, err
-                               }
-                               route.Vars = routeVars
-                               route.Priority = _regexPriority
-                       }
-                       if len(ingress.Plugins) > 0 {
-                               route.Plugins = *(ingress.Plugins.DeepCopy())
-                       }
-
-                       if ingress.PluginConfigName != "" {
-                               route.PluginConfigId = 
id.GenID(apisixv1.ComposePluginConfigName(ing.Namespace, 
ingress.PluginConfigName))
-                       }
-
-                       if ups != nil {
-                               route.UpstreamId = ups.ID
-                       }
-                       ctx.AddRoute(route)
-               }
-       }
-       return ctx, nil
-}
-
 func (t *translator) translateDefaultUpstreamFromIngressV1beta1(namespace 
string, svcName string, svcPort intstr.IntOrString) *apisixv1.Upstream {
        var portNumber int32
        if svcPort.Type == intstr.String {
@@ -574,8 +462,6 @@ func (t *translator) TranslateOldIngress(ing kube.Ingress) 
(*translation.Transla
                return t.translateOldIngressV1(ing.V1())
        case kube.IngressV1beta1:
                return t.translateOldIngressV1beta1(ing.V1beta1())
-       case kube.IngressExtensionsV1beta1:
-               return 
t.translateOldIngressExtensionsv1beta1(ing.ExtensionsV1beta1())
        default:
                return nil, fmt.Errorf("translator: source group version not 
supported: %s", ing.GroupVersion())
        }
@@ -665,43 +551,6 @@ func (t *translator) translateOldIngressV1beta1(ing 
*networkingv1beta1.Ingress)
        return oldCtx, nil
 }
 
-func (t *translator) translateOldIngressExtensionsv1beta1(ing 
*extensionsv1beta1.Ingress) (*translation.TranslateContext, error) {
-       oldCtx := translation.DefaultEmptyTranslateContext()
-
-       for _, tls := range ing.Spec.TLS {
-               ssl, err := t.translateOldIngressTLS(ing.Namespace, ing.Name, 
tls.SecretName, tls.Hosts)
-               if err != nil {
-                       log.Errorw("failed to translate ingress tls to apisix 
tls",
-                               zap.Error(err),
-                               zap.Any("ingress", ing),
-                       )
-                       continue
-               }
-               oldCtx.AddSSL(ssl)
-       }
-       for _, rule := range ing.Spec.Rules {
-               for _, pathRule := range rule.HTTP.Paths {
-                       name := composeIngressRouteName(ing.Namespace, 
ing.Name, rule.Host, pathRule.Path)
-                       r, err := 
t.Apisix.Cluster(t.ClusterName).Route().Get(context.Background(), name)
-                       if err != nil {
-                               continue
-                       }
-                       if r.UpstreamId != "" {
-                               ups := apisixv1.NewDefaultUpstream()
-                               ups.ID = r.UpstreamId
-                               oldCtx.AddUpstream(ups)
-                       }
-                       if r.PluginConfigId != "" {
-                               pc := apisixv1.NewDefaultPluginConfig()
-                               pc.ID = r.PluginConfigId
-                               oldCtx.AddPluginConfig(pc)
-                       }
-                       oldCtx.AddRoute(r)
-               }
-       }
-       return oldCtx, nil
-}
-
 // In the past, we used host + path directly to form its route name for 
readability,
 // but this method can cause problems in some scenarios.
 // For example, the generated name is too long.
diff --git a/pkg/providers/utils/ingress_status.go 
b/pkg/providers/utils/ingress_status.go
index c106a19b..3cafca85 100644
--- a/pkg/providers/utils/ingress_status.go
+++ b/pkg/providers/utils/ingress_status.go
@@ -24,7 +24,6 @@ import (
        "time"
 
        corev1 "k8s.io/api/core/v1"
-       extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
        networkingv1 "k8s.io/api/networking/v1"
        networkingv1beta1 "k8s.io/api/networking/v1beta1"
        listerscorev1 "k8s.io/client-go/listers/core/v1"
@@ -138,18 +137,6 @@ func lessNetworkingV1beta1LB(addrs 
[]networkingv1beta1.IngressLoadBalancerIngres
        }
 }
 
-func lessExtensionsV1beta1LB(addrs 
[]extensionsv1beta1.IngressLoadBalancerIngress) func(int, int) bool {
-       return func(a, b int) bool {
-               switch strings.Compare(addrs[a].Hostname, addrs[b].Hostname) {
-               case -1:
-                       return true
-               case 1:
-                       return false
-               }
-               return addrs[a].IP < addrs[b].IP
-       }
-}
-
 func CompareNetworkingV1LBEqual(lb1 []networkingv1.IngressLoadBalancerIngress, 
lb2 []networkingv1.IngressLoadBalancerIngress) bool {
        if len(lb1) != len(lb2) {
                return false
@@ -186,24 +173,6 @@ func CompareNetworkingV1beta1LBEqual(lb1 
[]networkingv1beta1.IngressLoadBalancer
        return true
 }
 
-func CompareExtensionsV1beta1LBEqual(lb1 
[]extensionsv1beta1.IngressLoadBalancerIngress, lb2 
[]extensionsv1beta1.IngressLoadBalancerIngress) bool {
-       if len(lb1) != len(lb2) {
-               return false
-       }
-       sort.SliceStable(lb1, lessExtensionsV1beta1LB(lb1))
-       sort.SliceStable(lb2, lessExtensionsV1beta1LB(lb2))
-       size := len(lb1)
-       for i := 0; i < size; i++ {
-               if lb1[i].IP != lb2[i].IP {
-                       return false
-               }
-               if lb1[i].Hostname != lb2[i].Hostname {
-                       return false
-               }
-       }
-       return true
-}
-
 // CoreV1ToNetworkV1LB convert []corev1.LoadBalancerIngress to 
[]networkingv1.IngressLoadBalancerIngress
 func CoreV1ToNetworkV1LB(lbips []corev1.LoadBalancerIngress) 
[]networkingv1.IngressLoadBalancerIngress {
        t := make([]networkingv1.IngressLoadBalancerIngress, 0, len(lbips))
@@ -228,18 +197,6 @@ func CoreV1ToNetworkV1beta1LB(lbips 
[]corev1.LoadBalancerIngress) []networkingv1
        return t
 }
 
-// CoreV1ToExtensionsV1beta1LB convert []corev1.LoadBalancerIngress to 
[]extensionsv1beta1.IngressLoadBalancerIngress
-func CoreV1ToExtensionsV1beta1LB(lbips []corev1.LoadBalancerIngress) 
[]extensionsv1beta1.IngressLoadBalancerIngress {
-       t := make([]extensionsv1beta1.IngressLoadBalancerIngress, 0, len(lbips))
-       for _, lbip := range lbips {
-               t = append(t, extensionsv1beta1.IngressLoadBalancerIngress{
-                       Hostname: lbip.Hostname,
-                       IP:       lbip.IP,
-               })
-       }
-       return t
-}
-
 func CoreV1ToGatewayV1beta1Addr(lbips []corev1.LoadBalancerIngress) 
[]gatewayv1beta1.GatewayAddress {
        t := make([]gatewayv1beta1.GatewayAddress, 0, len(lbips))
 
diff --git a/pkg/providers/utils/ingress_status_test.go 
b/pkg/providers/utils/ingress_status_test.go
index cb2b1bab..2df02de4 100644
--- a/pkg/providers/utils/ingress_status_test.go
+++ b/pkg/providers/utils/ingress_status_test.go
@@ -20,7 +20,6 @@ import (
        "testing"
 
        "github.com/stretchr/testify/assert"
-       extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
        networkingv1 "k8s.io/api/networking/v1"
        networkingv1beta1 "k8s.io/api/networking/v1beta1"
 )
@@ -184,74 +183,3 @@ func TestCompareNetworkingV1beta1LBEqual(t *testing.T) {
        }
        assert.Equal(t, true, CompareNetworkingV1beta1LBEqual(lb1, lb2))
 }
-
-func TestCompareExtensionsV1beta1LBEqual(t *testing.T) {
-       lb1 := []extensionsv1beta1.IngressLoadBalancerIngress{
-               {
-                       IP: "0.0.0.0",
-               },
-       }
-       lb2 := []extensionsv1beta1.IngressLoadBalancerIngress{
-               {
-                       IP: "0.0.0.0",
-               },
-       }
-       assert.Equal(t, true, CompareExtensionsV1beta1LBEqual(lb1, lb2))
-
-       lb1 = []extensionsv1beta1.IngressLoadBalancerIngress{
-               {
-                       IP: "0.0.0.0",
-               },
-       }
-       lb2 = []extensionsv1beta1.IngressLoadBalancerIngress{
-               {
-                       IP: "0.0.0.0",
-               },
-               {
-                       Hostname: "test.com",
-               },
-       }
-       assert.Equal(t, false, CompareExtensionsV1beta1LBEqual(lb1, lb2))
-
-       lb1 = []extensionsv1beta1.IngressLoadBalancerIngress{
-               {
-                       IP: "127.0.0.1",
-               },
-               {
-                       IP: "1.1.1.1",
-               },
-       }
-       lb2 = []extensionsv1beta1.IngressLoadBalancerIngress{
-               {
-                       IP: "127.0.0.1",
-               },
-               {
-                       IP: "0.0.0.0",
-               },
-       }
-       assert.Equal(t, false, CompareExtensionsV1beta1LBEqual(lb1, lb2))
-
-       lb1 = []extensionsv1beta1.IngressLoadBalancerIngress{
-               {
-                       Hostname: "test.com",
-               },
-               {
-                       IP: "127.0.0.1",
-               },
-               {
-                       IP: "0.0.0.0",
-               },
-       }
-       lb2 = []extensionsv1beta1.IngressLoadBalancerIngress{
-               {
-                       IP: "0.0.0.0",
-               },
-               {
-                       IP: "127.0.0.1",
-               },
-               {
-                       Hostname: "test.com",
-               },
-       }
-       assert.Equal(t, true, CompareExtensionsV1beta1LBEqual(lb1, lb2))
-}
diff --git a/test/e2e/suite-annotations/authorization.go 
b/test/e2e/suite-annotations/authorization.go
index 7d7300ec..f946c245 100644
--- a/test/e2e/suite-annotations/authorization.go
+++ b/test/e2e/suite-annotations/authorization.go
@@ -123,52 +123,6 @@ spec:
                                Status(http.StatusOK)
                })
 
-               ginkgo.It("enable keyAuth in ingress extensions/v1beta1", 
func() {
-                       err := s.ApisixConsumerKeyAuthCreated("foo", "bar")
-                       assert.Nil(ginkgo.GinkgoT(), err, "creating keyAuth 
ApisixConsumer")
-
-                       // Wait until the ApisixConsumer create event was 
delivered.
-                       time.Sleep(6 * time.Second)
-
-                       backendSvc, backendPort := s.DefaultHTTPBackend()
-                       ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/auth-type: "keyAuth"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /ip
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-                       err = s.CreateResourceFromString(ing)
-                       assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-                       time.Sleep(5 * time.Second)
-
-                       msg401 := s.NewAPISIXClient().GET("/ip").
-                               WithHeader("Host", "httpbin.org").
-                               Expect().
-                               Status(http.StatusUnauthorized).
-                               Body().
-                               Raw()
-                       assert.Contains(ginkgo.GinkgoT(), msg401, "Missing API 
key found in request")
-
-                       _ = s.NewAPISIXClient().GET("/ip").
-                               WithHeader("Host", "httpbin.org").
-                               WithHeader("apikey", "bar").
-                               Expect().
-                               Status(http.StatusOK)
-               })
-
                ginkgo.It("enable basicAuth in ingress networking/v1", func() {
                        err := s.ApisixConsumerBasicAuthCreated("jack1", 
"jack1-username", "jack1-password")
                        assert.Nil(ginkgo.GinkgoT(), err, "creating keyAuth 
ApisixConsumer")
@@ -262,52 +216,6 @@ spec:
                                Expect().
                                Status(http.StatusOK)
                })
-
-               ginkgo.It("enable basicAuth in ingress networking/v1beta1", 
func() {
-                       err := s.ApisixConsumerBasicAuthCreated("jack1", 
"jack1-username", "jack1-password")
-                       assert.Nil(ginkgo.GinkgoT(), err, "creating keyAuth 
ApisixConsumer")
-
-                       // Wait until the ApisixConsumer create event was 
delivered.
-                       time.Sleep(6 * time.Second)
-
-                       backendSvc, backendPort := s.DefaultHTTPBackend()
-                       ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/auth-type: "basicAuth"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /ip
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-                       err = s.CreateResourceFromString(ing)
-                       assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-                       time.Sleep(5 * time.Second)
-
-                       msg401 := s.NewAPISIXClient().GET("/ip").
-                               WithHeader("Host", "httpbin.org").
-                               Expect().
-                               Status(http.StatusUnauthorized).
-                               Body().
-                               Raw()
-                       assert.Contains(ginkgo.GinkgoT(), msg401, "Missing 
authorization in request")
-
-                       _ = s.NewAPISIXClient().GET("/ip").
-                               WithHeader("Host", "httpbin.org").
-                               WithHeader("Authorization", "Basic 
amFjazEtdXNlcm5hbWU6amFjazEtcGFzc3dvcmQ=").
-                               Expect().
-                               Status(http.StatusOK)
-               })
        }
 
        ginkgo.Describe("suite-annotations: scaffold v2", func() {
diff --git a/test/e2e/suite-annotations/cors.go 
b/test/e2e/suite-annotations/cors.go
index f2c8838d..8b408f7a 100644
--- a/test/e2e/suite-annotations/cors.go
+++ b/test/e2e/suite-annotations/cors.go
@@ -208,89 +208,4 @@ spec:
                resp.Header("Access-Control-Allow-Methods").Empty()
                resp.Header("Access-Control-Allow-Headers").Empty()
        })
-
-       ginkgo.It("enable in ingress extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/enable-cors: "true"
-    k8s.apisix.apache.org/cors-allow-origin: https://foo.com,https://bar.com
-    k8s.apisix.apache.org/cors-allow-headers: x-foo-1,x-foo-2
-    k8s.apisix.apache.org/cors-allow-methods: GET,POST,PUT
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /ip
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               resp := s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect()
-               resp.Status(http.StatusOK)
-               // As httpbin itself adds this header, we don't check it here.
-               // resp.Header("Access-Control-Allow-Origin").Empty()
-               resp.Header("Access-Control-Allow-Methods").Empty()
-               resp.Header("Access-Control-Allow-Headers").Empty()
-
-               resp = s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").WithHeader("Origin", "https://baz.com";).Expect()
-               resp.Status(http.StatusOK)
-               // As httpbin itself adds this header, we don't check it here.
-               // resp.Header("Access-Control-Allow-Origin").Empty()
-               resp.Header("Access-Control-Allow-Methods").Empty()
-               resp.Header("Access-Control-Allow-Headers").Empty()
-
-               resp = s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").WithHeader("Origin", "https://foo.com";).Expect()
-               resp.Status(http.StatusOK)
-               
resp.Header("Access-Control-Allow-Origin").Equal("https://foo.com";)
-               
resp.Header("Access-Control-Allow-Methods").Equal("GET,POST,PUT")
-               
resp.Header("Access-Control-Allow-Headers").Equal("x-foo-1,x-foo-2")
-       })
-
-       ginkgo.It("disable in ingress extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/enable-cors: "false"
-    k8s.apisix.apache.org/cors-allow-origin: https://foo.com,https://bar.com
-    k8s.apisix.apache.org/cors-allow-headers: x-foo-1,x-foo-2
-    k8s.apisix.apache.org/cors-allow-methods: GET,POST,PUT
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /ip
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               resp := s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").WithHeader("Origin", "https://foo.com";).Expect()
-               resp.Status(http.StatusOK)
-               // As httpbin itself adds this header, we don't check it here.
-               // resp.Header("Access-Control-Allow-Origin").Empty()
-               resp.Header("Access-Control-Allow-Methods").Empty()
-               resp.Header("Access-Control-Allow-Headers").Empty()
-       })
 })
diff --git a/test/e2e/suite-annotations/csrf.go 
b/test/e2e/suite-annotations/csrf.go
index ddc11c44..383fe8bb 100644
--- a/test/e2e/suite-annotations/csrf.go
+++ b/test/e2e/suite-annotations/csrf.go
@@ -138,58 +138,4 @@ spec:
                        Expect().
                        Status(http.StatusOK)
        })
-
-       ginkgo.It("enable csrf in ingress extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/enable-csrf: "true"
-    k8s.apisix.apache.org/csrf-key: "foo-key"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /*
-        pathType: Prefix
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               assert.Nil(ginkgo.GinkgoT(), s.CreateResourceFromString(ing), 
"creating ingress")
-
-               time.Sleep(5 * time.Second)
-
-               msg401 := s.NewAPISIXClient().
-                       POST("/anything").
-                       WithHeader("Host", "httpbin.org").
-                       Expect().
-                       Status(http.StatusUnauthorized).
-                       Body().
-                       Raw()
-               assert.Contains(ginkgo.GinkgoT(), msg401, "no csrf token in 
headers")
-
-               resp := s.NewAPISIXClient().
-                       GET("/anything").
-                       WithHeader("Host", "httpbin.org").
-                       Expect().
-                       Status(http.StatusOK)
-               resp.Header("Set-Cookie").NotEmpty()
-
-               cookie := resp.Cookie("apisix-csrf-token")
-               token := cookie.Value().Raw()
-
-               _ = s.NewAPISIXClient().
-                       POST("/anything").
-                       WithHeader("Host", "httpbin.org").
-                       WithHeader("apisix-csrf-token", token).
-                       WithCookie("apisix-csrf-token", token).
-                       Expect().
-                       Status(http.StatusOK)
-       })
 })
diff --git a/test/e2e/suite-annotations/forward_auth.go 
b/test/e2e/suite-annotations/forward_auth.go
index a473e158..4d28f5dc 100644
--- a/test/e2e/suite-annotations/forward_auth.go
+++ b/test/e2e/suite-annotations/forward_auth.go
@@ -88,7 +88,7 @@ spec:
                })
        })
 
-       ginkgo.It("enable in ingress networking/v1", func() {
+       ginkgo.It("enable in ingress networking/v1beta1", func() {
                backendSvc, backendPort := s.DefaultHTTPBackend()
                ing := fmt.Sprintf(`
 apiVersion: networking.k8s.io/v1beta1
@@ -126,45 +126,4 @@ spec:
                        "Location": []string{"http://example.com/auth"},
                })
        })
-
-       ginkgo.It("enable in ingress networking/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/auth-uri: %s
-    k8s.apisix.apache.org/auth-request-headers: Authorization
-    k8s.apisix.apache.org/auth-upstream-headers: X-User-ID
-    k8s.apisix.apache.org/auth-client-headers: Location
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /ip
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, "http://127.0.0.1:9080/auth";, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               ginkgo.GinkgoT().Logf("ingress: %s", ing)
-               ginkgo.GinkgoT().Logf("create ingress: %v", err)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               resp := s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").WithHeader("Authorization", "123").Expect()
-               resp.Status(http.StatusOK)
-               resp = s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").WithHeader("Authorization", "321").Expect()
-               resp.Status(http.StatusOK)
-               resp = s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect()
-               resp.Status(http.StatusForbidden)
-               resp.Headers().ContainsMap(map[string]interface{}{
-                       "Location": []string{"http://example.com/auth"},
-               })
-       })
 })
diff --git a/test/e2e/suite-annotations/http_method.go 
b/test/e2e/suite-annotations/http_method.go
index 60304535..1655e189 100644
--- a/test/e2e/suite-annotations/http_method.go
+++ b/test/e2e/suite-annotations/http_method.go
@@ -99,41 +99,6 @@ spec:
                respPut := s.NewAPISIXClient().PUT("/put").WithHeader("Host", 
"httpbin.org").Expect()
                respPut.Status(http.StatusOK)
        })
-
-       ginkgo.It("enable in ingress extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/http-allow-methods: POST,PUT
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /*
-        pathType: Prefix
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               respGet := s.NewAPISIXClient().GET("/get").WithHeader("Host", 
"httpbin.org").Expect()
-               respGet.Status(http.StatusMethodNotAllowed)
-
-               respPost := 
s.NewAPISIXClient().POST("/post").WithHeader("Host", "httpbin.org").Expect()
-               respPost.Status(http.StatusOK)
-
-               respPut := s.NewAPISIXClient().PUT("/put").WithHeader("Host", 
"httpbin.org").Expect()
-               respPut.Status(http.StatusOK)
-       })
 })
 
 var _ = ginkgo.Describe("suite-annotations: blocklist-http-methods 
annotations", func() {
@@ -210,39 +175,4 @@ spec:
                respPut := s.NewAPISIXClient().PUT("/put").WithHeader("Host", 
"httpbin.org").Expect()
                respPut.Status(http.StatusOK)
        })
-
-       ginkgo.It("enable in ingress extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/http-block-methods: GET
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /*
-        pathType: Prefix
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               respGet := s.NewAPISIXClient().GET("/get").WithHeader("Host", 
"httpbin.org").Expect()
-               respGet.Status(http.StatusMethodNotAllowed)
-
-               respPost := 
s.NewAPISIXClient().POST("/post").WithHeader("Host", "httpbin.org").Expect()
-               respPost.Status(http.StatusOK)
-
-               respPut := s.NewAPISIXClient().PUT("/put").WithHeader("Host", 
"httpbin.org").Expect()
-               respPut.Status(http.StatusOK)
-       })
 })
diff --git a/test/e2e/suite-annotations/iprestriction.go 
b/test/e2e/suite-annotations/iprestriction.go
index 84621d94..d1bb1843 100644
--- a/test/e2e/suite-annotations/iprestriction.go
+++ b/test/e2e/suite-annotations/iprestriction.go
@@ -87,35 +87,6 @@ spec:
                resp := s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect()
                resp.Status(http.StatusForbidden)
        })
-
-       ginkgo.It("enable in ingress extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/allowlist-source-range: "10.0.5.0/16"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /ip
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               resp := s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect()
-               resp.Status(http.StatusForbidden)
-       })
 })
 
 var _ = ginkgo.Describe("suite-annotations: blocklist-source-range 
annotations", func() {
@@ -180,33 +151,4 @@ spec:
                resp := s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect()
                resp.Status(http.StatusForbidden)
        })
-
-       ginkgo.It("enable in ingress extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/blocklist-source-range: "127.0.0.1"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /ip
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               resp := s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect()
-               resp.Status(http.StatusForbidden)
-       })
 })
diff --git a/test/e2e/suite-annotations/plugin_conifg.go 
b/test/e2e/suite-annotations/plugin_conifg.go
index 3f8e740b..ea9d726a 100644
--- a/test/e2e/suite-annotations/plugin_conifg.go
+++ b/test/e2e/suite-annotations/plugin_conifg.go
@@ -134,32 +134,3 @@ spec:
                _assert(s, ing)
        })
 })
-
-var _ = ginkgo.Describe("suite-annotations: annotations.extensions/v1beta1 
with ApisixPluginConfig", func() {
-       s := scaffold.NewDefaultScaffold()
-       ginkgo.It("extensions/v1beta1", func() {
-               _createAPC(s)
-
-               backendSvc, backendPorts := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  name: ingress-ext-v1beta1
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/plugin-config-name: echo-and-cors-apc
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /ip
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPorts[0])
-               _assert(s, ing)
-       })
-})
diff --git a/test/e2e/suite-annotations/redirect.go 
b/test/e2e/suite-annotations/redirect.go
index 6767c947..b2f4c019 100644
--- a/test/e2e/suite-annotations/redirect.go
+++ b/test/e2e/suite-annotations/redirect.go
@@ -91,36 +91,6 @@ spec:
                resp.Header("Location").Equal("https://httpbin.org:9443/sample";)
        })
 
-       ginkgo.It("redirect http-to-https in ingress extensions/v1beta1", 
func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/http-to-https: "true"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /sample
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               resp := s.NewAPISIXClient().GET("/sample").WithHeader("Host", 
"httpbin.org").Expect()
-               resp.Status(http.StatusMovedPermanently)
-               resp.Header("Location").Equal("https://httpbin.org:9443/sample";)
-       })
-
        ginkgo.It("redirect http-redirect in ingress networking/v1", func() {
                backendSvc, backendPort := s.DefaultHTTPBackend()
                ing := fmt.Sprintf(`
@@ -185,37 +155,6 @@ spec:
                resp.Header("Location").Equal("/anything/ip")
        })
 
-       ginkgo.It("redirect http-redirect in ingress extensions/v1beta1", 
func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/http-redirect: "/anything$uri"
-    k8s.apisix.apache.org/http-redirect-code: "308"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /*
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               resp := s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect()
-               resp.Status(http.StatusPermanentRedirect)
-               resp.Header("Location").Equal("/anything/ip")
-       })
-
        ginkgo.It("redirect http-redirect external link in ingress 
networking/v1", func() {
                backendSvc, backendPort := s.DefaultHTTPBackend()
                ing := fmt.Sprintf(`
@@ -285,38 +224,4 @@ spec:
                body := httpexpect.New(ginkgo.GinkgoT(), 
url).GET("").Expect().Status(http.StatusOK).Body().Raw()
                assert.Contains(ginkgo.GinkgoT(), body, 
"https://httpbin.org/get";)
        })
-
-       ginkgo.It("redirect http-redirect external link in ingress 
extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/http-redirect: "https://httpbin.org/get";
-    k8s.apisix.apache.org/http-redirect-code: "308"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /*
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               resp := s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect()
-               resp.Status(http.StatusPermanentRedirect)
-               url := 
resp.Header("Location").Equal("https://httpbin.org/get";).Raw()
-
-               body := httpexpect.New(ginkgo.GinkgoT(), 
url).GET("").Expect().Status(http.StatusOK).Body().Raw()
-               assert.Contains(ginkgo.GinkgoT(), body, 
"https://httpbin.org/get";)
-       })
 })
diff --git a/test/e2e/suite-annotations/response_rewrite.go 
b/test/e2e/suite-annotations/response_rewrite.go
index 9ff1b91f..d8e309d1 100644
--- a/test/e2e/suite-annotations/response_rewrite.go
+++ b/test/e2e/suite-annotations/response_rewrite.go
@@ -232,103 +232,4 @@ spec:
                resp.Status(http.StatusOK)
                resp.Body().NotEqual("bar-body")
        })
-
-       ginkgo.It("enable in ingress extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/enable-response-rewrite: "true"
-    k8s.apisix.apache.org/response-rewrite-status-code: "400"
-    k8s.apisix.apache.org/response-rewrite-body: "bar-body"
-    k8s.apisix.apache.org/response-rewrite-body-base64: "false"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /ip
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               resp := s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect()
-               resp.Status(http.StatusBadRequest)
-               resp.Body().Equal("bar-body")
-       })
-
-       ginkgo.It("enable base64 body in ingress extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/enable-response-rewrite: "true"
-    k8s.apisix.apache.org/response-rewrite-status-code: "400"
-    k8s.apisix.apache.org/response-rewrite-body: "YmFyLWJvZHk="
-    k8s.apisix.apache.org/response-rewrite-body-base64: "true"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /ip
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               resp := s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect()
-               resp.Status(http.StatusBadRequest)
-               resp.Body().Equal("bar-body")
-       })
-
-       ginkgo.It("disable in ingress extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/enable-response-rewrite: "false"
-    k8s.apisix.apache.org/response-rewrite-status-code: "400"
-    k8s.apisix.apache.org/response-rewrite-body: "bar-body"
-    k8s.apisix.apache.org/response-rewrite-body-base64: "false"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /ip
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               resp := s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect()
-               resp.Status(http.StatusOK)
-               resp.Body().NotEqual("bar-body")
-       })
 })
diff --git a/test/e2e/suite-annotations/rewrite.go 
b/test/e2e/suite-annotations/rewrite.go
index 68c7969a..d3795600 100644
--- a/test/e2e/suite-annotations/rewrite.go
+++ b/test/e2e/suite-annotations/rewrite.go
@@ -87,35 +87,6 @@ spec:
                _ = s.NewAPISIXClient().GET("/sample").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusOK)
                _ = s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusNotFound)
        })
-
-       ginkgo.It("enable in ingress extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/rewrite-target: "/ip"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /sample
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               _ = s.NewAPISIXClient().GET("/sample").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusOK)
-               _ = s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusNotFound)
-       })
 })
 
 var _ = ginkgo.Describe("suite-annotations: rewrite regex annotations", func() 
{
@@ -182,34 +153,4 @@ spec:
                _ = s.NewAPISIXClient().GET("/sample/ip").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusOK)
                _ = s.NewAPISIXClient().GET("/sample/get").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusOK)
        })
-
-       ginkgo.It("enable in ingress extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/rewrite-target-regex: "/sample/(.*)"
-    k8s.apisix.apache.org/rewrite-target-regex-template: "/$1"
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /sample
-        pathType: Prefix
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               assert.Nil(ginkgo.GinkgoT(), err, "creating ingress")
-               time.Sleep(5 * time.Second)
-
-               _ = s.NewAPISIXClient().GET("/sample/ip").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusOK)
-               _ = s.NewAPISIXClient().GET("/sample/get").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusOK)
-       })
 })
diff --git a/test/e2e/suite-annotations/svc_namespace.go 
b/test/e2e/suite-annotations/svc_namespace.go
index 910c20c1..6831a9dd 100644
--- a/test/e2e/suite-annotations/svc_namespace.go
+++ b/test/e2e/suite-annotations/svc_namespace.go
@@ -69,42 +69,6 @@ spec:
                        Raw()
        })
 
-       ginkgo.It("extensions/v1beta1", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/svc-namespace: "%s"  
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /*
-        pathType: Prefix
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, s.Namespace(), backendSvc, backendPort[0])
-               err := s.CreateResourceFromString(ing)
-               if err != nil {
-                       assert.Fail(ginkgo.GinkgoT(), err.Error(), "creating 
ingress")
-               }
-               time.Sleep(5 * time.Second)
-
-               _ = s.NewAPISIXClient().
-                       POST("/anything").
-                       WithHeader("Host", "httpbin.org").
-                       Expect().
-                       Status(http.StatusOK).
-                       Body().
-                       Raw()
-       })
-
        ginkgo.It("networking/v1beta1", func() {
                backendSvc, backendPort := s.DefaultHTTPBackend()
                ing := fmt.Sprintf(`
@@ -159,48 +123,6 @@ var _ = ginkgo.Describe("suite-annotations: svc-namespace 
annotations cross-name
                _ = k8s.DeleteNamespaceE(ginkgo.GinkgoT(), 
&k8s.KubectlOptions{ConfigPath: scaffold.GetKubeconfig()}, namespace)
        }
 
-       ginkgo.It("extensions/v1beta1", func() {
-
-               newNs := fmt.Sprintf("second-svc-namespace-%d", 
time.Now().Nanosecond())
-               oldNs := s.Namespace()
-               createNamespace(newNs, oldNs)
-               defer deleteNamespace(newNs)
-
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/svc-namespace: %s
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /*
-        pathType: Prefix
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, oldNs, backendSvc, backendPort[0])
-               err := s.CreateResourceFromStringWithNamespace(ing, newNs)
-               if err != nil {
-                       assert.Fail(ginkgo.GinkgoT(), err.Error(), "creating 
ingress")
-               }
-               time.Sleep(5 * time.Second)
-
-               _ = s.NewAPISIXClient().
-                       POST("/anything").
-                       WithHeader("Host", "httpbin.org").
-                       Expect().
-                       Status(http.StatusOK).
-                       Body().
-                       Raw()
-       })
-
        ginkgo.It("networking/v1beta1", func() {
 
                newNs := fmt.Sprintf("second-svc-namespace-%d", 
time.Now().Nanosecond())
diff --git a/test/e2e/suite-annotations/upstreamprotocol.go 
b/test/e2e/suite-annotations/upstreamprotocol.go
index a8d7bd4a..05124ff5 100644
--- a/test/e2e/suite-annotations/upstreamprotocol.go
+++ b/test/e2e/suite-annotations/upstreamprotocol.go
@@ -126,36 +126,3 @@ spec:
                assert.Equal(ginkgo.GinkgoT(), ups[0].Scheme, "grpcs")
        })
 })
-
-var _ = ginkgo.Describe("suite-annotations: annotations.extensions/v1beta1 
upstream scheme", func() {
-       s := scaffold.NewDefaultScaffold()
-       ginkgo.It("sanity", func() {
-               ing := `
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/upstream-scheme: grpcs
-  name: ingress-ext-v1beta1
-spec:
-  rules:
-  - host: e2e.apisix.local
-    http:
-      paths:
-      - path: /helloworld.Greeter/SayHello
-        pathType: ImplementationSpecific
-        backend:
-          serviceName: test-backend-service-e2e-test
-          servicePort: 50053
-`
-               assert.NoError(ginkgo.GinkgoT(), 
s.CreateResourceFromString(ing))
-               err := s.EnsureNumApisixUpstreamsCreated(1)
-               assert.Nil(ginkgo.GinkgoT(), err, "Checking number of 
upstreams")
-               time.Sleep(2 * time.Second)
-               ups, err := s.ListApisixUpstreams()
-               assert.Nil(ginkgo.GinkgoT(), err)
-               assert.Len(ginkgo.GinkgoT(), ups, 1)
-               assert.Equal(ginkgo.GinkgoT(), ups[0].Scheme, "grpcs")
-       })
-})
diff --git a/test/e2e/suite-annotations/websocket.go 
b/test/e2e/suite-annotations/websocket.go
index cf75c2aa..71d1ab25 100644
--- a/test/e2e/suite-annotations/websocket.go
+++ b/test/e2e/suite-annotations/websocket.go
@@ -196,87 +196,3 @@ spec:
                assert.Nil(ginkgo.GinkgoT(), conn.Close(), "closing ws 
connection")
        })
 })
-
-var _ = ginkgo.Describe("suite-annotations: ingress.networking/v1beta1 with 
websocket", func() {
-       s := scaffold.NewDefaultScaffold()
-       ginkgo.It("sanity", func() {
-               resources := `
-apiVersion: v1
-kind: Pod
-metadata:
-  name: websocket-server
-  labels:
-    app: websocket-server
-spec:
-  containers:
-  - name: websocket-server
-    image: localhost:5000/echo-server:dev
-    ports:
-    - containerPort: 8080
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: websocket-server-service
-spec:
-  selector:
-    app: websocket-server
-  ports:
-  - name: ws
-    port: 48733
-    protocol: TCP
-    targetPort: 8080
-`
-               err := s.CreateResourceFromString(resources)
-               assert.Nil(ginkgo.GinkgoT(), err)
-               time.Sleep(5 * time.Second)
-
-               ing := `
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  name: ingress-ext-v1beta1
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/enable-websocket: 'true'
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /echo
-        pathType: Exact
-        backend:
-          serviceName: websocket-server-service
-          servicePort: 48733
-`
-               assert.Nil(ginkgo.GinkgoT(), s.CreateResourceFromString(ing))
-               err = s.EnsureNumApisixUpstreamsCreated(1)
-               assert.Nil(ginkgo.GinkgoT(), err, "Checking number of 
upstreams")
-               err = s.EnsureNumApisixRoutesCreated(1)
-               assert.Nil(ginkgo.GinkgoT(), err, "Checking number of routes")
-
-               dialer := websocket.Dialer{}
-               u := url.URL{
-                       Scheme: "ws",
-                       Host:   s.APISIXGatewayServiceEndpoint(),
-                       Path:   "/echo",
-               }
-               header := http.Header{
-                       "Host": []string{"httpbin.org"},
-               }
-               conn, resp, err := dialer.Dial(u.String(), header)
-               assert.Nil(ginkgo.GinkgoT(), err, "websocket handshake failure")
-               assert.Equal(ginkgo.GinkgoT(), resp.StatusCode, 
http.StatusSwitchingProtocols)
-
-               assert.Nil(ginkgo.GinkgoT(), 
conn.WriteMessage(websocket.TextMessage, []byte("hello, I'm gorilla")), 
"writing message")
-               msgType, buf, err := conn.ReadMessage()
-               assert.Nil(ginkgo.GinkgoT(), err, "reading message")
-               assert.Equal(ginkgo.GinkgoT(), string(buf), "Request served by 
websocket-server")
-               msgType, buf, err = conn.ReadMessage()
-               assert.Nil(ginkgo.GinkgoT(), err, "reading message")
-               assert.Equal(ginkgo.GinkgoT(), msgType, websocket.TextMessage)
-               assert.Equal(ginkgo.GinkgoT(), string(buf), "hello, I'm 
gorilla")
-               assert.Nil(ginkgo.GinkgoT(), conn.Close(), "closing ws 
connection")
-       })
-})
diff --git a/test/e2e/suite-chore/consistency.go 
b/test/e2e/suite-chore/consistency.go
index 35678daf..8a2edf6d 100644
--- a/test/e2e/suite-chore/consistency.go
+++ b/test/e2e/suite-chore/consistency.go
@@ -96,24 +96,6 @@ spec:
         backend:
           serviceName: %s
           servicePort: %d
-`
-       _ingressExtensionsV1beta1Config = `
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-  name: ingress-extensions-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /*
-        pathType: Prefix
-        backend:
-          serviceName: %s
-          servicePort: %d
 `
 )
 
@@ -234,42 +216,6 @@ var _ = ginkgo.Describe("suite-chore: Consistency between 
APISIX and the Ingress
 
                s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusOK)
        })
-
-       ginkgo.It("Ingress extensionsV1beta1 and APISIX of route and upstream", 
func() {
-               httpService := fmt.Sprintf(_httpServiceConfig, "port1", 9080, 
9080)
-               assert.Nil(ginkgo.GinkgoT(), 
s.CreateResourceFromString(httpService))
-
-               ing := fmt.Sprintf(_ingressExtensionsV1beta1Config, 
"httpbin-service-e2e-test", 9080)
-               assert.Nil(ginkgo.GinkgoT(), s.CreateResourceFromString(ing))
-
-               assert.Nil(ginkgo.GinkgoT(), s.EnsureNumApisixRoutesCreated(1))
-               assert.Nil(ginkgo.GinkgoT(), 
s.EnsureNumApisixUpstreamsCreated(1))
-
-               upstreams, err := s.ListApisixUpstreams()
-               assert.Nil(ginkgo.GinkgoT(), err)
-               assert.Len(ginkgo.GinkgoT(), upstreams, 1)
-               assert.Contains(ginkgo.GinkgoT(), upstreams[0].Name, 
"httpbin-service-e2e-test_9080")
-               // The correct httpbin pod port is 80
-               s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusBadGateway)
-
-               httpService = fmt.Sprintf(_httpServiceConfig, "port2", 80, 80)
-               assert.Nil(ginkgo.GinkgoT(), 
s.CreateResourceFromString(httpService))
-
-               ing = fmt.Sprintf(_ingressExtensionsV1beta1Config, 
"httpbin-service-e2e-test", 80)
-               assert.Nil(ginkgo.GinkgoT(), s.CreateResourceFromString(ing))
-
-               time.Sleep(6 * time.Second)
-
-               routes, err := s.ListApisixRoutes()
-               assert.Nil(ginkgo.GinkgoT(), err)
-               assert.Len(ginkgo.GinkgoT(), routes, 1)
-               upstreams, err = s.ListApisixUpstreams()
-               assert.Nil(ginkgo.GinkgoT(), err)
-               assert.Len(ginkgo.GinkgoT(), upstreams, 1)
-               assert.Contains(ginkgo.GinkgoT(), upstreams[0].Name, 
"httpbin-service-e2e-test_80")
-
-               s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusOK)
-       })
 })
 
 var _ = ginkgo.Describe("suite-chore: apisix route labels sync", func() {
diff --git a/test/e2e/suite-ingress/suite-ingress-resource/ingress.go 
b/test/e2e/suite-ingress/suite-ingress-resource/ingress.go
index 923117f4..5681d692 100644
--- a/test/e2e/suite-ingress/suite-ingress-resource/ingress.go
+++ b/test/e2e/suite-ingress/suite-ingress-resource/ingress.go
@@ -156,57 +156,6 @@ 
w174RSQoNMc+odHxn95mxtYdYVE5PKkzgrfxqymLa5Y0LMPCpKOq4XB0paZPtrOt
 k1XbogS6EYyEdbkTDdXdUENvDrU7hzJXSVxJYADiqr44DGfWm6hK0bq9ZPc=
 -----END RSA PRIVATE KEY-----
 `
-       ginkgo.It("should support ingress extensions/v1beta1 with tls", func() {
-               // create secrets
-               err := s.NewSecret(serverCertSecret, serverCert, serverKey)
-               assert.Nil(ginkgo.GinkgoT(), err, "create server cert secret 
error")
-
-               // create ingress
-               host := "mtls.httpbin.local"
-               // create route
-               backendSvc, backendSvcPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  name: httpbin-ingress-https
-  annotations:
-    kubernetes.io/ingress.class: apisix
-spec:
-  tls:
-  - hosts:
-    - %s
-    secretName: %s
-  rules:
-  - host: %s
-    http:
-      paths:
-      - path: /*
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, host, serverCertSecret, host, backendSvc, backendSvcPort[0])
-               assert.Nil(ginkgo.GinkgoT(), s.CreateResourceFromString(ing))
-               assert.Nil(ginkgo.GinkgoT(), s.EnsureNumApisixRoutesCreated(1))
-
-               apisixRoutes, err := s.ListApisixRoutes()
-               assert.Nil(ginkgo.GinkgoT(), err, "list routes error")
-               assert.Len(ginkgo.GinkgoT(), apisixRoutes, 1, "route number not 
expect")
-
-               apisixSsls, err := s.ListApisixSsl()
-               assert.Nil(ginkgo.GinkgoT(), err, "list SSLs error")
-               assert.Len(ginkgo.GinkgoT(), apisixSsls, 1, "SSL number should 
be 1")
-               assert.Equal(ginkgo.GinkgoT(), 
id.GenID(s.Namespace()+"_httpbin-ingress-https-tls"), apisixSsls[0].ID, "SSL 
name")
-               assert.Equal(ginkgo.GinkgoT(), apisixSsls[0].Snis, 
[]string{host}, "SSL configuration")
-
-               caCertPool := x509.NewCertPool()
-               ok := caCertPool.AppendCertsFromPEM([]byte(rootCA))
-               assert.True(ginkgo.GinkgoT(), ok, "Append cert to CA pool")
-
-               s.NewAPISIXHttpsClientWithCertificates(host, true, caCertPool, 
[]tls.Certificate{}).
-                       GET("/ip").WithHeader("Host", 
host).Expect().Status(http.StatusOK)
-       })
-
        ginkgo.It("should support ingress v1beta1 with tls", func() {
                // create secrets
                err := s.NewSecret(serverCertSecret, serverCert, serverKey)
@@ -434,7 +383,7 @@ spec:
                _ = s.NewAPISIXClient().GET("/status/200").WithHeader("Host", 
"a.httpbin.org").Expect().Status(http.StatusNotFound)
        })
 
-       ginkgo.It("path regex match", func() {
+       ginkgo.It("path regex match networking.k8s.io/v1", func() {
                backendSvc, backendPort := s.DefaultHTTPBackend()
                ing := fmt.Sprintf(`
 apiVersion: networking.k8s.io/v1
@@ -564,7 +513,7 @@ spec:
                _ = s.NewAPISIXClient().GET("/status/200").WithHeader("Host", 
"a.httpbin.org").Expect().Status(http.StatusNotFound)
        })
 
-       ginkgo.It("path regex match", func() {
+       ginkgo.It("path regex match networking.k8s.io/v1beta1", func() {
                backendSvc, backendPort := s.DefaultHTTPBackend()
                ing := fmt.Sprintf(`
 apiVersion: networking.k8s.io/v1beta1
@@ -596,101 +545,6 @@ spec:
        })
 })
 
-var _ = ginkgo.Describe("suite-ingress-resource: support 
ingress.extensions/v1beta1", func() {
-       s := scaffold.NewDefaultScaffold()
-
-       ginkgo.It("path exact match", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-  name: ingress-ext-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /ip
-        pathType: Exact
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               assert.Nil(ginkgo.GinkgoT(), s.CreateResourceFromString(ing), 
"creating ingress")
-               assert.Nil(ginkgo.GinkgoT(), s.EnsureNumApisixRoutesCreated(1))
-
-               _ = s.NewAPISIXClient().GET("/ip").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusOK)
-               // Exact path, doesn't match /ip/aha
-               _ = s.NewAPISIXClient().GET("/ip/aha").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusNotFound)
-               // Mismatched host
-               _ = s.NewAPISIXClient().GET("/ip/aha").WithHeader("Host", 
"a.httpbin.org").Expect().Status(http.StatusNotFound)
-       })
-
-       ginkgo.It("path prefix match", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-  name: ingress-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /status
-        pathType: Prefix
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               assert.Nil(ginkgo.GinkgoT(), s.CreateResourceFromString(ing), 
"creating ingress")
-               assert.Nil(ginkgo.GinkgoT(), s.EnsureNumApisixRoutesCreated(1))
-
-               _ = s.NewAPISIXClient().GET("/status/500").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusInternalServerError)
-               _ = s.NewAPISIXClient().GET("/status/504").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusGatewayTimeout)
-               _ = s.NewAPISIXClient().GET("/statusaaa").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusNotFound).Body().Contains("404 Route 
Not Found")
-               // Mismatched host
-               _ = s.NewAPISIXClient().GET("/status/200").WithHeader("Host", 
"a.httpbin.org").Expect().Status(http.StatusNotFound)
-       })
-
-       ginkgo.It("path regex match", func() {
-               backendSvc, backendPort := s.DefaultHTTPBackend()
-               ing := fmt.Sprintf(`
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  annotations:
-    kubernetes.io/ingress.class: apisix
-    k8s.apisix.apache.org/use-regex: 'true'
-  name: ingress-v1beta1
-spec:
-  rules:
-  - host: httpbin.org
-    http:
-      paths:
-      - path: /anything/.*/ok
-        pathType: ImplementationSpecific
-        backend:
-          serviceName: %s
-          servicePort: %d
-`, backendSvc, backendPort[0])
-               assert.Nil(ginkgo.GinkgoT(), s.CreateResourceFromString(ing), 
"creating ingress")
-               assert.Nil(ginkgo.GinkgoT(), s.EnsureNumApisixRoutesCreated(1))
-
-               _ = 
s.NewAPISIXClient().GET("/anything/aaa/ok").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusOK)
-               _ = 
s.NewAPISIXClient().GET("/anything/aaa/notok").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusNotFound).Body().Contains("404 Route 
Not Found")
-               _ = s.NewAPISIXClient().GET("/statusaaa").WithHeader("Host", 
"httpbin.org").Expect().Status(http.StatusNotFound).Body().Contains("404 Route 
Not Found")
-               // Mismatched host
-               _ = 
s.NewAPISIXClient().GET("/anything/aaa/ok").WithHeader("Host", 
"a.httpbin.org").Expect().Status(http.StatusNotFound)
-       })
-})
-
 var _ = ginkgo.Describe("suite-ingress-resource: support ingress.networking/v1 
with headless service backend", func() {
        s := scaffold.NewDefaultScaffold()
 
@@ -793,7 +647,7 @@ spec:
                _ = s.NewAPISIXClient().GET("/status/200").WithHeader("Host", 
"a.httpbin.org").Expect().Status(http.StatusNotFound)
        })
 
-       ginkgo.It("path regex match", func() {
+       ginkgo.It("path regex match networking.k8s.io/v1", func() {
                ing := fmt.Sprintf(`
 apiVersion: networking.k8s.io/v1
 kind: Ingress

Reply via email to