Skip to content

Allow removing individual informers from the Cache #935

@shomron

Description

@shomron

Overview

In a somewhat similar use-case to that described in #863, the Gatekeeper project uses one set of custom resources to describe (and dynamically register) another set of CRDs. Once subordinate CRDs are created, we then use informers to register watches against resources of those types. The set of subordinate resource types change over time.

The existing APIs in controller-runtime do not allow removal of informers once they have been created. To work around this limitation, we have forked the controller-runtime cache.

This issue tracks the effort to upstream our changes in a way that is aligned with the design goals of controller-runtime.

Goals:

  • Enable removal of individual informers from a Cache
  • Support more granular lifecycle management for informers to allow them to be stopped during removal

Non-goals

  • Reference counting of informers

Open questions

  • Should existing interfaces be expanded (Cache, Informers) in a breaking manner, or should new interfaces be introduced?

Metadata

Metadata

Assignees

No one assigned

    Labels

    lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.triage/needs-informationIndicates an issue needs more information in order to work on it.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions