Skip to content

State Sharing #4668

@brianehlert

Description

@brianehlert

Overview

As a user of NGINX Ingress Controller, I would like to ensure that all of my pods are aware of each-others state to ensure constant behaviour when configuring policies such as Rate Limiting

High-level Functional Requirements

  • Provide users with a means to enable and configure state sharing

Definition of Done

Development

  • Unit tests are written to cover functionality delivered in the story.
  • Make sure that the unit test passes before creating a pull request.
  • Make sure that the test coverage stays optimal.
  • Run make lint locally before creating a PR.

Testing

  • Automated tests are written as part of the story.
  • Run “make lint-python“ from root
  • Acceptance criteria are met.
  • Stories are demonstrated to the team.
  • Product Manager accepts the story as done.
  • If a feature requires changes/extensions of the Helm chart, those shall be done as part of the story.

Release Notes & Documentation

  • PR is labeled appropriately so they display in GitHub release notes.


References

Guide on "cluster" ratelimiting (mentions zone_sync and zone for different contexts)

https://www.f5.com/company/blog/nginx/nginx-plus-r16-released#r16-cluster-rate-limiting

NGINX Admin guide on zone_sync for state sharing

https://docs.nginx.com/nginx/admin-guide/high-availability/zone_sync_details/

NGINX stick directive for upstreams

https://nginx.org/en/docs/http/ngx_http_upstream_module.html#sticky

What is zone_sync?

The ngx_stream_zone_sync_module module (1.13. 8) provides the necessary support for synchronizing contents of shared memory zones between nodes of a cluster

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    refinedIssues that are ready to be prioritized

    Type

    Projects

    Status

    Done 🚀

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions