From f1125971f301a771602adcccc9c2814005b9b093 Mon Sep 17 00:00:00 2001 From: Lior Lieberman Date: Wed, 10 Apr 2024 07:13:04 +0000 Subject: [PATCH] fail soft when crds are not installed --- pkg/i2gw/providers/istio/resource_reader.go | 10 ++++++++++ pkg/i2gw/providers/kong/resource_reader.go | 8 +++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/pkg/i2gw/providers/istio/resource_reader.go b/pkg/i2gw/providers/istio/resource_reader.go index 861c284e..12959ea3 100644 --- a/pkg/i2gw/providers/istio/resource_reader.go +++ b/pkg/i2gw/providers/istio/resource_reader.go @@ -29,6 +29,8 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" + "k8s.io/klog/v2" + "sigs.k8s.io/controller-runtime/pkg/client" ) type reader struct { @@ -126,6 +128,10 @@ func (r *reader) readGatewaysFromCluster(ctx context.Context) (map[types.Namespa err := r.conf.Client.List(ctx, gatewayList) if err != nil { + if client.IgnoreNotFound(err) == nil { + klog.Warningf("couldn't find %s CRD, it is likely not installed in the cluster", fmt.Sprintf("%s.%s", APIVersion, GatewayKind)) + return map[types.NamespacedName]*istiov1beta1.Gateway{}, nil + } return nil, fmt.Errorf("failed to list istio gateways: %w", err) } @@ -152,6 +158,10 @@ func (r *reader) readVirtualServicesFromCluster(ctx context.Context) (map[types. err := r.conf.Client.List(ctx, virtualServicesList) if err != nil { + if client.IgnoreNotFound(err) == nil { + klog.Warningf("couldn't find %s CRD, it is likely not installed in the cluster", fmt.Sprintf("%s.%s", APIVersion, VirtualServiceKind)) + return map[types.NamespacedName]*istiov1beta1.VirtualService{}, nil + } return nil, fmt.Errorf("failed to list istio virtual services: %w", err) } diff --git a/pkg/i2gw/providers/kong/resource_reader.go b/pkg/i2gw/providers/kong/resource_reader.go index 916fd095..491b5ee3 100644 --- a/pkg/i2gw/providers/kong/resource_reader.go +++ b/pkg/i2gw/providers/kong/resource_reader.go @@ -24,6 +24,8 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/klog/v2" + "sigs.k8s.io/controller-runtime/pkg/client" kongv1beta1 "github.com/kong/kubernetes-ingress-controller/v2/pkg/apis/configuration/v1beta1" "github.com/kubernetes-sigs/ingress2gateway/pkg/i2gw" @@ -92,7 +94,11 @@ func (r *resourceReader) readTCPIngressesFromCluster(ctx context.Context) ([]kon err := r.conf.Client.List(ctx, tcpIngressList) if err != nil { - return nil, fmt.Errorf("failed to list Kong TCPIngresses: %w", err) + if client.IgnoreNotFound(err) == nil { + klog.Warningf("couldn't find %s CRD, it is likely not installed in the cluster", tcpIngressGVK.GroupKind().String()) + return []kongv1beta1.TCPIngress{}, nil + } + return nil, fmt.Errorf("failed to list %s: %w", tcpIngressGVK.GroupKind().String(), err) } tcpIngresses := []kongv1beta1.TCPIngress{}