-
Notifications
You must be signed in to change notification settings - Fork 924
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
Object exceeds last-applied-configuration annotation #712
Comments
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-lifecycle stale Is this the right place to post such issues to? |
Based on the contributing guidelines maybe this should go on the main kubernetes repo? https://github.com/kubernetes/kubectl/blob/master/CONTRIBUTING.md |
This repository is called „Issue tracker for kubectl“ ... so I think it belongs here. But I can open another issue over at kubernetes/kubernetes and see :D |
It is also used to determine when a value has been changed, so the value is required as well. This is not possible to change for the client-side apply algorithm, but is how the server-side-apply feature in-progress works. Closing in favor of kubernetes/enhancements#555 /close |
@liggitt: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
With the current implementation of kubectl it is not possible to apply very large objects, e.g.
ConfigMaps
.We experienced this during development on our configuration management tool Tanka (grafana/tanka#50)
Problem description
For the
apply
feature to work, kubectl relies on thelast-applied-configuration
annotation:https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/#how-apply-calculates-differences-and-merges-changes
However, annotation values are limited to
256kb
in total, with equals to262144
characters.The actual
ConfigMap
has no size limit but whatetcd
imposes, which is1mb
.When trying to apply a
ConfigMap
larger than256kb
, the operation fails:Contents of
large.yml
:Possible fix
According to the docs (https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/#how-apply-calculates-differences-and-merges-changes):
This sounds like this is (only?) used to identify removed fields. If this is the case, it should be sufficient to store only the field names, but not their values (ie. store an
<redacted>
identifier or so if the data is too large).Closing thoughts
Internally, we already hit this limit when trying to apply generated Grafana dashboards, which are pretty huge yaml files.
Other people experienced this as well:
The text was updated successfully, but these errors were encountered: