Bug: Charts with long CRD annotations cannot be easily installed · Issue #7065 · devtron-labs/devtron · GitHub
Skip to content

Bug: Charts with long CRD annotations cannot be easily installed #7065

Open

Description

@yuvii

📜 Description

This is a recurring bug that I've encountered many times with different charts. Whenever there's a CRD with a long textual annotation, installing a helm chart fails with something like this message:

The CustomResourceDefinition '<CRD.NAME>' is invalid: metadata.annotations: Too long: may not be more than 262144 bytes

Right now I ran into this trying to install the cloudnative-pg chart. The usual workaround is to set the syncOption to server-side on ArgoCD (the documentation even mentions this known issue directly), or manually apply the CRDs myself. I'm not sure if this is possible to do through one of the devtron configured CMs for argo, but it's a quite frustrating problem that I've encountered more than once. Doing manual actions to overcome it feel brittle, it's unreliable and shouldn't be required, I much rather manage my applications through devtron itself.

Maybe this is a "feature" technically, but because it's a limitation that prevents normal operations and usage of devtron as is, I see it as a bug and would very much appreciate it if there'd be some kind of simple toggle when installing a helm chart from devtron that allows you to set "server-side" option to true. Thank you

👟 Reproduction steps

Add and install this helm chart in devtron:

https://github.com/cloudnative-pg/charts

  1. add the chart repo pointing at https://cloudnative-pg.github.io/charts
  2. deploy the cloudnative-pg chart with the default values.
Image

👍 Expected behavior

Charts should be installable without manual workarounds

👎 Actual Behavior

Charts with long descriptions require manual workarounds to be installable

☸ Kubernetes version

1.36

Cloud provider

Details AWS EKS

🌍 Browser

Opera

🧱 Your Environment

No response

✅ Proposed Solution

add a toggle to enable different syncOptions when installing charts from the chart store.

👀 Have you spent some time to check if this issue has been raised before?

  • I checked and didn't find any similar issue

🏢 Have you read the Code of Conduct?

Activity

  1. added
    bugSomething isn't working
    needs-triageIssue is not approved or ready-to-work on
    on Oct 19, 2026
  2. krama commented on Oct 19, 2026

    @krama

    @yuvii this is not a bug, but a limitation of Kubernetes, the total size of an object’s metadata.annotations must not exceed 262,144 bytes (256 KiB). This explains your the error message: ‘Too long: may not be more than 262,144 bytes’.

    By default, argo applies manifests in the same way as kubectl apply. It writes an kubectl.kubernetes.io/last-applied-configuration annotation to the object containing a full copy of the manifest. For large CRDs, this copy exceeds the limit.

    I recommend reading the argo and kubernetes documentation first and foremost.

    In fact, you have several "workaround" options

    The solution, according to the argo cd documentation, is Server-Side Apply. With this approach, last-applied-configuration is not written to the log, so the limit does not cause any issues. There are two ways to enable it:

    metadata:
        annotations:
          argocd.argoproj.io/sync-options: ServerSideApply=true

    For the entire argo application: spec.syncPolicy.syncOptions: [ServerSideApply=true]. In Devtron, this setting cannot be configured via the UI for Chart Store applications, so I apply the annotation directly to the cdrs themselves.

  3. yuvii commented on Oct 20, 2026

    @yuvii
    Author

    @krama I know it's a limitation of kubernetes, yes, but when deploying charts through the devtron chart store I can't just set the metadata annotation the way you suggest. Sometimes I can, if the maintainers of the chart provide the option through their values.yaml, but that's not always the case. I can manually do it myself, but I want to manage our charts from the Devtron dashbaord. That's what I'm asking for, give us the option to set the sync options for these cases.

    I know this is technically a "feature" ask and not a bug, but it's not some additional functinoality that is a benefit. I currently cannot manage and maintain some charts from devtron because of this limitation, and it's not very difficult as far as features go. Please consider it. Thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugSomething isn't workingneeds-triageIssue is not approved or ready-to-work on

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions