-
-
Couldn't load subscription status.
- Fork 16
feat!: Add new ListenerClass.pinnedNodePorts field
#1105
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
Conversation
|
What (k8s resources changes) does it result in? Some changes to generated Services or just the generated Listener? |
Actually the |
|
Please vote on this comment |
Co-authored-by: Techassi <git@techassi.dev>
I'm just now wondering if Stickyness is the correct naming. I haven't had time to dig deep, and this is in voting now, so I feel a bit rushed. Is this actual "stickyness" which is typically used to mean directing traffic for the same session to the same instance. This seems more like it's about I feel like the description lacks context and instead links a bunch of things. Are you able to update the description with the missing context? I left a related comment on the PR about the field name and avoiding "sticky"/"stickiness": https://github.com/stackabletech/listener-operator/pull/340/files#r2418860493 |
Good question, I'm no native speaker. The Pod "sticks" to one single node. The Pod is "pinned" to a particular node. Both work for me, I let the native speakers decide 😅 (a.) sounds a bit more natural to me) |
The parent issue stackabletech/issues#770 should hopefully contain all the motivation and details on making the stickiness/pinning configurable. I would prefer to keep one well-maintained issue instead of cluttering things on issues, decisions and PRs. Pls feel free to ask if there are any missing things. |
My point is that the decision ticket could have an executive summary so we don't need to click a link straight away (links are handy for the deeper context). |
|
Added a one-liner, is that sufficient? :) |
My preferences (per comment) are To support that, the top line of the CRD explains:
and the field is a boolean. |
Yes, but these names are for me missing the information that only NodePorts are affected by this property. |
If the pod isn't tied to the node (which I thought it was, until the PVC is deleted), then perhaps |
|
Sure, |
ListenerClass.stickyNodePorts fieldListenerClass.pinningNodePorts field
ListenerClass.pinningNodePorts fieldListenerClass.pinnedNodePorts field
Co-authored-by: Nick <10092581+NickLarsenNZ@users.noreply.github.com>
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
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, good catch
| /// until you delete the PVC with the pinning. | ||
| /// | ||
| /// Because of this we don't enable pinning by default to support all environments. | ||
| #[serde(default)] |
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.
This is a dangerous default. Having it be configurable is one thing (I'd probably still be against it, but my vague opinion doesn't really count for much anymore :p), but unpinned + NodePort should be a big warning sign that you're doing something Weird and are probably using the wrong tool (and about to walk into a rake).
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.
I'm the person who looked at customer issues we had and said "let's change it". To me it sounds totally sane - otherwise I probably wouldn't have asked for this. Can you elaborate what I'm missing?
We've outlined the reasons a bit here: stackabletech/issues#770
And let me close by saying that your opinion does and will count going forward. Thanks for still looking into this. We do have jobs available if you'd like to be paid to work on this ;-)
Description
Part of stackabletech/issues#770
Implementation is in stackabletech/listener-operator#340
Extend ListenerClass CRD with an extra field that allows configuring whether pinning should or should not be used for NodePorts, as this causes problems on (cloud) environments with rotating nodes.
Definition of Done Checklist
Author
Reviewer
Acceptance