Description
Hi,
Thanks for creating the operator :)
We want to start using the operator in production, but during testing we found that the operator generated roughly 50% of the log volume on our test cluster. I worked with Claude to create a reproduction test with envtest, as well as implementing a fix. Claude wrote most of the code, but I have reviewed and tested it in our dev environment.
I have a PR stack with a fix for this plus a few other fixes I found, at birksl#15 if it is of interest. The PR descriptions contain further root cause analysis.
I believe we experienced the issue because our postgres and clickhouse secrets contained unexpected characters and paths, which langfuse itself is happy to consume, but the operator probes fail on. That is likely what led to the status conflicts since the probes report unhealthy but langfuse itself was running fine.
Steps to Reproduce
This branch adds an envtest test for reproducing the reconcile churn: https://github.com/birksl/langfuse-operator/tree/repro/reconcile-churn
Run make test after checking out the branch. The run takes ~100s and will report 600+ reconciliations over a 15s span.
Expected Behavior
I expect the controller to set a status explaining why it couldn't reconcile my instance.
Actual Behavior
A flood of identical logs going through all the reconciliation steps over and over again.
Environment
- Project version: v0.10.0
- OS: talos 1.12.6
- Kubernetes: v1.34.6
- Deployment method: Helm via fluxcd HelmRelease
Additional Context
My initial fix was to stop the reconciliation from churning due to status conflict. A second wave of fixes was to make the probes mimic langfuses behavior, or more clearly report why a probe failed.
Description
Hi,
Thanks for creating the operator :)
We want to start using the operator in production, but during testing we found that the operator generated roughly 50% of the log volume on our test cluster. I worked with Claude to create a reproduction test with envtest, as well as implementing a fix. Claude wrote most of the code, but I have reviewed and tested it in our dev environment.
I have a PR stack with a fix for this plus a few other fixes I found, at birksl#15 if it is of interest. The PR descriptions contain further root cause analysis.
I believe we experienced the issue because our postgres and clickhouse secrets contained unexpected characters and paths, which langfuse itself is happy to consume, but the operator probes fail on. That is likely what led to the status conflicts since the probes report unhealthy but langfuse itself was running fine.
Steps to Reproduce
This branch adds an envtest test for reproducing the reconcile churn: https://github.com/birksl/langfuse-operator/tree/repro/reconcile-churn
Run
make testafter checking out the branch. The run takes ~100s and will report 600+ reconciliations over a 15s span.Expected Behavior
I expect the controller to set a status explaining why it couldn't reconcile my instance.
Actual Behavior
A flood of identical logs going through all the reconciliation steps over and over again.
Environment
Additional Context
My initial fix was to stop the reconciliation from churning due to status conflict. A second wave of fixes was to make the probes mimic langfuses behavior, or more clearly report why a probe failed.