feat(helm): the Postgres connection string from a Secret (kagent-dev/substrate#32) and atelet scheduling knobs - #8
Merged
Conversation
teemow
force-pushed
the
fork/postgres-secret-and-atelet-scheduling
branch
from
September 11, 2026 00:48
8408f31 to
f91b58e
Compare
9 tasks
Allow ate-api-server to read an external PostgreSQL connection string from a Secret while keeping schema configuration in the existing ConfigMap. Add Helm unit coverage for bundled, literal, Secret-backed, and invalid setups. (cherry picked from commit 1872249)
(cherry picked from commit 41097da)
…nity The atelet DaemonSet had no scheduling knob: it ran on every schedulable node. Clusters that keep sandboxes on a worker node pool need to pin it. Add atelet.nodeSelector, atelet.tolerations and atelet.affinity; empty by default, so the rendered manifests do not change. Helm unit coverage for the default and the configured cases.
…agent-dev#32), atelet scheduling knobs
teemow
force-pushed
the
fork/postgres-secret-and-atelet-scheduling
branch
from
September 11, 2026 02:08
f91b58e to
4370d97
Compare
teemow
added a commit
that referenced
this pull request
Sep 11, 2026
…ests; the #8 patches' commits as they are on giantswarm (#11) The second release of the line, v0.0.27-gs.2 (tag on ef30433 = gs.1 + the Postgres connection Secret cherry-picks of kagent-dev#32 and the atelet scheduling knobs, #8), published by run 34554981306 with every scan clean, gets its ledger row: index digests of the six images, the two chart digests, the dataplane it runs. The carried-patches table named the #8 commits by their pull-request branch SHAs (42c0c6b, 392841e, d9717d7), which the rebase merge rewrote; the commits on giantswarm are c1e4e32, f06f5ef and 084d916.
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.
Problem
Meta chart 4.0 ships Substrate inside the agent-platform chart (
components.substrate/components.substrate-crds). Two things the Substrate chart cannot express today:postgres.connectionStringas a plain value and writes it into theate-api-server-envvarsConfigMap — credentials in a ConfigMap, and a Secret that has to be copied into values first.nodeSelector,tolerationsoraffinity.Solution — upstream first
git cherry-pick -xof Support PostgreSQL connection secrets kagent-dev/substrate#32 "Support PostgreSQL connection secrets" (open, by iplay88keys) — both commits of the pull-request branch, unchanged, with the upstream author and the(cherry picked from commit …)trailers:1872249e→42c0c6b8:postgres.connectionStringSecretRef.{enabled,name,key}; thesubstrate.postgres.connectionStringSecretEnabledhelper; two guards (connectionStringandconnectionStringSecretRefare mutually exclusive; one of them is required whenpostgres.enabled=false); ate-api-server readsATE_API_POSTGRES_CONNECTION_STRINGfrom asecretKeyRef(defaults<release>-postgres-connection/connectionString) and the ConfigMap omits it in Secret mode; README row;charts/substrate/tests/postgres_test.yaml; thehelm-testMakefile target and the helm-e2e step that runs helm-unittest.41097da7→392841e2:helm plugin install … --verify=falsein that step — without it the helm-e2e job fails on Helm 4 (the reason the upstream PR carries the follow-up).Every hunk applied cleanly; nothing was dropped. The patch falls away at the re-pin onto the first upstream release that carries it.
d9717d78):feat(helm): atelet DaemonSet takes nodeSelector, tolerations and affinity—atelet.nodeSelector: {},atelet.tolerations: [],atelet.affinity: {}, rendered in the DaemonSet pod spec next toserviceAccountName; README rows;charts/substrate/tests/atelet_test.yaml. Upstream has no focused change for this: Add configurable nodeSelector to substrate workloads kagent-dev/substrate#16 addsatelet.nodeSelector(no tolerations or affinity) inside a 92-file fork-wide pull request that has been conflicting since July; ours is the minimal knob. The upstream-shaped patch is branchupstream/atelet-schedulingin this repository (b34c1690, on the mirrormain, default render identical there too); it is opened against kagent-dev/substrate after review in giantswarm/giantswarm#37742, not before.FORK.mdand points the meta-chart consumer row at 4.0.Verification
helm template s charts/substrate) byte-identical before and after each patch;make verify-helm-templatepasses (manifests/ate-install/unchanged).helm template s charts/substrate --set postgres.enabled=false --set postgres.connectionStringSecretRef.name=x --set postgres.connectionStringSecretRef.key=urirenders the ate-api-server envATE_API_POSTGRES_CONNECTION_STRINGfromsecretKeyRef {name: x, key: uri}and a ConfigMap that carries onlyATE_API_POSTGRES_SCHEMA.helm unittest charts/substrate(helm-unittest 1.0.3, Helm 4.2.2): 2 suites, 11 tests pass;hack/util/verify-boilerplate.pyandhelm lintclean.run-tests,govulncheck,helm-e2e(which now runsmake helm-testas well).Merge
Rebase-merge (
gh pr merge --rebase): the commits land as they are — the two cherry-picks keep their trailers so the next re-pin drops them by itself, and the atelet commit is the one upstream gets.Refs giantswarm/agent-platform#342