Skip to content

Commit

Permalink
make api version const consistent (#1133)
Browse files Browse the repository at this point in the history
  • Loading branch information
lingsamuel committed Jul 7, 2022
1 parent 93c10e6 commit 374f865
Show file tree
Hide file tree
Showing 12 changed files with 59 additions and 67 deletions.
2 changes: 1 addition & 1 deletion cmd/ingress/ingress.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ For example, no available LB exists in the bare metal environment.`)
cmd.PersistentFlags().StringVar(&cfg.Kubernetes.IngressClass, "ingress-class", config.IngressClass, "the class of an Ingress object is set using the field IngressClassName in Kubernetes clusters version v1.18.0 or higher or the annotation \"kubernetes.io/ingress.class\" (deprecated)")
cmd.PersistentFlags().StringVar(&cfg.Kubernetes.ElectionID, "election-id", config.IngressAPISIXLeader, "election id used for campaign the controller leader")
cmd.PersistentFlags().StringVar(&cfg.Kubernetes.IngressVersion, "ingress-version", config.IngressNetworkingV1, "the supported ingress api group version, can be \"networking/v1beta1\", \"networking/v1\" (for Kubernetes version v1.19.0 or higher) and \"extensions/v1beta1\"")
cmd.PersistentFlags().StringVar(&cfg.Kubernetes.ApisixRouteVersion, "apisix-route-version", config.ApisixRouteV2beta3, "the supported apisixroute api group version, can be \"apisix.apache.org/v2beta2\" or \"apisix.apache.org/v2beta3\"")
cmd.PersistentFlags().StringVar(&cfg.Kubernetes.ApisixRouteVersion, "apisix-route-version", config.ApisixV2beta3, "the supported apisixroute api group version, can be \"apisix.apache.org/v2beta2\" or \"apisix.apache.org/v2beta3\"")
cmd.PersistentFlags().StringVar(&cfg.Kubernetes.ApisixPluginConfigVersion, "apisix-plugin-config-version", config.ApisixV2beta3, "the supported ApisixPluginConfig api group version, can be \"apisix.apache.org/v2beta3\" or \"apisix.apache.org/v2\"")
cmd.PersistentFlags().StringVar(&cfg.Kubernetes.ApisixTlsVersion, "apisix-tls-version", config.ApisixV2beta3, "the supported apisixtls api group version, can be \"apisix.apache.org/v2beta3\" or \"apisix.apache.org/v2\"")
cmd.PersistentFlags().StringVar(&cfg.Kubernetes.ApisixClusterConfigVersion, "apisix-cluster-config-version", config.ApisixV2beta3, "the supported ApisixClusterConfig api group version, can be \"apisix.apache.org/v2beta3\" or \"apisix.apache.org/v2\"")
Expand Down
12 changes: 5 additions & 7 deletions pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,14 @@ const (
// WARNING: ingress.extensions/v1beta1 is deprecated in v1.14+, and will be unavilable
// in v1.22.
IngressExtensionsV1beta1 = "extensions/v1beta1"
// ApisixRouteV2beta2 represents apisixroute.apisix.apache.org/v2beta2
ApisixRouteV2beta2 = "apisix.apache.org/v2beta2"
// ApisixRouteV2beta3 represents apisixroute.apisix.apache.org/v2beta3
ApisixRouteV2beta3 = "apisix.apache.org/v2beta3"
// ApisixRouteV2 represents apisixroute.apisix.apache.org/v2
ApisixRouteV2 = "apisix.apache.org/v2"
// ApisixV2beta2 represents apisix.apache.org/v2beta2
ApisixV2beta2 = "apisix.apache.org/v2beta2"
// ApisixV2beta3 represents apisix.apache.org/v2beta3
ApisixV2beta3 = "apisix.apache.org/v2beta3"
// ApisixV2 represents apisix.apache.org/v2
ApisixV2 = "apisix.apache.org/v2"
// DefaultApisixVersion refers to the default resource version
DefaultApisixVersion = ApisixV2beta3

_minimalResyncInterval = 30 * time.Second

Expand Down Expand Up @@ -136,7 +134,7 @@ func NewDefaultConfig() *Config {
ElectionID: IngressAPISIXLeader,
IngressClass: IngressClass,
IngressVersion: IngressNetworkingV1,
ApisixRouteVersion: ApisixRouteV2beta3,
ApisixRouteVersion: ApisixV2beta3,
ApisixPluginConfigVersion: ApisixV2beta3,
ApisixConsumerVersion: ApisixV2beta3,
ApisixTlsVersion: ApisixV2beta3,
Expand Down
4 changes: 2 additions & 2 deletions pkg/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func TestNewConfigFromFile(t *testing.T) {
ElectionID: "my-election-id",
IngressClass: IngressClass,
IngressVersion: IngressNetworkingV1,
ApisixRouteVersion: ApisixRouteV2beta3,
ApisixRouteVersion: ApisixV2beta3,
ApisixPluginConfigVersion: ApisixV2beta3,
ApisixConsumerVersion: ApisixV2beta3,
ApisixTlsVersion: ApisixV2beta3,
Expand Down Expand Up @@ -132,7 +132,7 @@ func TestConfigWithEnvVar(t *testing.T) {
ElectionID: "my-election-id",
IngressClass: IngressClass,
IngressVersion: IngressNetworkingV1,
ApisixRouteVersion: ApisixRouteV2beta3,
ApisixRouteVersion: ApisixV2beta3,
ApisixPluginConfigVersion: ApisixV2beta3,
ApisixConsumerVersion: ApisixV2beta3,
ApisixTlsVersion: ApisixV2beta3,
Expand Down
37 changes: 19 additions & 18 deletions pkg/ingress/apisix_route.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
"k8s.io/client-go/util/workqueue"

apisixcache "github.com/apache/apisix-ingress-controller/pkg/apisix/cache"
"github.com/apache/apisix-ingress-controller/pkg/config"
"github.com/apache/apisix-ingress-controller/pkg/ingress/utils"
"github.com/apache/apisix-ingress-controller/pkg/kube"
v2 "github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v2"
Expand Down Expand Up @@ -99,11 +100,11 @@ func (c *apisixRouteController) sync(ctx context.Context, ev *types.Event) error
tctx *translation.TranslateContext
)
switch obj.GroupVersion {
case kube.ApisixRouteV2beta2:
case config.ApisixV2beta2:
ar, err = c.controller.apisixRouteLister.V2beta2(namespace, name)
case kube.ApisixRouteV2beta3:
case config.ApisixV2beta3:
ar, err = c.controller.apisixRouteLister.V2beta3(namespace, name)
case kube.ApisixRouteV2:
case config.ApisixV2:
ar, err = c.controller.apisixRouteLister.V2(namespace, name)
}
if err != nil {
Expand Down Expand Up @@ -138,7 +139,7 @@ func (c *apisixRouteController) sync(ctx context.Context, ev *types.Event) error
}

switch obj.GroupVersion {
case kube.ApisixRouteV2beta2:
case config.ApisixV2beta2:
if ev.Type != types.EventDelete {
tctx, err = c.controller.translator.TranslateRouteV2beta2(ar.V2beta2())
} else {
Expand All @@ -151,7 +152,7 @@ func (c *apisixRouteController) sync(ctx context.Context, ev *types.Event) error
)
return err
}
case kube.ApisixRouteV2beta3:
case config.ApisixV2beta3:
if ev.Type != types.EventDelete {
if err = c.checkPluginNameIfNotEmptyV2beta3(ctx, ar.V2beta3()); err == nil {
tctx, err = c.controller.translator.TranslateRouteV2beta3(ar.V2beta3())
Expand All @@ -166,7 +167,7 @@ func (c *apisixRouteController) sync(ctx context.Context, ev *types.Event) error
)
return err
}
case kube.ApisixRouteV2:
case config.ApisixV2:
if ev.Type != types.EventDelete {
if err = c.checkPluginNameIfNotEmptyV2(ctx, ar.V2()); err == nil {
tctx, err = c.controller.translator.TranslateRouteV2(ar.V2())
Expand Down Expand Up @@ -210,11 +211,11 @@ func (c *apisixRouteController) sync(ctx context.Context, ev *types.Event) error
} else {
var oldCtx *translation.TranslateContext
switch obj.GroupVersion {
case kube.ApisixRouteV2beta2:
case config.ApisixV2beta2:
oldCtx, err = c.controller.translator.TranslateRouteV2beta2(obj.OldObject.V2beta2())
case kube.ApisixRouteV2beta3:
case config.ApisixV2beta3:
oldCtx, err = c.controller.translator.TranslateRouteV2beta3(obj.OldObject.V2beta3())
case kube.ApisixRouteV2:
case config.ApisixV2:
oldCtx, err = c.controller.translator.TranslateRouteV2(obj.OldObject.V2())
}
if err != nil {
Expand Down Expand Up @@ -304,24 +305,24 @@ func (c *apisixRouteController) handleSyncErr(obj interface{}, errOrigin error)
}
var ar kube.ApisixRoute
switch event.GroupVersion {
case kube.ApisixRouteV2beta2:
case config.ApisixV2beta2:
ar, errLocal = c.controller.apisixRouteLister.V2beta2(namespace, name)
case kube.ApisixRouteV2beta3:
case config.ApisixV2beta3:
ar, errLocal = c.controller.apisixRouteLister.V2beta3(namespace, name)
case kube.ApisixRouteV2:
case config.ApisixV2:
ar, errLocal = c.controller.apisixRouteLister.V2(namespace, name)
}
if errOrigin == nil {
if ev.Type != types.EventDelete {
if errLocal == nil {
switch ar.GroupVersion() {
case kube.ApisixRouteV2beta2:
case config.ApisixV2beta2:
c.controller.recorderEvent(ar.V2beta2(), v1.EventTypeNormal, _resourceSynced, nil)
c.controller.recordStatus(ar.V2beta2(), _resourceSynced, nil, metav1.ConditionTrue, ar.V2beta2().GetGeneration())
case kube.ApisixRouteV2beta3:
case config.ApisixV2beta3:
c.controller.recorderEvent(ar.V2beta3(), v1.EventTypeNormal, _resourceSynced, nil)
c.controller.recordStatus(ar.V2beta3(), _resourceSynced, nil, metav1.ConditionTrue, ar.V2beta3().GetGeneration())
case kube.ApisixRouteV2:
case config.ApisixV2:
c.controller.recorderEvent(ar.V2(), v1.EventTypeNormal, _resourceSynced, nil)
c.controller.recordStatus(ar.V2(), _resourceSynced, nil, metav1.ConditionTrue, ar.V2().GetGeneration())
}
Expand All @@ -343,13 +344,13 @@ func (c *apisixRouteController) handleSyncErr(obj interface{}, errOrigin error)
)
if errLocal == nil {
switch ar.GroupVersion() {
case kube.ApisixRouteV2beta2:
case config.ApisixV2beta2:
c.controller.recorderEvent(ar.V2beta2(), v1.EventTypeWarning, _resourceSyncAborted, errOrigin)
c.controller.recordStatus(ar.V2beta2(), _resourceSyncAborted, errOrigin, metav1.ConditionFalse, ar.V2beta2().GetGeneration())
case kube.ApisixRouteV2beta3:
case config.ApisixV2beta3:
c.controller.recorderEvent(ar.V2beta3(), v1.EventTypeWarning, _resourceSyncAborted, errOrigin)
c.controller.recordStatus(ar.V2beta3(), _resourceSyncAborted, errOrigin, metav1.ConditionFalse, ar.V2beta3().GetGeneration())
case kube.ApisixRouteV2:
case config.ApisixV2:
c.controller.recorderEvent(ar.V2(), v1.EventTypeWarning, _resourceSyncAborted, errOrigin)
c.controller.recordStatus(ar.V2(), _resourceSyncAborted, errOrigin, metav1.ConditionFalse, ar.V2().GetGeneration())
}
Expand Down
4 changes: 2 additions & 2 deletions pkg/ingress/compare.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ func (c *Controller) CompareResources(ctx context.Context) error {
// ApisixRoute
opts := v1.ListOptions{}
switch c.cfg.Kubernetes.ApisixRouteVersion {
case config.ApisixRouteV2beta3:
case config.ApisixV2beta3:
retRoutes, err := c.kubeClient.APISIXClient.ApisixV2beta3().ApisixRoutes(ns).List(ctx, opts)
if err != nil {
log.Error(err.Error())
Expand Down Expand Up @@ -92,7 +92,7 @@ func (c *Controller) CompareResources(ctx context.Context) error {
}
}
}
case config.ApisixRouteV2:
case config.ApisixV2:
retRoutes, err := c.kubeClient.APISIXClient.ApisixV2().ApisixRoutes(ns).List(ctx, opts)
if err != nil {
log.Error(err.Error())
Expand Down
10 changes: 5 additions & 5 deletions pkg/ingress/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -240,11 +240,11 @@ func (c *Controller) initWhenStartLeading() {
}

switch c.cfg.Kubernetes.ApisixRouteVersion {
case config.ApisixRouteV2beta2:
case config.ApisixV2beta2:
apisixRouteInformer = apisixFactory.Apisix().V2beta2().ApisixRoutes().Informer()
case config.ApisixRouteV2beta3:
case config.ApisixV2beta3:
apisixRouteInformer = apisixFactory.Apisix().V2beta3().ApisixRoutes().Informer()
case config.ApisixRouteV2:
case config.ApisixV2:
apisixRouteInformer = apisixFactory.Apisix().V2().ApisixRoutes().Informer()
default:
panic(fmt.Errorf("unsupported ApisixRoute version %s", c.cfg.Kubernetes.ApisixRouteVersion))
Expand All @@ -269,9 +269,9 @@ func (c *Controller) initWhenStartLeading() {
}

switch c.cfg.Kubernetes.ApisixConsumerVersion {
case config.ApisixRouteV2beta3:
case config.ApisixV2beta3:
apisixConsumerInformer = apisixFactory.Apisix().V2beta3().ApisixConsumers().Informer()
case config.ApisixRouteV2:
case config.ApisixV2:
apisixConsumerInformer = apisixFactory.Apisix().V2().ApisixConsumers().Informer()
default:
panic(fmt.Errorf("unsupported ApisixConsumer version %v", c.cfg.Kubernetes.ApisixConsumerVersion))
Expand Down
38 changes: 15 additions & 23 deletions pkg/kube/apisix_route.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ package kube
import (
"errors"

"github.com/apache/apisix-ingress-controller/pkg/config"
configv2 "github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v2"
configv2beta2 "github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v2beta2"
configv2beta3 "github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v2beta3"
Expand All @@ -25,15 +26,6 @@ import (
listersv2beta3 "github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/listers/config/v2beta3"
)

const (
// ApisixRouteV2beta2 represents the ApisixRoute in apisix.apache.org/v2beta3 group version
ApisixRouteV2beta2 = "apisix.apache.org/v2beta2"
// ApisixRouteV2beta3 represents the ApisixRoute in apisix.apache.org/v2beta3 group version
ApisixRouteV2beta3 = "apisix.apache.org/v2beta3"
// ApisixRouteV2 represents the ApisixRoute in apisix.apache.org/v2 group version
ApisixRouteV2 = "apisix.apache.org/v2"
)

// ApisixRouteLister is an encapsulation for the lister of ApisixRoute,
// it aims at to be compatible with different ApisixRoute versions.
type ApisixRouteLister interface {
Expand Down Expand Up @@ -87,20 +79,20 @@ type apisixRoute struct {
}

func (ar *apisixRoute) V2beta2() *configv2beta2.ApisixRoute {
if ar.groupVersion != ApisixRouteV2beta2 {
if ar.groupVersion != config.ApisixV2beta2 {
panic("not a apisix.apache.org/v2beta3 route")
}
return ar.v2beta2
}

func (ar *apisixRoute) V2beta3() *configv2beta3.ApisixRoute {
if ar.groupVersion != ApisixRouteV2beta3 {
if ar.groupVersion != config.ApisixV2beta3 {
panic("not a apisix.apache.org/v2beta3 route")
}
return ar.v2beta3
}
func (ar *apisixRoute) V2() *configv2.ApisixRoute {
if ar.groupVersion != ApisixRouteV2 {
if ar.groupVersion != config.ApisixV2 {
panic("not a apisix.apache.org/v2 route")
}
return ar.v2
Expand All @@ -111,10 +103,10 @@ func (ar *apisixRoute) GroupVersion() string {
}

func (ar *apisixRoute) ResourceVersion() string {
if ar.groupVersion == ApisixRouteV2beta2 {
if ar.groupVersion == config.ApisixV2beta2 {
return ar.V2beta2().ResourceVersion
}
if ar.groupVersion == ApisixRouteV2beta3 {
if ar.groupVersion == config.ApisixV2beta3 {
return ar.V2beta3().ResourceVersion
}
return ar.V2().ResourceVersion
Expand All @@ -132,7 +124,7 @@ func (l *apisixRouteLister) V2beta2(namespace, name string) (ApisixRoute, error)
return nil, err
}
return &apisixRoute{
groupVersion: ApisixRouteV2beta2,
groupVersion: config.ApisixV2beta2,
v2beta2: ar,
}, nil
}
Expand All @@ -143,7 +135,7 @@ func (l *apisixRouteLister) V2beta3(namespace, name string) (ApisixRoute, error)
return nil, err
}
return &apisixRoute{
groupVersion: ApisixRouteV2beta3,
groupVersion: config.ApisixV2beta3,
v2beta3: ar,
}, nil
}
Expand All @@ -153,7 +145,7 @@ func (l *apisixRouteLister) V2(namespace, name string) (ApisixRoute, error) {
return nil, err
}
return &apisixRoute{
groupVersion: ApisixRouteV2,
groupVersion: config.ApisixV2,
v2: ar,
}, nil
}
Expand All @@ -164,17 +156,17 @@ func MustNewApisixRoute(obj interface{}) ApisixRoute {
switch ar := obj.(type) {
case *configv2beta2.ApisixRoute:
return &apisixRoute{
groupVersion: ApisixRouteV2beta2,
groupVersion: config.ApisixV2beta2,
v2beta2: ar,
}
case *configv2beta3.ApisixRoute:
return &apisixRoute{
groupVersion: ApisixRouteV2beta3,
groupVersion: config.ApisixV2beta3,
v2beta3: ar,
}
case *configv2.ApisixRoute:
return &apisixRoute{
groupVersion: ApisixRouteV2,
groupVersion: config.ApisixV2,
v2: ar,
}
default:
Expand All @@ -189,17 +181,17 @@ func NewApisixRoute(obj interface{}) (ApisixRoute, error) {
switch ar := obj.(type) {
case *configv2beta2.ApisixRoute:
return &apisixRoute{
groupVersion: ApisixRouteV2beta2,
groupVersion: config.ApisixV2beta2,
v2beta2: ar,
}, nil
case *configv2beta3.ApisixRoute:
return &apisixRoute{
groupVersion: ApisixRouteV2beta3,
groupVersion: config.ApisixV2beta3,
v2beta3: ar,
}, nil
case *configv2.ApisixRoute:
return &apisixRoute{
groupVersion: ApisixRouteV2,
groupVersion: config.ApisixV2,
v2: ar,
}, nil
default:
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/scaffold/k8s.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ func (s *Scaffold) CreateApisixRoute(name string, rules []ApisixRouteRule) {
route := &apisixRoute{
TypeMeta: metav1.TypeMeta{
Kind: "ApisixRoute",
APIVersion: "apisix.apache.org/v1",
APIVersion: s.opts.APISIXRouteVersion,
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
Expand Down
9 changes: 4 additions & 5 deletions test/e2e/scaffold/scaffold.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ import (
"time"

"github.com/apache/apisix-ingress-controller/pkg/config"
"github.com/apache/apisix-ingress-controller/pkg/kube"
"github.com/gavv/httpexpect/v2"
"github.com/gruntwork-io/terratest/modules/k8s"
"github.com/gruntwork-io/terratest/modules/testing"
Expand Down Expand Up @@ -96,8 +95,8 @@ type apisixResourceVersionInfo struct {

var (
apisixResourceVersion = &apisixResourceVersionInfo{
V2: "apisix.apache.org/v2",
V2beta3: "apisix.apache.org/v2beta3",
V2: config.ApisixV2,
V2beta3: config.ApisixV2beta3,
}
)

Expand Down Expand Up @@ -125,7 +124,7 @@ func GetKubeconfig() string {
func NewScaffold(o *Options) *Scaffold {
if o.ApisixResourceVersion == ApisixResourceVersion().V2 {
if o.APISIXRouteVersion == "" {
o.APISIXRouteVersion = kube.ApisixRouteV2
o.APISIXRouteVersion = config.ApisixV2
}
if o.APISIXTlsVersion == "" {
o.APISIXTlsVersion = config.ApisixV2
Expand All @@ -141,7 +140,7 @@ func NewScaffold(o *Options) *Scaffold {
}
} else {
if o.APISIXRouteVersion == "" {
o.APISIXRouteVersion = kube.ApisixRouteV2beta3
o.APISIXRouteVersion = config.ApisixV2beta3
}
if o.APISIXTlsVersion == "" {
o.APISIXTlsVersion = config.ApisixV2beta3
Expand Down
Loading

0 comments on commit 374f865

Please sign in to comment.