helm(v4): Split fluent-operator-crds chart into separate charts for fluentd and fluent-bit CRDs#1929
Open
joshuabaird wants to merge 9 commits intofluent:masterfrom
Open
helm(v4): Split fluent-operator-crds chart into separate charts for fluentd and fluent-bit CRDs#1929joshuabaird wants to merge 9 commits intofluent:masterfrom
joshuabaird wants to merge 9 commits intofluent:masterfrom
Conversation
Signed-off-by: Josh Baird <jbaird@galileo.io>
Signed-off-by: Josh Baird <jbaird@galileo.io>
Signed-off-by: Josh Baird <jbaird@galileo.io>
Signed-off-by: Josh Baird <jbaird@galileo.io>
Signed-off-by: Josh Baird <jbaird@galileo.io>
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Splits the previously unified Helm chart for Fluent Operator CRDs into separate charts for Fluent Bit and Fluentd to avoid Helm’s 1MiB release Secret size limit.
Changes:
- Updates CRD mutation script and Makefile generation paths to target new per-component CRD chart directories.
- Refactors CRD templates to make
additionalAnnotationstemplating idempotent and avoid renderingannotations: null. - Updates migration and top-level docs to reference the new
fluent-operator-crds-fluent-bitandfluent-operator-crds-fluentdcharts.
Reviewed changes
Copilot reviewed 36 out of 37 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| hack/mutate-crds.sh | Updates mutation logic and targets new chart template locations; refactors annotations injection. |
| charts/fluent-operator/MIGRATION-v4.md | Documents new split CRD charts and updated adoption/installation steps. |
| charts/fluent-operator-crds/values.yaml | Removes per-component enable flags, leaving only additionalAnnotations. |
| charts/fluent-operator-crds/templates/fluentd/fluentd.fluent.io_outputs.yaml | Switches annotations block to with .Values.additionalAnnotations wrapping. |
| charts/fluent-operator-crds/templates/fluentd/fluentd.fluent.io_inputs.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluentd/fluentd.fluent.io_fluentds.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluentd/fluentd.fluent.io_fluentdconfigs.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluentd/fluentd.fluent.io_filters.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluentd/fluentd.fluent.io_clusteroutputs.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluentd/fluentd.fluent.io_clusterinputs.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluentd/fluentd.fluent.io_clusterfluentdconfigs.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluentd/fluentd.fluent.io_clusterfilters.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/fluentbit.fluent.io_parsers.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/fluentbit.fluent.io_outputs.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/fluentbit.fluent.io_multilineparsers.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/fluentbit.fluent.io_fluentbits.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/flluentbit.fluent.io_fluentbitconfigs.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/fluentbit.fluent.io_filters.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/fluentbit.fluent.io_collectors.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/fluentbit.fluent.io_clusterparsers.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/fluentbit.fluent.io_clusteroutputs.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/fluentbit.fluent.io_clustermultilineparsers.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/fluentbit.fluent.io_clusterinputs.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/fluentbit.fluent.io_clusterfluentbitconfigs.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/templates/fluent-bit/fluentbit.fluent.io_clusterfilters.yaml | Same annotations templating adjustment. |
| charts/fluent-operator-crds/_docs.md | Removes docs for the old unified CRD chart. |
| charts/fluent-operator-crds/Chart.yaml | Renames chart metadata toward Fluentd-only naming and updates sources URL. |
| charts/fluent-operator-crds-fluentd/values.yaml | Adds values for Fluentd CRD chart. |
| charts/fluent-operator-crds-fluentd/_docs.md | Adds install/protection guidance for the Fluentd CRD chart. |
| charts/fluent-operator-crds-fluentd/CHANGELOG.md | Adds changelog for Fluentd CRD chart. |
| charts/fluent-operator-crds-fluentd/.helmignore | Adds Helm ignore patterns for Fluentd CRD chart. |
| charts/fluent-operator-crds-fluent-bit/_docs.md | Adds install/protection guidance for the Fluent Bit CRD chart. |
| charts/fluent-operator-crds-fluent-bit/Chart.yaml | Adds chart metadata for Fluent Bit CRD chart. |
| charts/fluent-operator-crds-fluent-bit/CHANGELOG.md | Adds changelog for Fluent Bit CRD chart. |
| README.md | Updates advanced install docs to use the two split CRD charts. |
| Makefile | Updates controller-gen output paths to new template directories. |
Comments suppressed due to low confidence (1)
hack/mutate-crds.sh:1
- The comment/doc above
add_annotationssays it “wraps the entire annotations field”, but the implementation only triggers if anannotations:line already exists in the CRD. If controller-gen output ever omitsmetadata.annotations,additionalAnnotationswon’t be injected at all. Also, the awk logic replaces the first matchingannotations:block entirely, which would drop any existing non-controller-gen annotations if present. Recommended fix: make the transform robust by inserting anannotationsblock undermetadata:even when it’s absent, and merge/preserve any existing annotation key/value pairs rather than overwriting the entire block.
Signed-off-by: Josh Baird <jbaird@galileo.io>
Signed-off-by: Josh Baird <jbaird@galileo.io>
Signed-off-by: Josh Baird <jbaird@galileo.io>
Signed-off-by: Josh Baird <jbaird@galileo.io>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Previously, we had a single
fluent-operator-crdschart that contained CRDs for both fluentd and fluent-bit.Helm stores the entire rendered release as a gzipped, double-base64-encoded Kubernetes Secret with a hard 1 MiB limit. Even with compression, both groups combined are pushing past that ceiling, which caused this error:
This PR splits the
fluent-operator-crdschart into two separate charts -- one for fluentd and one for fluent-bit so that each chart is under the 1MB limit.