New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[enhancement] ignore the update events of heartbeat time changed when reconcile node events #14070
Comments
@microyahoo I also see the type is changing with time, which seems right to watch for |
hi @parth-gr, I compared the current and the modified object. The diff is as follows ~ cat current | python3 -m json.tool > current.json
~ cat modified | python3 -m json.tool > modified.json
~ vimdiff current.json modified.json |
Okay then we need to create a custom |
/assign |
Thanks for taking this issue! Let us know if you have any questions! |
parth-gr
added a commit
to parth-gr/rook
that referenced
this issue
May 9, 2024
currently node predicate watches for resourceversion and heartbeat, which are not critical things so we should look for the reconcile logic and unnecessary increasing the predicate cache size, So with the PR we will ignore conidering for a reconcile of cephcluster if updates are not cruical closes: rook#14070 Signed-off-by: parth-gr <paarora@redhat.com>
parth-gr
added a commit
to parth-gr/rook
that referenced
this issue
May 9, 2024
currently node predicate watches for resourceversion and heartbeat, which are not critical things so we should look for the reconcile logic and unnecessary increasing the predicate cache size, So with the PR we will ignore conidering for a reconcile of cephcluster if updates are not cruical closes: rook#14070 Signed-off-by: parth-gr <paarora@redhat.com>
6 tasks
parth-gr
added a commit
to parth-gr/rook
that referenced
this issue
May 9, 2024
currently node predicate watches for resourceversion and heartbeat, which are not critical things so we should look for the reconcile logic and unnecessary increasing the predicate cache size, So with the PR we will ignore conidering for a reconcile of cephcluster if updates are not cruical closes: rook#14070 Signed-off-by: parth-gr <paarora@redhat.com>
parth-gr
added a commit
to parth-gr/rook
that referenced
this issue
May 10, 2024
currently node predicate watches for resourceversion and heartbeat, which are not critical things so we should look for the reconcile logic and unnecessary increasing the predicate cache size, So with the PR we will ignore conidering for a reconcile of cephcluster if updates are not cruical closes: rook#14070 Signed-off-by: parth-gr <paarora@redhat.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Is this a bug report or feature request?
I consider this an enhancement more than a bug report.
I deployed a new cluster and found ceph cluster predicate for node watcher periodically prints
networkfences.csiaddons.openshift.io CRD not found, skip creating networkFence
. The predicate function watch the node events to trigger reconcile, then controller-runtime client handles node failure whenROOK_WATCH_FOR_NODE_FAILURE
env set to true. The log will be pop up if networkfences csiaddons CRDs not found.In order to figure out why the update event keeps being triggered and the
handleNodeFailure
method is called periodically, I hacked the code to print out the diff ofObjectNew
andObjectOld
, and found that when the cluster is stable, the update is only the resource version and heartbeat time. Therefore, my question is, can we ignore this kind of event in the update event and only handle the real node failure or other changed events.Deviation from expected behavior:
Expected behavior:
How to reproduce it (minimal and precise):
File(s) to submit:
cluster.yaml
, if necessaryLogs to submit:
Operator's logs, if necessary
Crashing pod(s) logs, if necessary
To get logs, use
kubectl -n <namespace> logs <pod name>
When pasting logs, always surround them with backticks or use the
insert code
button from the Github UI.Read GitHub documentation if you need help.
Cluster Status to submit:
Output of kubectl commands, if necessary
To get the health of the cluster, use
kubectl rook-ceph health
To get the status of the cluster, use
kubectl rook-ceph ceph status
For more details, see the Rook kubectl Plugin
Environment:
uname -a
):rook version
inside of a Rook Pod):ceph -v
):kubectl version
):ceph health
in the Rook Ceph toolbox):The text was updated successfully, but these errors were encountered: