Skip to content

Commit 6ec73f7

Browse files
authored
fix: setup indexer should consider api support or not (#217)
Signed-off-by: Ashing Zheng <[email protected]>
1 parent e61d276 commit 6ec73f7

File tree

1 file changed

+29
-5
lines changed

1 file changed

+29
-5
lines changed

internal/controller/indexer/indexer.go

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131

3232
"github.com/apache/apisix-ingress-controller/api/v1alpha1"
3333
apiv2 "github.com/apache/apisix-ingress-controller/api/v2"
34+
"github.com/apache/apisix-ingress-controller/pkg/utils"
3435
)
3536

3637
const (
@@ -51,20 +52,43 @@ const (
5152
)
5253

5354
func SetupIndexer(mgr ctrl.Manager) error {
55+
setupLog := ctrl.LoggerFrom(context.Background()).WithName("indexer-setup")
56+
57+
// Gateway API indexers - conditional setup based on API availability
58+
for resource, setup := range map[client.Object]func(ctrl.Manager) error{
59+
&gatewayv1.Gateway{}: setupGatewayIndexer,
60+
&gatewayv1.HTTPRoute{}: setupHTTPRouteIndexer,
61+
&gatewayv1.GatewayClass{}: setupGatewayClassIndexer,
62+
&v1alpha1.Consumer{}: setupConsumerIndexer,
63+
} {
64+
if utils.HasAPIResource(mgr, resource) {
65+
if err := setup(mgr); err != nil {
66+
return err
67+
}
68+
} else {
69+
setupLog.Info("Skipping indexer setup, API not found in cluster", "api", utils.FormatGVK(resource))
70+
}
71+
}
72+
73+
// Gateway secret index needs conditional setup since it uses Gateway API
74+
if utils.HasAPIResource(mgr, &gatewayv1.Gateway{}) {
75+
if err := setupGatewaySecretIndex(mgr); err != nil {
76+
return err
77+
}
78+
} else {
79+
setupLog.Info("Skipping indexer setup, API not found in cluster", "api", utils.FormatGVK(&gatewayv1.Gateway{}))
80+
}
81+
82+
// Core Kubernetes and APISIX indexers - always setup these
5483
for _, setup := range []func(ctrl.Manager) error{
55-
setupGatewayIndexer,
56-
setupHTTPRouteIndexer,
5784
setupIngressIndexer,
58-
setupConsumerIndexer,
5985
setupBackendTrafficPolicyIndexer,
6086
setupIngressClassIndexer,
6187
setupGatewayProxyIndexer,
62-
setupGatewaySecretIndex,
6388
setupApisixRouteIndexer,
6489
setupApisixPluginConfigIndexer,
6590
setupApisixTlsIndexer,
6691
setupApisixConsumerIndexer,
67-
setupGatewayClassIndexer,
6892
} {
6993
if err := setup(mgr); err != nil {
7094
return err

0 commit comments

Comments
 (0)