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

Simplify State Management RFC #35

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Conversation

Pothulapati
Copy link
Contributor

@Pothulapati Pothulapati commented Aug 25, 2020

Rendered RFC

Summary

Currently, Linkerd state in the linkerd-config ConfigMap as flags parsed from installOptions.
This has become counter intuitive after we added Helm support as Values struct
became our main source of truth (for rendering, etc), and causing back and forth
conversions between installOptions and Values. This RFC aims to remove the
unnecessary complexity in managing state and simplify things.

Problem Statement (Step 1)

Currently, linkerd-config configMap is not only used for upgrades but also by
multiple components like Proxy Injector, CLI, etc to understand the current
cluster/linkerd state. This has the following problems:

  • Lots of code debt/confusion to support the conversions between installOptions
    and Values.
  • As Values is not the source of truth, hacks had to be/being
    made to make state (outside of flags, etc) to be stored and retrieved.
  • No clear definition on which components use what configurations.

Signed-off-by: Tarun Pothulapati tarunpothulapati@outlook.com

Signed-off-by: Tarun Pothulapati <tarunpothulapati@outlook.com>
Signed-off-by: Tarun Pothulapati <tarunpothulapati@outlook.com>
Signed-off-by: Tarun Pothulapati <tarunpothulapati@outlook.com>
design/0005-simplify-state-management.md Show resolved Hide resolved
design/0005-simplify-state-management.md Show resolved Hide resolved
design/0005-simplify-state-management.md Outdated Show resolved Hide resolved
Comment on lines +16 to +20
Currently, Linkerd state in the `linkerd-config` ConfigMap as flags parsed from `installOptions`.
This has become counter intuitive after we added Helm support as `Values` struct
became our main source of truth (for rendering, etc), and causing back and forth
conversions between `installOptions` and `Values`. This RFC aims to remove the
unnecessary complexity in managing state and simplify things.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's worth framing the problem at first a little less technically, clarifying that the goal is to simplify state management for upgrades

Signed-off-by: Tarun Pothulapati <tarunpothulapati@outlook.com>
@olix0r
Copy link
Member

olix0r commented Sep 10, 2020

This was accidentally closed when we changed the default branch to main. The base should probably be updated...

@olix0r olix0r reopened this Sep 10, 2020
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

Successfully merging this pull request may close these issues.

3 participants