Skip to content

feat(helm): add podLabels for the chart's pods - #48

Open
QuentinBisson wants to merge 3 commits into
kagent-dev:mainfrom
QuentinBisson:feat/chart-pod-labels
Open

QuentinBisson wants to merge 3 commits into
kagent-dev:mainfrom
QuentinBisson:feat/chart-pod-labels

Conversation

@QuentinBisson

@QuentinBisson QuentinBisson commented Sep 23, 2026 •

Copy link
Copy Markdown

Problem

The charts need configurable pod labels so telemetry collectors can identify the tenant of an OTLP export.

Change

Add podLabels (empty by default) to long-running pod templates in substrate, substrate-podcert and substrate-atelet. Reject app overrides to preserve selectors, and exclude the immutable rustfs-bucket-init Job template. Run all three charts' unit tests in CI; all 63 tests, chart lint and the committed-manifest check pass.

@EItanya
EItanya force-pushed the main branch 2 times, most recently from 0401cc1 to 08c930d Compare September 23, 2026 18:41
QuentinBisson added a commit to giantswarm/substrate that referenced this pull request Sep 24, 2026
@QuentinBisson
QuentinBisson marked this pull request as ready for review September 24, 2026 08:59
QuentinBisson added a commit to giantswarm/substrate that referenced this pull request Sep 24, 2026
QuentinBisson added a commit to giantswarm/substrate that referenced this pull request Sep 24, 2026
* feat(helm): add podLabels for the chart's pods

A multi-tenant telemetry collector commonly takes a pod's tenant from a
pod label, the one signal a headerless OTLP export carries. The chart
sets only its own `app` label on every pod and offers no way to add one.

`podLabels` is added to every long-running pod template, next to `app`,
which it cannot replace: `app` is the selector of every workload, so the
render fails when podLabels sets it. The rustfs-bucket-init Job is left
out, because a Job's pod template is immutable and a label change would
fail the upgrade.

The default render is unchanged, so manifests/ate-install/ stays as is.

Signed-off-by: QuentinBisson <quentin@giantswarm.io>
(cherry picked from commit 095ae30)

* docs(fork): ledger row, podLabels on the chart's pods (kagent-dev#48)

---------

Signed-off-by: QuentinBisson <quentin@giantswarm.io>
QuentinBisson added a commit to giantswarm/substrate that referenced this pull request Sep 24, 2026
* feat(helm): add podLabels for the chart's pods

A multi-tenant telemetry collector commonly takes a pod's tenant from a
pod label, the one signal a headerless OTLP export carries. The chart
sets only its own `app` label on every pod and offers no way to add one.

`podLabels` is added to every long-running pod template, next to `app`,
which it cannot replace: `app` is the selector of every workload, so the
render fails when podLabels sets it. The rustfs-bucket-init Job is left
out, because a Job's pod template is immutable and a label change would
fail the upgrade.

The default render is unchanged, so manifests/ate-install/ stays as is.

Signed-off-by: QuentinBisson <quentin@giantswarm.io>
(cherry picked from commit 095ae30)

* docs(fork): ledger row, podLabels on the chart's pods (kagent-dev#48)

---------

Signed-off-by: QuentinBisson <quentin@giantswarm.io>
@EItanya
EItanya force-pushed the main branch 3 times, most recently from 74f71ca to bf51a99 Compare September 26, 2026 21:43
@EItanya
EItanya force-pushed the main branch 4 times, most recently from 156e3da to 4d0e339 Compare October 1, 2026 15:52
@QuentinBisson
QuentinBisson force-pushed the feat/chart-pod-labels branch from 49a1332 to 8263176 Compare October 2, 2026 08:51
@EItanya
EItanya force-pushed the main branch 2 times, most recently from ee87afb to c2e2e13 Compare October 4, 2026 16:46
@QuentinBisson
QuentinBisson force-pushed the feat/chart-pod-labels branch from 8263176 to ab51279 Compare October 5, 2026 09:02
@EItanya
EItanya force-pushed the main branch 2 times, most recently from 16274c0 to 9f9b552 Compare October 6, 2026 22:08
@QuentinBisson
QuentinBisson force-pushed the feat/chart-pod-labels branch 2 times, most recently from 47f87cc to e41dc2f Compare October 8, 2026 21:38
teemow pushed a commit to giantswarm/substrate that referenced this pull request Oct 12, 2026
* feat(helm): add podLabels for the chart's pods

A multi-tenant telemetry collector commonly takes a pod's tenant from a
pod label, the one signal a headerless OTLP export carries. The chart
sets only its own `app` label on every pod and offers no way to add one.

`podLabels` is added to every long-running pod template, next to `app`,
which it cannot replace: `app` is the selector of every workload, so the
render fails when podLabels sets it. The rustfs-bucket-init Job is left
out, because a Job's pod template is immutable and a label change would
fail the upgrade.

The default render is unchanged, so manifests/ate-install/ stays as is.

Signed-off-by: QuentinBisson <quentin@giantswarm.io>
(cherry picked from commit 095ae30)

* docs(fork): ledger row, podLabels on the chart's pods (kagent-dev#48)

---------

Signed-off-by: QuentinBisson <quentin@giantswarm.io>
(cherry picked from commit f58d726)
@QuentinBisson

QuentinBisson commented Oct 19, 2026 •

Copy link
Copy Markdown
Author

@EItanya do you think you could take a look at this one and at #46 ?

@QuentinBisson
QuentinBisson force-pushed the feat/chart-pod-labels branch 2 times, most recently from b5a3845 to 1ec7ada Compare November 2, 2026 09:31

@EItanya EItanya left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please add helm unit tests

@QuentinBisson

Copy link
Copy Markdown
Author

Thanks, I added the tests.

@EItanya EItanya left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These will also now need to be added to the atelet chart

A multi-tenant telemetry collector commonly takes a pod's tenant from a
pod label, the one signal a headerless OTLP export carries. The chart
sets only its own `app` label on every pod and offers no way to add one.

`podLabels` is added to every long-running pod template, next to `app`,
which it cannot replace: `app` is the selector of every workload, so the
render fails when podLabels sets it. The rustfs-bucket-init Job is left
out, because a Job's pod template is immutable and a label change would
fail the upgrade.

The substrate-podcert chart takes its own `podLabels` for the
podcertificate-controller pod, under the same rule.

The default render is unchanged, so manifests/ate-install/ stays as is.

Signed-off-by: QuentinBisson <quentin@giantswarm.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants