-
Notifications
You must be signed in to change notification settings - Fork 303
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
Refactor ingress key function and finalizer into separate package #883
Conversation
Hi @skmatti. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/ok-to-test |
) | ||
|
||
var ( | ||
KeyFunc = cache.DeletionHandlingMetaNamespaceKeyFunc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about we organize it this way:
KeyFunc is used only used to handle items in workqueue
After the initial process of ingress, everything is handled by IngressKeyFunc.
So you do not need the ToIngressKey function as middleman?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The idea is to generate same key as that of Ingress Store and preserve backward compatibility. In theory, both KeyFunc
and IngressKeyFunc
should return same value with a valid Ingress. Some of the edge cases where they output different values is when namespace is empty. KeyFunc
returns <name>
where as IngressKeyFunc
returns /<name>
.
I changed the names a bit so they are less confusing and also added some description about why we need two separate functions as explained here.
pkg/utils/common/common.go
Outdated
KeyFunc = cache.DeletionHandlingMetaNamespaceKeyFunc | ||
) | ||
|
||
// ToString returns ingress key for given ingress. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ToString returns namespaced name string of a given ingress
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
leave it for a 2nd pair of eyes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: MrHohn, skmatti 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 |
Refactors some of ingress key utility functions and finalizer logic to a separate package so these can be accessed by namer package without import cycle. A subsequent PR #860 with utilization of these refactored functions inside namer package.