Skip to content

Add configurable nodeSelector to substrate workloads#16

Open
the-mentor wants to merge 1 commit into
kagent-dev:mainfrom
the-mentor:add-nodeselector
Open

Add configurable nodeSelector to substrate workloads#16
the-mentor wants to merge 1 commit into
kagent-dev:mainfrom
the-mentor:add-nodeselector

Conversation

@the-mentor

Copy link
Copy Markdown

Summary

Adds a configurable nodeSelector so substrate workloads can be pinned to specific nodes:

  • ate-api-server-deployment
  • ate-controller
  • atenet-router
  • dns (atenet-dns)
  • rustfs
  • atelet (DaemonSet)

Configuration

Two levels:

  • Global: top-level nodeSelector in values.yaml applies to all of the above.
  • Per-component override: ateApiServer.nodeSelector, ateController.nodeSelector, atenetRouter.nodeSelector, dns.nodeSelector, rustfs.nodeSelector, and atelet.nodeSelector each override the global default for that component when set to a non-empty map.

Each pod spec resolves its effective selector with or .Values.<component>.nodeSelector .Values.nodeSelector — an empty map is falsy in Go templates, so a component value wins when present and the global applies otherwise.

valkey is intentionally left out.

Verification

  • helm template with defaults renders no nodeSelector (backward compatible).
  • helm template with global + per-component overrides renders correctly for all workloads, including the atelet DaemonSet.
  • helm lint passes.
  • hack/render-manifests.sh --check passes — committed manifests are unchanged since defaults are empty.

🤖 Generated with Claude Code

Add a global `nodeSelector` value plus per-component overrides
(ateApiServer, ateController, atenetRouter, dns, rustfs, atelet) so the
substrate workloads can be pinned to specific nodes.

Each component resolves its effective nodeSelector as
`or .Values.<component>.nodeSelector .Values.nodeSelector`, so a
non-empty component-level map wins and otherwise the global default
applies. All defaults are empty, so rendered output is unchanged
(render-manifests --check passes).

valkey is intentionally excluded.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

1 participant