Description
Bug Report
ERROR [io.jav.ope.pro.eve.ReconciliationDispatcher] (ReconcilerExecutor-projectreconciler-350) Error during event processing ExecutionScope{ resource id: ResourceID{name='testproj', namespace='bschmeli-devjoy-test'}, version: 5000703288} failed.: io.javaoperatorsdk.operator.OperatorException: io.javaoperatorsdk.operator.OperatorException: io.javaoperatorsdk.operator.AggregatedOperatorException: Exception(s) during workflow execution. Details:
- io.devjoy.operator.project.k8s.deploy.ApplicationDependentResource -> java.lang.IllegalArgumentException: There is no event source found for class:io.devjoy.operator.project.k8s.deploy.Application
at io.javaoperatorsdk.operator.processing.event.EventSources.get(EventSources.java:127)
at io.javaoperatorsdk.operator.processing.event.EventSourceManager.getResourceEventSourceFor(EventSourceManager.java:273)
at io.javaoperatorsdk.operator.api.reconciler.DefaultContext.getSecondaryResource(DefaultContext.java:59)
at io.javaoperatorsdk.operator.api.reconciler.Context.getSecondaryResource(Context.java:20)
at io.javaoperatorsdk.operator.processing.dependent.AbstractDependentResource.getSecondaryResource(AbstractDependentResource.java:92)
at io.javaoperatorsdk.operator.processing.dependent.SingleDependentResourceReconciler.delete(SingleDependentResourceReconciler.java:24)
at io.javaoperatorsdk.operator.processing.dependent.AbstractDependentResource.delete(AbstractDependentResource.java:153)
at io.javaoperatorsdk.operator.processing.dependent.workflow.WorkflowCleanupExecutor$CleanupExecutor.doRun(WorkflowCleanupExecutor.java:75)
at io.javaoperatorsdk.operator.processing.dependent.workflow.NodeExecutor.run(NodeExecutor.java:22)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1623)
at io.javaoperatorsdk.operator.processing.Controller.cleanup(Controller.java:212)
at io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleCleanup(ReconciliationDispatcher.java:294)
at io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleDispatch(ReconciliationDispatcher.java:89)
at io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleExecution(ReconciliationDispatcher.java:64)
at io.javaoperatorsdk.operator.processing.event.EventProcessor$ReconcilerExecutor.run(EventProcessor.java:417)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1623)
What did you do?
I created a dependent resource extending CRUDNoGCKubernetesDependentResource
. In addition, I defined an activationCondition for the dependent resource. The resource condition is always true.
I delete the primary resource.
What did you expect to see?
The primary resource should be deleted, the dependent should not be deleted (because not garbage collected).
What did you see instead? Under which circumstances?
The primary resource is stuck in deleting state and I get the exception mentioned above.
Environment
Kubernetes cluster type:
OpenShift 4.13.26
$ Mention java-operator-sdk version from pom.xml file
4.6.1
$ java -version
openjdk version "20.0.1" 2023-04-18
OpenJDK Runtime Environment Temurin-20.0.1+9 (build 20.0.1+9)
OpenJDK 64-Bit Server VM Temurin-20.0.1+9 (build 20.0.1+9, mixed mode)
$ kubectl version
Client Version: v1.28.1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.26.11+7dfc52e
Possible Solution
No
Additional context
No