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

Replaced event queue based watching resources in router with shared informers #16315

Merged

Commits on Sep 29, 2017

  1. Replaced event queue based watching resources in router with shared i…

    …nformers
    
    - Custom shared informer is used to leverage namespace, label and field filtering.
      (Auto generated shared informer does not allow this)
    - Listing resources by shared informers doesn't order by resource version/creation time.
      So custom lister for routes is used to order the route list by creation time and this
      will allow oldest route to be processed before new route to claim the host name.
    - Synchronization with the informer queue and cache is a bit difficult as the cache could
      have newer changes than what was pushed on to the queue. Luckily We only care about the
      first sync to avoid 503 status code for routes.
    - Handling first sync:
      * Informers are started with no registered event handlers
      * Wait for all informers to be synced
      * Block router reload
      * Get list of items from informers store and process manually
      * Perform router reload
      * Register router event handlers
      This guarantees first router sync is performed after processing all existing items.
    - Subsequent router syncs rely on informer syncing sate and uses rate limiter to coalesce changes.
    Ravi Sankar Penta committed Sep 29, 2017
    Configuration menu
    Copy the full SHA
    7b7f5c6 View commit details
    Browse the repository at this point in the history
  2. Deleted eventQueue, no longer used

    Ravi Sankar Penta committed Sep 29, 2017
    Configuration menu
    Copy the full SHA
    74560f7 View commit details
    Browse the repository at this point in the history