Repository navigation
feat(chart): optional dedicated ServiceAccount and Ingress for fleet-manager - #202
Merged
Merged
Conversation
…manager Both off by default, ported from the retired cryptos-release chart (#199): - serviceAccount.create makes a dedicated ServiceAccount with automountServiceAccountToken: false. The pod's serviceAccountName is now always explicit (the namespace's default when serviceAccount.create is false, same as the implicit behavior before this change). - ingress.enabled adds an Ingress with className, annotations, hosts and tls, so exposing the manager no longer needs a separately-managed Ingress. Signed-off-by: Bugs5382 <12115015+Bugs5382@users.noreply.github.com>
helm lint plus render checks that the ServiceAccount and Ingress are omitted by default and render correctly when enabled. This adds the same job-chart-lint.yaml filename as #194's PR: whichever of the two merges first determines the file's final content, and the other needs a small rebase to fold its scenarios in rather than overwrite them. Signed-off-by: Bugs5382 <12115015+Bugs5382@users.noreply.github.com>
Bugs5382
marked this pull request as ready for review
October 15, 2026 15:51
Contributor
Author
|
Approved. The optional Ingress and dedicated ServiceAccount, off by default. Refs #199 |
Signed-off-by: Bugs5382 <12115015+Bugs5382@users.noreply.github.com> # Conflicts: # .github/workflows/job-chart-lint.yaml
With storage.mode=memory and serviceAccount.create=true the pod runs as the dedicated ServiceAccount, but the RoleBinding still named the default one, so the single-replica Lease guard would be refused. The RoleBinding now uses the same ServiceAccount helper as the Deployment, and the chart lint workflow checks the pairing. Signed-off-by: Bugs5382 <12115015+Bugs5382@users.noreply.github.com>
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.
What and why
Refs #199
cryptos-release(retired) carried two chart templateschart/fleet-managerdoesn't have: a dedicated ServiceAccount and an Ingress. I decided both are
worth having, both off by default:
serviceAccount.create: a dedicated ServiceAccount withautomountServiceAccountToken: false, so the pod doesn't need thenamespace's
defaultServiceAccount's token mounted. The pod'sserviceAccountNameis now always explicit in the rendered manifest (thenamespace's
defaultwhenserviceAccount.createis false -- the samebehavior as before this change, just spelled out).
ingress.enabled: an Ingress withclassName,annotations,hostsandtls, so exposing the manager no longer needs a separately-managedIngress, LoadBalancer Service, or port-forward.
Both templates are adapted from the issue's pasted source:
manager.*helpernames swapped for
fleet-manager.*, license header dropped (this repo's ownheader convention applies at the Go level, not Helm templates).
Merge order note: this PR and #201 (fix#194)
both add
.github/workflows/job-chart-lint.yaml, independently, off the samebase commit. Whichever merges first wins the file as committed; the other
will need a small rebase to fold its scenarios into the surviving file rather
than overwrite it. Neither PR depends on the other's chart.fleet-manager
behavior otherwise.
Verification
How this was verified
helm lintfor the defaults,serviceAccount.create: true, andingress.enabled: true(with a representative host/class/path): all clean.helm template: confirmed neither the ServiceAccount nor the Ingressrenders by default, and that the pod's
serviceAccountNameis explicitlydefaultin that case; confirmed the ServiceAccount renders withautomountServiceAccountToken: falseand the pod picks it up when enabled;confirmed the Ingress renders with the configured
ingressClassName,host and path when enabled. Added as
.github/workflows/job-chart-lint.yamlso these run on every PR thattouches the chart (see the merge-order note above).
kindinstall with both features enabled together: theServiceAccount, Ingress and Deployment all render and create successfully;
kubectl get sa fleet-manager -o jsonpath='{.automountServiceAccountToken}'returns
false,kubectl get deploy fleet-manager -o jsonpath='{.spec.template.spec.serviceAccountName}'returnsfleet-manager, and the Ingress shows the configured class and host.Before merging: add a closing comment summarizing what was actually done in this PR
(not just the checked boxes).