Skip to content

Conversation

@hemantavi
Copy link
Contributor

Fixes AV-113235
Currently, if AMKO is unable to reach the controller because of a network
issue while validating the references in a GSLBHostRule, it doesn't
retry or reconcile even after the network issue is fixed. A reconcilation
may also be required if the user provides a non-existent reference, but
the user creates the reference later.

This PR introduces a retry queue for the ingestion layer. Currently, it
will only be used for GSLBHostRule objects. It functions like the slow
retry queue, but at the end of the tiner expiry, it makes a decision
to call add/update the GSLBHostRule based on the key that's pushed.

Decision to retry: A retry decision is made for all cases for an object
reference check, except for non-federated objects.

Fixes AV-113235
Currently, if AMKO is unable to reach the controller because of a network
issue while validating the references in a `GSLBHostRule`, it doesn't
retry or reconcile even after the network issue is fixed. A reconcilation
may also be required if the user provides a non-existent reference, but
the user creates the reference later.

This PR introduces a retry queue for the ingestion layer. Currently, it
will only be used for `GSLBHostRule` objects. It functions like the slow
retry queue, but at the end of the tiner expiry, it makes a decision
to call add/update the `GSLBHostRule` based on the key that's pushed.

Decision to retry: A retry decision is made for all cases for an object
reference check, except for non-federated objects.
if fullSync && isHealthMonitorRefPresentInCache(refName) {
gslbutils.Debugf("health monitor %s present in hm cache", refName)
return true
return nil
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible that the ref is removed from the controller but present in cache ?

case gslbutils.GslbHostRuleType:
ghrObj, err := getGslbHostRule(ns, name)
if err != nil {
gslbutils.Errf("key: %s, msg: error in getting GSLBHostRule object: %v", key, err)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we return error in case of delete too ?

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants