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

Option to perform K8s v1.16 server-side apply #2267

Closed
jessesuen opened this issue Sep 9, 2019 · 7 comments · Fixed by #9711
Closed

Option to perform K8s v1.16 server-side apply #2267

jessesuen opened this issue Sep 9, 2019 · 7 comments · Fixed by #9711
Assignees
Labels
component:core Syncing, diffing, cluster state cache enhancement New feature or request type:tech-debt Enhancement invisible for the end user
Milestone

Comments

@jessesuen
Copy link
Member

Kubernetes v1.16 supports the ability server-side apply. A huge benefit of server-side apply is that it which will support strategic merge patching of CRDs. I imagine that many users will want to do server side applies for this reason alone.

We need a way to configure Argo CD to support server-side applies. This option probably needs to be configured globally -- I don't see a reason to have this granular to an application. It also needs to decide to do this based on the version of the cluster. In other words, we cannot attempt server-side applies for kubernetes clusters < 1.16.

Related to this is the ability to do server-side dry runs:
#804

@jessesuen jessesuen added the enhancement New feature or request label Sep 9, 2019
@jessesuen jessesuen changed the title Option to perform server-side apply Option to perform K8s v1.16 server-side apply Sep 9, 2019
@jannfis jannfis added component:core Syncing, diffing, cluster state cache type:tech-debt Enhancement invisible for the end user labels May 14, 2020
@kwiesmueller
Copy link

Hey there,
this came up in a GitHub search for Server-Side Apply.
If you encounter any problems while implementing Server-Side Apply or need help doing so, feel free to ping us (wg-api-expression) on the Kubernetes Slack or just ping me here.
https://kubernetes.slack.com/archives/C0123CNN8F3

@jutley
Copy link
Contributor

jutley commented Sep 15, 2021

I'd love to see Argo CD support server-side apply.

We have a use case I don't see discussed much. We leverage mutating webhooks to provide lots of valuable default configuration for our Kubernetes users. An issue with this is that when running kubectl apply, the mutation will not take place if there is no difference between the desired and live states (I believe kubectl doesn't try to apply the patch in this case). However, when running kubectl apply --server-side, the mutations are always applied.

Our users primarily interact with Kubernetes through ArgoCD. Without Argo CD supporting server-side apply, there is no way apply these mutations unless the resource actually has some new desired state.

@rouke-broersma
Copy link
Contributor

@jessesuen this has recently become very relevant due to kube prometheus stack having too large CRDs for the last-applied-configuration field. We can currently not update kube prometheus stack with argocd because of this. This would be fixed with server-side apply iirc. See: prometheus-community/helm-charts#1500

@EppO
Copy link

EppO commented Dec 9, 2021

server-side apply hit GA with 1.22, it would be neat that Argo CD embraces it like Flux did. Having to add manually an annotation on one of the helm chart's CRD is really painful

@christianh814
Copy link
Member

christianh814 commented Dec 10, 2021

Circling back on this as this has come up again from our end users. Any update?

sathieu added a commit to sathieu/gitops-engine that referenced this issue Jan 8, 2022
sathieu added a commit to sathieu/gitops-engine that referenced this issue Jan 8, 2022
@sathieu
Copy link
Contributor

sathieu commented Jan 8, 2022

Proposal: argoproj/gitops-engine#363

ArgoCD PR: #8123 (CI broken until gitops-engine PR is merged).

@leoluz
Copy link
Collaborator

leoluz commented Apr 8, 2022

For reference, this is the proposal for implementing SSA in ArgoCD:
#8812

leoluz pushed a commit to sathieu/gitops-engine that referenced this issue Apr 11, 2022
leoluz pushed a commit to argoproj/gitops-engine that referenced this issue Apr 11, 2022
@leoluz leoluz self-assigned this Jun 13, 2022
@leoluz leoluz added this to the v2.5 milestone Jun 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:core Syncing, diffing, cluster state cache enhancement New feature or request type:tech-debt Enhancement invisible for the end user
Projects
None yet
9 participants