Method Reconciler#reconcile is not triggered when resource is deleted.
维护者通常 1 天内回复
@xstefank 已经在做这个了。
开始于 2026年9月21日。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 55/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- java, kubernetes
- 领域
- devops, infrastructure
调研方向
使用提供的 MyResourceReconciler 和 ControllerConfiguration 重现问题,然后针对删除事件跟踪事件处理路径,直到 Reconciler#reconcile。完成标准是删除会触发带有 context.isPrimaryResourceDeleted() true 的 reconcile,同时创建和更新行为保持不变;如果找到相关的事件处理测试,则添加或更新覆盖范围。
由索引模型根据 Issue 内容生成。
描述
Bug Report
I wanted to create metric exporter for certain resource type.
For this I implemented Reconciler with triggerReconcilerOnAllEvents enabled (introducerd in JOSDK 5.2) to receive all events (create, update and delete).
Method Reconciler#reconcile is not triggered when resource is deleted.
What did you do?
@ControllerConfiguration(triggerReconcilerOnAllEvents = true, generationAwareEventProcessing = false)
public class MyResourceReconciler implements Reconciler<MyResource>{
private static final Logger LOG = Logger.getLogger(MyResourceReconciler.class);
@Override
public UpdateControl<MyResource> reconcile(MyResource resource, Context<MyResource> context) throws Exception {
LOG.infof("Resource %s/%s event", resource.getMetadata().getNamespace(), resource.getMetadata().getName());
if(context.isPrimaryResourceDeleted()){
LOG.infof("deleted");
return UpdateControl.noUpdate();
}
LOG.infof("created/updated");
return UpdateControl.noUpdate();
}
}
What did you expect to see?
When I create, update and delete resource I expected to see in logs:
INFO [com.test.MyResourceReconciler] (ReconcilerExecutor-myresourcereconciler-92) Resource mynamespace/myresource event
INFO [com.test.MyResourceReconciler] (ReconcilerExecutor-myresourcereconciler-92) created/updated
INFO [com.test.MyResourceReconciler] (ReconcilerExecutor-myresourcereconciler-93) Resource mynamespace/myresource event
INFO [com.test.MyResourceReconciler] (ReconcilerExecutor-myresourcereconciler-93) created/updated
INFO [com.test.MyResourceReconciler] (ReconcilerExecutor-myresourcereconciler-93) Resource mynamespace/myresource event
INFO [com.test.MyResourceReconciler] (ReconcilerExecutor-myresourcereconciler-93) deleted
What did you see instead? Under which circumstances?
When I create, update and delete resource I see in logs:
INFO [com.test.MyResourceReconciler] (ReconcilerExecutor-myresourcereconciler-92) Resource mynamespace/myresource event
INFO [com.test.MyResourceReconciler] (ReconcilerExecutor-myresourcereconciler-92) created/updated
INFO [com.test.MyResourceReconciler] (ReconcilerExecutor-myresourcereconciler-93) Resource mynamespace/myresource event
INFO [com.test.MyResourceReconciler] (ReconcilerExecutor-myresourcereconciler-93) created/updated
Environment
Kubernetes cluster type:
OpenShift 4.19.43
$ Mention java-operator-sdk version from pom.xml file
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.quarkus.platform</groupId>
<artifactId>quarkus-bom</artifactId>
<version>3.39.3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.quarkus.platform</groupId>
<artifactId>quarkus-operator-sdk-bom</artifactId>
<version>3.39.3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependency>
<groupId>io.quarkiverse.operatorsdk</groupId>
<artifactId>quarkus-operator-sdk</artifactId>
</dependency>
resolves to: io.javaoperatorsdk:operator-framework-core:5.5.0
$ java -version
openjdk version "25.0.4.1" 2026-08-18 LTS
OpenJDK Runtime Environment Temurin-25.0.4.1+1 (build 25.0.4.1+1-LTS)
OpenJDK 64-Bit Server VM Temurin-25.0.4.1+1 (build 25.0.4.1+1-LTS, mixed mode, sharing)
$ kubectl version
Client Version: 4.19.0-202608112108.p2.gb2a93a6.assembly.stream.el9-b2a93a6
Kustomize Version: v5.5.0
Kubernetes Version: v1.32.13
Additional context
- resources does not have finalizers
- adding defaultFilters = false to ControllerConfiguration did not helped
- 主要语言
- Java
- 星标
- 943
- 派生
- 245
- 平均合并
- 2 天 58 分钟
- 30 天内合并 PR
- 46
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
operator-framework/java-operator-sdk 的其他 Issue
-
难度 4/5 3-5 天 新手友好度 45/100
operator-framework/java-operator-sdk#3568 · 1 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 25/100
operator-framework/java-operator-sdk#3563 ·
维护者通常 1 天内回复
-
Support for Virtual Threads可能已有人在做 @xstefank 于 52 天前认领。 未关闭
operator-framework/java-operator-sdk#3538 · 2 条评论 · 已指派 2 人 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 25/100
operator-framework/java-operator-sdk#3498 · 1 个 reaction ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 35/100
operator-framework/java-operator-sdk#3452 ·
维护者通常 1 天内回复
查看 operator-framework/java-operator-sdk 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 90/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 65/100
aoqia194/leaf-loader#19 ·
-
难度 2/5 1-3 小时 新手友好度 84/100
apache/streampark#4521 ·
-
0 - Backlog 1 - Ready documentation good first issue help wanted
难度 2/5 1-3 小时 新手友好度 78/100
-
cbor
难度 2/5 1-3 小时 新手友好度 84/100
FasterXML/jackson-dataformats-binary#844 ·
维护者通常 1 天内回复