Skip to content
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

Epic - Weight changes for backends should not trigger a reload #4404

Closed
brianehlert opened this issue Sep 20, 2023 Discussed in #3741 · 0 comments
Closed

Epic - Weight changes for backends should not trigger a reload #4404

brianehlert opened this issue Sep 20, 2023 Discussed in #3741 · 0 comments
Milestone

Comments

@brianehlert
Copy link
Collaborator

brianehlert commented Sep 20, 2023

Discussed in #3741

Originally posted by brianehlert April 10, 2023
When only the weight is changed for upstreams, such as performing a blue/green or canary - NGINX Plus should not be reloaded.
This is possible through the N+ API just like dynamic upstream configuration.
This idea is described here:
https://www.nginx.com/blog/dynamic-a-b-testing-with-nginx-plus/#Using-the-Key-Value-Store-with-Split-Clients
NGINX Ingress Controller already uses Split Clients to implement the weight feature.

  • Support weights of 0 - 100 (1 - 99 is constraining)
  • make weight changes without reloading
  • Plus exclusive feature (changes without reload)
  • NGINX OSS will still reload on weight change

This work should primarily be about using the NGINX Plus API to apply the weight changes when NGINX Plus is present.
If the deployment is using NGINX OSS then a soft reload should still be required.

This work can be split when delivered

### Tasks
- [ ] https://github.com/nginxinc/kubernetes-ingress/issues/4509
- [ ] https://github.com/nginxinc/kubernetes-ingress/issues/4510
- [x] Investigate use of dynamic split clients module
- [x] Investigate use of NJS modules to add custom JS function for split clients

Aha! Link: https://nginx.aha.io/epics/NIC-E-126

@brianehlert brianehlert added this to the v3.4.0 milestone Sep 20, 2023
@nginx-bot nginx-bot removed the epic label Sep 25, 2023
@danielnginx danielnginx added the epic Issues that need to be broken into smaller issues label Nov 15, 2023
@danielnginx danielnginx changed the title Weight changes for backends should not trigger a reload Epic - Weight changes for backends should not trigger a reload Nov 15, 2023
@brianehlert brianehlert modified the milestones: v3.4.0, v3.5.0 Nov 29, 2023
@brianehlert brianehlert removed the epic Issues that need to be broken into smaller issues label Apr 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants