Skip to content

Commit 5713dc8

Browse files
committed
merge
Signed-off-by: Ashish Tiwari <ashishjaitiwari15112000@gmail.com>
2 parents d306d4f + 486cc65 commit 5713dc8

File tree

22 files changed

+879
-42
lines changed

22 files changed

+879
-42
lines changed

CHANGELOG.md

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
# Table of Contents
2121

22+
- [2.0.0-rc3](#200-rc3)
2223
- [2.0.0-rc2](#200-rc2)
2324
- [2.0.0-rc1](#200-rc1)
2425
- [1.8.0](#180)
@@ -41,6 +42,121 @@
4142
- [0.2.0](#020)
4243
- [0.1.0](#010)
4344

45+
# 2.0.0-rc3
46+
47+
apisix-ingress-controller 2.0.0-rc3
48+
49+
Welcome to the 2.0.0-rc3 release of apisix-ingress-controller!
50+
51+
This is a release candidate (RC) version.
52+
53+
## Highlights
54+
55+
### Features
56+
57+
* feat: support custom metrics [#2480](https://github.com/apache/apisix-ingress-controller/pull/2480)
58+
* feat: support event triggered synchronization [#2478](https://github.com/apache/apisix-ingress-controller/pull/2478)
59+
60+
### Bugfixes
61+
62+
* fix: route names with the same prefix were mistakenly deleted [#2472](https://github.com/apache/apisix-ingress-controller/pull/2472)
63+
* fix: should not return when service type is ExternalName [#2468](https://github.com/apache/apisix-ingress-controller/pull/2468)
64+
* fix: remove duplicate sync func [#2476](https://github.com/apache/apisix-ingress-controller/pull/2476)
65+
* fix: full sync during restart results in loss of dataplane traffic [#2489](https://github.com/apache/apisix-ingress-controller/pull/2489)
66+
67+
Please try out the release binaries and report any issues at
68+
https://github.com/apache/apisix-ingress-controller/issues.
69+
70+
### Contributors
71+
72+
* AlinsRan
73+
* Ashing Zheng
74+
* Traky Deng
75+
76+
### Changes
77+
<details><summary>14 commits</summary>
78+
<p>
79+
80+
* [`66c2b0a`](https://github.com/apache/apisix-ingress-controller/commit/66c2b0acf14fc13f461e5f262753bdc0598f5d1a) fix: full sync during restart results in loss of dataplane traffic (#2489)
81+
* [`f6196ff`](https://github.com/apache/apisix-ingress-controller/commit/f6196ff50c20d0564b79179f668673e9b5582c7d) chore: differentiate the API versions for CRD testing (#2492)
82+
* [`7a6151c`](https://github.com/apache/apisix-ingress-controller/commit/7a6151ce2f175717637ac95418a050191a58ad61) feat: support event triggered synchronization (#2478)
83+
* [`38023b2`](https://github.com/apache/apisix-ingress-controller/commit/38023b272c45a142cb46c95733f3585ce4495636) fix: doc broken links (#2490)
84+
* [`7ede0e3`](https://github.com/apache/apisix-ingress-controller/commit/7ede0e3aa3c10e8541b5df5b0e2a95d3fe93e16d) docs: update getting started docs (RC2) (#2481)
85+
* [`eb7a65b`](https://github.com/apache/apisix-ingress-controller/commit/eb7a65b31036629eb97ebc73001982296ad10f6b) chore: update status only when changes occur (#2473)
86+
* [`f02e350`](https://github.com/apache/apisix-ingress-controller/commit/f02e35086f1cf647dff04b5492b2511c0aab1af0) docs: fix description error in upgrade doc (#2440)
87+
* [`94fcceb`](https://github.com/apache/apisix-ingress-controller/commit/94fcceb78ad816b0e07a5d8a0f18097318262b8e) feat: support custom metrics (#2480)
88+
* [`1156414`](https://github.com/apache/apisix-ingress-controller/commit/1156414fc1b8de6b29009059ecd58749454548ee) fix: remove duplicate sync func (#2476)
89+
* [`f536c26`](https://github.com/apache/apisix-ingress-controller/commit/f536c26c918e42b4de416eda1c4ffa95e9937a55) chore: refactor e2e-test (#2467)
90+
* [`4745958`](https://github.com/apache/apisix-ingress-controller/commit/4745958edf3d7a62155d51acabbb80f288f3982b) fix: route names with the same prefix were mistakenly deleted (#2472)
91+
* [`2b9b787`](https://github.com/apache/apisix-ingress-controller/commit/2b9b787a9397ed9348ccfa9eb8d568acc671f6fd) fix: should not return when service type is ExternalName (#2468)
92+
* [`d91a3ba`](https://github.com/apache/apisix-ingress-controller/commit/d91a3ba9946bd3206d78588d3e29e1a22d5a66fd) doc: recommended to use apisix-standalone mode for installation. (#2470)
93+
* [`0a4e05c`](https://github.com/apache/apisix-ingress-controller/commit/0a4e05c009e4786e36c896666c3a5ffb40112aca) chore(ci): remove add-pr-comment step (#2463)
94+
</p>
95+
</details>
96+
97+
### Dependency Changes
98+
99+
* **filippo.io/edwards25519** v1.1.0 **_new_**
100+
* **github.com/aws/aws-sdk-go-v2** v1.32.5 **_new_**
101+
* **github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream** v1.6.7 **_new_**
102+
* **github.com/aws/aws-sdk-go-v2/config** v1.28.5 **_new_**
103+
* **github.com/aws/aws-sdk-go-v2/credentials** v1.17.46 **_new_**
104+
* **github.com/aws/aws-sdk-go-v2/feature/ec2/imds** v1.16.20 **_new_**
105+
* **github.com/aws/aws-sdk-go-v2/feature/s3/manager** v1.17.41 **_new_**
106+
* **github.com/aws/aws-sdk-go-v2/internal/configsources** v1.3.24 **_new_**
107+
* **github.com/aws/aws-sdk-go-v2/internal/endpoints/v2** v2.6.24 **_new_**
108+
* **github.com/aws/aws-sdk-go-v2/internal/ini** v1.8.1 **_new_**
109+
* **github.com/aws/aws-sdk-go-v2/internal/v4a** v1.3.24 **_new_**
110+
* **github.com/aws/aws-sdk-go-v2/service/acm** v1.30.6 **_new_**
111+
* **github.com/aws/aws-sdk-go-v2/service/autoscaling** v1.51.0 **_new_**
112+
* **github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs** v1.44.0 **_new_**
113+
* **github.com/aws/aws-sdk-go-v2/service/dynamodb** v1.37.1 **_new_**
114+
* **github.com/aws/aws-sdk-go-v2/service/ec2** v1.193.0 **_new_**
115+
* **github.com/aws/aws-sdk-go-v2/service/ecr** v1.36.6 **_new_**
116+
* **github.com/aws/aws-sdk-go-v2/service/ecs** v1.52.0 **_new_**
117+
* **github.com/aws/aws-sdk-go-v2/service/iam** v1.38.1 **_new_**
118+
* **github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding** v1.12.1 **_new_**
119+
* **github.com/aws/aws-sdk-go-v2/service/internal/checksum** v1.4.5 **_new_**
120+
* **github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery** v1.10.5 **_new_**
121+
* **github.com/aws/aws-sdk-go-v2/service/internal/presigned-url** v1.12.5 **_new_**
122+
* **github.com/aws/aws-sdk-go-v2/service/internal/s3shared** v1.18.5 **_new_**
123+
* **github.com/aws/aws-sdk-go-v2/service/kms** v1.37.6 **_new_**
124+
* **github.com/aws/aws-sdk-go-v2/service/lambda** v1.69.0 **_new_**
125+
* **github.com/aws/aws-sdk-go-v2/service/rds** v1.91.0 **_new_**
126+
* **github.com/aws/aws-sdk-go-v2/service/route53** v1.46.2 **_new_**
127+
* **github.com/aws/aws-sdk-go-v2/service/s3** v1.69.0 **_new_**
128+
* **github.com/aws/aws-sdk-go-v2/service/secretsmanager** v1.34.6 **_new_**
129+
* **github.com/aws/aws-sdk-go-v2/service/sns** v1.33.6 **_new_**
130+
* **github.com/aws/aws-sdk-go-v2/service/sqs** v1.37.1 **_new_**
131+
* **github.com/aws/aws-sdk-go-v2/service/ssm** v1.56.0 **_new_**
132+
* **github.com/aws/aws-sdk-go-v2/service/sso** v1.24.6 **_new_**
133+
* **github.com/aws/aws-sdk-go-v2/service/ssooidc** v1.28.5 **_new_**
134+
* **github.com/aws/aws-sdk-go-v2/service/sts** v1.33.1 **_new_**
135+
* **github.com/aws/smithy-go** v1.22.1 **_new_**
136+
* **github.com/cpuguy83/go-md2man/v2** v2.0.4 -> v2.0.5
137+
* **github.com/go-sql-driver/mysql** v1.7.1 -> v1.8.1
138+
* **github.com/gruntwork-io/terratest** v0.47.0 -> v0.50.0
139+
* **github.com/jackc/pgpassfile** v1.0.0 **_new_**
140+
* **github.com/jackc/pgservicefile** 5a60cdf6a761 **_new_**
141+
* **github.com/jackc/pgx/v5** v5.7.1 **_new_**
142+
* **github.com/jackc/puddle/v2** v2.2.2 **_new_**
143+
* **github.com/pquerna/otp** v1.2.0 -> v1.4.0
144+
* **github.com/stretchr/testify** v1.9.0 -> v1.10.0
145+
* **github.com/urfave/cli** v1.22.14 -> v1.22.16
146+
* **go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp** v0.53.0 -> v0.54.0
147+
* **go.opentelemetry.io/otel** v1.28.0 -> v1.29.0
148+
* **go.opentelemetry.io/otel/metric** v1.28.0 -> v1.29.0
149+
* **go.opentelemetry.io/otel/sdk** v1.28.0 -> v1.29.0
150+
* **go.opentelemetry.io/otel/trace** v1.28.0 -> v1.29.0
151+
* **golang.org/x/oauth2** v0.21.0 -> v0.24.0
152+
* **golang.org/x/time** v0.5.0 -> v0.8.0
153+
* **google.golang.org/genproto/googleapis/api** ef581f913117 -> dd2ea8efbc28
154+
* **google.golang.org/genproto/googleapis/rpc** f6361c86f094 -> dd2ea8efbc28
155+
* **google.golang.org/grpc** v1.66.2 -> v1.67.1
156+
* **google.golang.org/protobuf** v1.34.2 -> v1.35.1
157+
158+
Previous release can be found at [2.0.0-rc2](https://github.com/apache/apisix-ingress-controller/releases/tag/2.0.0-rc2)
159+
44160
# 2.0.0-rc2
45161

46162
apisix-ingress-controller 2.0.0-rc2

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
# Image URL to use all building/pushing image targets
1919

20-
VERSION ?= 2.0.0-rc2
20+
VERSION ?= 2.0.0-rc3
2121

2222
RELEASE_SRC = apache-apisix-ingress-controller-${VERSION}-src
2323

internal/controller/apisixconsumer_controller.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import (
3939
apiv2 "github.com/apache/apisix-ingress-controller/api/v2"
4040
"github.com/apache/apisix-ingress-controller/internal/controller/indexer"
4141
"github.com/apache/apisix-ingress-controller/internal/controller/status"
42+
"github.com/apache/apisix-ingress-controller/internal/manager/readiness"
4243
"github.com/apache/apisix-ingress-controller/internal/provider"
4344
"github.com/apache/apisix-ingress-controller/internal/utils"
4445
)
@@ -51,10 +52,12 @@ type ApisixConsumerReconciler struct {
5152

5253
Provider provider.Provider
5354
Updater status.Updater
55+
Readier readiness.ReadinessManager
5456
}
5557

5658
// Reconcile FIXME: implement the reconcile logic (For now, it dose nothing other than directly accepting)
5759
func (r *ApisixConsumerReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
60+
defer r.Readier.Done(&apiv2.ApisixConsumer{}, req.NamespacedName)
5861
r.Log.Info("reconcile", "request", req.NamespacedName)
5962

6063
ac := &apiv2.ApisixConsumer{}

internal/controller/apisixglobalrule_controller.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import (
3838
"github.com/apache/apisix-ingress-controller/internal/controller/config"
3939
"github.com/apache/apisix-ingress-controller/internal/controller/indexer"
4040
"github.com/apache/apisix-ingress-controller/internal/controller/status"
41+
"github.com/apache/apisix-ingress-controller/internal/manager/readiness"
4142
"github.com/apache/apisix-ingress-controller/internal/provider"
4243
"github.com/apache/apisix-ingress-controller/internal/utils"
4344
)
@@ -49,10 +50,13 @@ type ApisixGlobalRuleReconciler struct {
4950
Log logr.Logger
5051
Provider provider.Provider
5152
Updater status.Updater
53+
54+
Readier readiness.ReadinessManager
5255
}
5356

5457
// Reconcile implements the reconciliation logic for ApisixGlobalRule
5558
func (r *ApisixGlobalRuleReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
59+
defer r.Readier.Done(&apiv2.ApisixGlobalRule{}, req.NamespacedName)
5660
var globalRule apiv2.ApisixGlobalRule
5761
if err := r.Get(ctx, req.NamespacedName, &globalRule); err != nil {
5862
if client.IgnoreNotFound(err) == nil {

internal/controller/apisixroute_controller.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import (
4444
apiv2 "github.com/apache/apisix-ingress-controller/api/v2"
4545
"github.com/apache/apisix-ingress-controller/internal/controller/indexer"
4646
"github.com/apache/apisix-ingress-controller/internal/controller/status"
47+
"github.com/apache/apisix-ingress-controller/internal/manager/readiness"
4748
"github.com/apache/apisix-ingress-controller/internal/provider"
4849
"github.com/apache/apisix-ingress-controller/internal/types"
4950
"github.com/apache/apisix-ingress-controller/internal/utils"
@@ -57,6 +58,7 @@ type ApisixRouteReconciler struct {
5758
Log logr.Logger
5859
Provider provider.Provider
5960
Updater status.Updater
61+
Readier readiness.ReadinessManager
6062
}
6163

6264
// SetupWithManager sets up the controller with the Manager.
@@ -97,6 +99,7 @@ func (r *ApisixRouteReconciler) SetupWithManager(mgr ctrl.Manager) error {
9799
}
98100

99101
func (r *ApisixRouteReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
102+
defer r.Readier.Done(&apiv2.ApisixRoute{}, req.NamespacedName)
100103
var ar apiv2.ApisixRoute
101104
if err := r.Get(ctx, req.NamespacedName, &ar); err != nil {
102105
if client.IgnoreNotFound(err) == nil {

internal/controller/apisixtls_controller.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import (
3939
"github.com/apache/apisix-ingress-controller/internal/controller/config"
4040
"github.com/apache/apisix-ingress-controller/internal/controller/indexer"
4141
"github.com/apache/apisix-ingress-controller/internal/controller/status"
42+
"github.com/apache/apisix-ingress-controller/internal/manager/readiness"
4243
"github.com/apache/apisix-ingress-controller/internal/provider"
4344
"github.com/apache/apisix-ingress-controller/internal/utils"
4445
)
@@ -50,6 +51,7 @@ type ApisixTlsReconciler struct {
5051
Log logr.Logger
5152
Provider provider.Provider
5253
Updater status.Updater
54+
Readier readiness.ReadinessManager
5355
}
5456

5557
// SetupWithManager sets up the controller with the Manager.
@@ -85,6 +87,7 @@ func (r *ApisixTlsReconciler) SetupWithManager(mgr ctrl.Manager) error {
8587

8688
// Reconcile implements the reconciliation logic for ApisixTls
8789
func (r *ApisixTlsReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
90+
defer r.Readier.Done(&apiv2.ApisixTls{}, req.NamespacedName)
8891
var tls apiv2.ApisixTls
8992
if err := r.Get(ctx, req.NamespacedName, &tls); err != nil {
9093
if client.IgnoreNotFound(err) == nil {

internal/controller/consumer_controller.go

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import (
3838
"github.com/apache/apisix-ingress-controller/api/v1alpha1"
3939
"github.com/apache/apisix-ingress-controller/internal/controller/indexer"
4040
"github.com/apache/apisix-ingress-controller/internal/controller/status"
41+
"github.com/apache/apisix-ingress-controller/internal/manager/readiness"
4142
"github.com/apache/apisix-ingress-controller/internal/provider"
4243
"github.com/apache/apisix-ingress-controller/internal/utils"
4344
)
@@ -51,6 +52,7 @@ type ConsumerReconciler struct { //nolint:revive
5152
Provider provider.Provider
5253

5354
Updater status.Updater
55+
Readier readiness.ReadinessManager
5456
}
5557

5658
// SetupWithManager sets up the controller with the Manager.
@@ -181,6 +183,7 @@ func (r *ConsumerReconciler) listConsumersForGatewayProxy(ctx context.Context, o
181183
}
182184

183185
func (r *ConsumerReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
186+
defer r.Readier.Done(&v1alpha1.Consumer{}, req.NamespacedName)
184187
consumer := new(v1alpha1.Consumer)
185188
if err := r.Get(ctx, req.NamespacedName, consumer); err != nil {
186189
if client.IgnoreNotFound(err) == nil {
@@ -303,31 +306,5 @@ func (r *ConsumerReconciler) checkGatewayRef(object client.Object) bool {
303306
if !ok {
304307
return false
305308
}
306-
if consumer.Spec.GatewayRef.Name == "" {
307-
return false
308-
}
309-
if consumer.Spec.GatewayRef.Kind != nil && *consumer.Spec.GatewayRef.Kind != KindGateway {
310-
return false
311-
}
312-
if consumer.Spec.GatewayRef.Group != nil && *consumer.Spec.GatewayRef.Group != gatewayv1.GroupName {
313-
return false
314-
}
315-
ns := consumer.GetNamespace()
316-
if consumer.Spec.GatewayRef.Namespace != nil {
317-
ns = *consumer.Spec.GatewayRef.Namespace
318-
}
319-
gateway := &gatewayv1.Gateway{}
320-
if err := r.Get(context.Background(), client.ObjectKey{
321-
Name: consumer.Spec.GatewayRef.Name,
322-
Namespace: ns,
323-
}, gateway); err != nil {
324-
r.Log.Error(err, "failed to get gateway", "gateway", consumer.Spec.GatewayRef.Name)
325-
return false
326-
}
327-
gatewayClass := &gatewayv1.GatewayClass{}
328-
if err := r.Get(context.Background(), client.ObjectKey{Name: string(gateway.Spec.GatewayClassName)}, gatewayClass); err != nil {
329-
r.Log.Error(err, "failed to get gateway class", "gateway", gateway.GetName(), "gatewayclass", gateway.Spec.GatewayClassName)
330-
return false
331-
}
332-
return matchesController(string(gatewayClass.Spec.ControllerName))
309+
return MatchConsumerGatewayRef(context.Background(), r.Client, r.Log, consumer)
333310
}

internal/controller/httproute_controller.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import (
4848
"github.com/apache/apisix-ingress-controller/api/v1alpha1"
4949
"github.com/apache/apisix-ingress-controller/internal/controller/indexer"
5050
"github.com/apache/apisix-ingress-controller/internal/controller/status"
51+
"github.com/apache/apisix-ingress-controller/internal/manager/readiness"
5152
"github.com/apache/apisix-ingress-controller/internal/provider"
5253
"github.com/apache/apisix-ingress-controller/internal/types"
5354
"github.com/apache/apisix-ingress-controller/internal/utils"
@@ -65,6 +66,7 @@ type HTTPRouteReconciler struct { //nolint:revive
6566
genericEvent chan event.GenericEvent
6667

6768
Updater status.Updater
69+
Readier readiness.ReadinessManager
6870
}
6971

7072
// SetupWithManager sets up the controller with the Manager.
@@ -130,6 +132,7 @@ func (r *HTTPRouteReconciler) SetupWithManager(mgr ctrl.Manager) error {
130132
}
131133

132134
func (r *HTTPRouteReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
135+
defer r.Readier.Done(&gatewayv1.HTTPRoute{}, req.NamespacedName)
133136
hr := new(gatewayv1.HTTPRoute)
134137
if err := r.Get(ctx, req.NamespacedName, hr); err != nil {
135138
if client.IgnoreNotFound(err) == nil {

internal/controller/indexer/indexer.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ const (
4747
GatewayClassIndexRef = "gatewayClassRef"
4848
ApisixUpstreamRef = "apisixUpstreamRef"
4949
PluginConfigIndexRef = "pluginConfigRefs"
50+
ControllerName = "controllerName"
5051
)
5152

5253
func SetupIndexer(mgr ctrl.Manager) error {
@@ -59,11 +60,11 @@ func SetupIndexer(mgr ctrl.Manager) error {
5960
setupIngressClassIndexer,
6061
setupGatewayProxyIndexer,
6162
setupGatewaySecretIndex,
62-
setupGatewayClassIndexer,
6363
setupApisixRouteIndexer,
6464
setupApisixPluginConfigIndexer,
6565
setupApisixTlsIndexer,
6666
setupApisixConsumerIndexer,
67+
setupGatewayClassIndexer,
6768
} {
6869
if err := setup(mgr); err != nil {
6970
return err
@@ -81,6 +82,17 @@ func setupGatewayIndexer(mgr ctrl.Manager) error {
8182
); err != nil {
8283
return err
8384
}
85+
86+
if err := mgr.GetFieldIndexer().IndexField(
87+
context.Background(),
88+
&gatewayv1.Gateway{},
89+
GatewayClassIndexRef,
90+
func(obj client.Object) (requests []string) {
91+
return []string{string(obj.(*gatewayv1.Gateway).Spec.GatewayClassName)}
92+
},
93+
); err != nil {
94+
return err
95+
}
8496
return nil
8597
}
8698

@@ -273,10 +285,10 @@ func setupGatewaySecretIndex(mgr ctrl.Manager) error {
273285
func setupGatewayClassIndexer(mgr ctrl.Manager) error {
274286
return mgr.GetFieldIndexer().IndexField(
275287
context.Background(),
276-
&gatewayv1.Gateway{},
277-
GatewayClassIndexRef,
278-
func(obj client.Object) (requests []string) {
279-
return []string{string(obj.(*gatewayv1.Gateway).Spec.GatewayClassName)}
288+
&gatewayv1.GatewayClass{},
289+
ControllerName,
290+
func(obj client.Object) []string {
291+
return []string{string(obj.(*gatewayv1.GatewayClass).Spec.ControllerName)}
280292
},
281293
)
282294
}

internal/controller/ingress_controller.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import (
4545
"github.com/apache/apisix-ingress-controller/api/v1alpha1"
4646
"github.com/apache/apisix-ingress-controller/internal/controller/indexer"
4747
"github.com/apache/apisix-ingress-controller/internal/controller/status"
48+
"github.com/apache/apisix-ingress-controller/internal/manager/readiness"
4849
"github.com/apache/apisix-ingress-controller/internal/provider"
4950
"github.com/apache/apisix-ingress-controller/internal/utils"
5051
)
@@ -59,6 +60,7 @@ type IngressReconciler struct { //nolint:revive
5960
genericEvent chan event.GenericEvent
6061

6162
Updater status.Updater
63+
Readier readiness.ReadinessManager
6264
}
6365

6466
// SetupWithManager sets up the controller with the Manager.
@@ -117,6 +119,7 @@ func (r *IngressReconciler) SetupWithManager(mgr ctrl.Manager) error {
117119

118120
// Reconcile handles the reconciliation of Ingress resources
119121
func (r *IngressReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
122+
defer r.Readier.Done(&networkingv1.Ingress{}, req.NamespacedName)
120123
ingress := new(networkingv1.Ingress)
121124
if err := r.Get(ctx, req.NamespacedName, ingress); err != nil {
122125
if client.IgnoreNotFound(err) == nil {

0 commit comments

Comments
 (0)