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

[Feature proposal] Consider switching to server side apply (SSA) #501

Open
grzesuav opened this issue Apr 9, 2022 · 1 comment
Open
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@grzesuav
Copy link
Contributor

grzesuav commented Apr 9, 2022

Description

Server side apply or SSA, was introduced in 1.16, reaching GA over time. It basically mimic kubectl apply behavior in more declarative way, managed by kubernetes API server. General benefit would be that metacontroller could drop its dynamic apply implementation. However we would need to make sure that they are equivalent. As far I can tell, the list/map handling is driven by markers on CRD schema so it would be actually better, as now metacontroller implementations tries to "guess" when to merge lists and in SSA user declares it in CRD.

TODO before implementation

  1. check how use SSA from client-go / controller-runtime
  2. verify compatibility of SSA versus metacontroller dynamic apply
  3. document and check requirements for handling list merges
  4. Check how it works with builtin types (i.e. does it considers all the lists from metacontroller "guessing" list also as candidates for merging)

Challenges

  1. Explaining users how they should write CRD schema in order to have predictable list merges.
  2. Conflicts handling etc

Related issues

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
Development

No branches or pull requests

2 participants
@grzesuav and others