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

Monitoring associated resources #1707

Closed
ruanxin opened this issue Jul 23, 2024 · 1 comment
Closed

Monitoring associated resources #1707

ruanxin opened this issue Jul 23, 2024 · 1 comment
Assignees
Labels
decision Architecture decision record

Comments

@ruanxin
Copy link
Contributor

ruanxin commented Jul 23, 2024

Created on 2024-07-23 by Xin Ruan (@ruanxin)

Decision log

Name Description
Title Monitoring associated resources
Due date 2024-07-30
Status Proposed on 2024-07-23
Decision type Choice
Affected decisions -

Context

In the community modules, we introduced associated resources (a list of CRDs), an example here, with feature requests that Module manager should not be undeployed before any managed resource (including module configuration) still exists.

However it's not clear which component should take care monitoring those associated resources.

Decision:

Choice 1: KLM as a central manager to take care of monitoring associated resources during module disabling.

Prons

  • Centralized Control: KLM can provide a unified approach to monitor and manage all associated resources, ensuring consistency across all modules.
  • Simplified Module Manager Logic: Module Managers do not need to implement their own monitoring logic, reducing complexity.

Cons

  • Increased Complexity for KLM: Adding the responsibility of monitoring associated resources could increase the complexity of KLM, requiring more robust handling and potential performance tuning.
  • Low adaptiveness: At the moment, associated resources are only accepted as CRDs. If the module team has a requirement to monitor a specific CR or certain CRDs shared between modules, it is impossible to resolve at the CRD granularity.

Choice 2: Each individual Module Manager takes care of monitoring associated resources.

With this approach, certain contracts should be established between Module Manager and KLM.

  1. Module Manager implements it's own monitoring logic in the reconciliation loop.
  2. Module Manager takes care of configuring a finalizer into it's Default CR when any associated resources exists.
  3. During module disabling, KLM make sure not delete the Module Manager related resources when Default CR still exists, which is an existing feature of KLM.

Prons

  • Decentralized Control: Each Module Manager is responsible for its own resources, reducing the burden on KLM.
  • Flexible Monitoring Logic: Module Managers can implement more sophisticated monitoring logic as per their own requirements.

Cons

  • Coordination Overhead: Establishing and maintaining contracts between KLM and Module Managers adds an additional layer of coordination.
@ruanxin ruanxin self-assigned this Jul 23, 2024
@ruanxin ruanxin added the decision Architecture decision record label Jul 23, 2024
@ruanxin
Copy link
Contributor Author

ruanxin commented Jul 31, 2024

Decision: We go for Choice 2, each individual Module Manager takes care of monitoring associated resources.

Based on this decision, closed following issue:
#1651
#1568

@ruanxin ruanxin closed this as completed Oct 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
decision Architecture decision record
Projects
None yet
Development

No branches or pull requests

1 participant