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
dns: Don't hotloop on updates to DNSRecord status #484
dns: Don't hotloop on updates to DNSRecord status #484
Conversation
Seems like the predicate filtered out delete events?! At least I'm not seeing any "deleted dnsrecord" log messages in https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openshift_cluster-ingress-operator/484/pull-ci-openshift-cluster-ingress-operator-master-e2e-aws-operator/1323382581768491008/artifacts/e2e-aws-operator/pods/openshift-ingress-operator_ingress-operator-687f7b4fbb-q5d94_ingress-operator.log. |
02e893b
to
26e14ce
Compare
Latest push uses |
Add a predicate to the DNS controller's watch on DNSRecords so that only updates a DNSRecord's spec triggers reconciliation (and updates to its status do not). Before this commit, one reconciliation could update the DNSRecord's status and trigger a second reconciliation. In the case of a successful update, the second reconciliation would have no work to do, so it would complete without triggering a third reconciliation. In the case of a failed update, the second reconciliation would retry the update. If retrying the update then failed, the second reconciliation could update the DNSRecord's status to record the new failure, triggering a third reconciliation, which could similarly trigger a fourth reconciliation, and so on ad infinitum. * pkg/operator/controller/dns/controller.go (New): Add a predicate to the watch on DNSRecords to ignore updates to status.
26e14ce
to
1761341
Compare
Thanks, lgtm although there are some assumptions baked into that predicate to consider:
hopefully regression testing would reveal any possible sync issue here. |
/test e2e-aws-operator |
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: Miciah, sgreene570 The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/retest Please review the full test history for this PR and help us cut down flakes. |
9 similar comments
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
/retest Please review the full test history for this PR and help us cut down flakes. |
Add a predicate to the DNS controller's watch on
DNSRecords
so that only updates aDNSRecord's
spec triggers reconciliation (and updates to its status do not).Before this change, one reconciliation could update the
DNSRecord's
status and trigger a second reconciliation. In the case of a successful update, the second reconciliation would have no work to do, so it would complete without triggering a third reconciliation. In the case of a failed update, the second reconciliation would retry the update. If retrying the update then failed, the second reconciliation could update theDNSRecord's
status to record the new failure, triggering a third reconciliation, which could similarly trigger a fourth reconciliation, and so on ad infinitum.pkg/operator/controller/dns/controller.go
(New
): Add a predicate to the watch onDNSRecords
to ignore updates to status.@ironcladlou