Skip to content
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

Use the last transition time to track and assess status conditions #664

Open
leochr opened this issue Dec 9, 2024 · 1 comment
Open
Assignees

Comments

@leochr
Copy link
Member

leochr commented Dec 9, 2024

The unchangedConditionCount field in the status condition can interfere with updating CR, especially at the initial stage when the reconcile interval is 5 seconds. Eventually, it'll only be updated every 120 seconds, but can still be disruptive.

We should consider using the lastTransitionTime instead (if appropriate, otherwise lastUpdateTime) to determine when to increase the reconcileInterval. In some cases, the status condition and lastTransitionTime are not set/updated correctly, so that must be resolved first.

If the above is possible, then we should also support a configuration option to disable .status.reconcileInterval field (i.e. reconcileIntervalHide), so that users are not interrupted by status updates when trying to update CR spec.

@halim-lee
Copy link
Member

halim-lee commented Jan 28, 2025

The tests were run on a large OCP cluster. Average of 10 test sets.

After the code changes:

  • All instances in a single namespace tests:

    • It took 4m50s to fully reconcile 100 instances, all in the same namespace.
    • It took 30s to fully reconcile 1 new instance, with 100 working instances.
    • It took 30s to fully reconcile 1 incorrectly configured instance after it was corrected, with 101 working instances and 9 non-working instances running.
  • Each instance in its own namespace tests:

    • It took 9m21s to fully reconcile 100 instances, each in its own namespace.
    • It took 1m7s minutes to fully reconcile 1 new instance, with 100 working instances.
    • It took 2m29s minutes to fully reconcile 1 wrongly configured instance after it was corrected, with 101 working instances and 9 non-working instances running.

Before the code changes:

  • All instances in a single namespace tests:

    • It took 5m11s to fully reconcile 100 instances, all in the same namespace.
    • It took 2m4s to fully reconcile 1 new instance, with 100 working instances.
    • It took 1m19s to fully reconcile 1 wrongly configured instance after it was corrected, with 101 working instances and 9 non-working instances running.
  • Each instance in its own namespace tests:

    • It took 10m to fully reconcile 100 instances, each in its own namespace.
    • It took 2m17s minutes to fully reconcile 1 new instance, with 100 working instances.
    • It took 2m29s minutes to fully reconcile 1 wrongly configured instance after it was corrected, with 101 working instances and 9 non-working instances running.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants