feat(plane-ce): extraObjects, so an environment can ship its own ESO manifests (1.8.0) - #310
Merged
Merged
Conversation
…manifests (1.8.0)
1.7.0 gave this chart the externalized-secret contract but no way to deliver the
objects that produce those Secrets. A SecretStore and the ExternalSecrets behind
external_secrets.* belong to the operator, not to this chart -- but they have
nowhere to live when a GitOps tool treats one directory as one unit. Without this
they need a second Fleet bundle purely to exist, and a second bundle is a second
thing to order correctly.
Same shape as plane-enterprise's, including the part that is easy to get wrong:
rendered with toYaml and NOT tpl. The objects people put here are usually
ExternalSecrets whose target.template carries ESO's own {{ }} placeholders, and tpl
would try to evaluate those as Helm expressions -- failing, or worse resolving them
to empty. Verified: a target.template containing {{ .password }} comes out of the
render byte-identical.
Ordering is left to the standard Helm hook annotations, which is what an
ExternalSecret wants: this chart's Secret references are optional: false, so a pod
that starts before its Secret exists waits in CreateContainerConfigError rather
than starting without a credential.
Additive: with extraObjects empty -- the default -- the render is 0 lines different
from published 1.7.0. helm lint clean.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
|
Warning Review limit reachedNext included review available in 2 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
akshat5302
approved these changes
Aug 27, 2026
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.
#285 gave this chart the externalized-secret contract but no way to deliver the objects that produce those Secrets. A
SecretStoreand theExternalSecrets behindexternal_secrets.*belong to the operator rather than to this chart — but they have nowhere to live when a GitOps tool treats one directory as one unit.Without this they need a second Fleet bundle purely to exist, and a second bundle is a second thing to order correctly. plane-enterprise already has
extraObjectsfor exactly this; this brings plane-ce level.The part that is easy to get wrong
Rendered with
toYamland nottpl, matching plane-enterprise. The objects people put here are usually ExternalSecrets whosetarget.templatecarries ESO's own{{ }}placeholders —tplwould try to evaluate those as Helm expressions and either fail or, worse, silently resolve them to empty.Verified with a realistic ExternalSecret. In, and out of the render byte-identical:
Ordering
Left to the standard Helm hook annotations, which is what an ExternalSecret wants:
This chart's Secret references are
optional: false, so a pod that starts before its Secret exists waits inCreateContainerConfigErrorrather than starting without a credential — which is the behaviour you want, and why the hook weights matter.Verification
extraObjectsempty (the default), the render is 0 lines different from published 1.7.0.extraObjectsrenders, hook annotations intact, ESO placeholders untouched.helm lintclean.Why it needs to land
internal-scriptsis migratingcommunity-canaryandcommunity-latestoff committed credentials — secrets already in AWS (terraform-scripts#117), IAM ininternal-scripts#172. Their ESO manifests need somewhere to live, and this is it.Note this is only
extraObjects— no Reloader annotation. That stays out of the public charts and is set per workload from the deployment repo viaservices.<name>.annotations, which already reaches the workload resource.