Skip to content

fix(chart): select agent pods by stable managed-by label; add connect… - #13

Merged
DominikPinsel merged 1 commit into
mainfrom
fix/netpol-stable-agent-selectors
Aug 6, 2026
Merged

fix(chart): select agent pods by stable managed-by label; add connect…#13
DominikPinsel merged 1 commit into
mainfrom
fix/netpol-stable-agent-selectors

Conversation

@DominikPinsel

Copy link
Copy Markdown
Owner

…ors-webhook-ingress

The chart's NetworkPolicies selected agent pods with app.kubernetes.io/component: agents. That label was only added to the agent-operator's label set recently; Deployments created by earlier operator versions carry an immutable selector without it and could not be relabelled, so their pods never matched the policies and were silently isolated from hub-backend/qdrant under default-deny.

Select agent pods by app.kubernetes.io/managed-by: agent-operator instead — that label has been part of every agent Deployment's immutable selector since the first operator release, so it is present on every agent pod regardless of operator version. Applies to the hub-backend ingress rule, the qdrant ingress rule, and the agent-egress podSelector.

Also add a connectors-webhook-ingress policy: connector receiver pods are created dynamically by the event-source-gateway operator, and webhook producers must be able to reach them under default-deny. The ingress controller's namespace is always allowed (external webhooks), and in-cluster producers that deliver directly (e.g. a Forgejo running in the same cluster) can be added via the new
networkPolicy.connectorWebhookSources value.

Summary

Type of change

  • Bug fix
  • New feature
  • Documentation
  • Refactoring / chore
  • Breaking change

Testing

Related issues

@DominikPinsel
DominikPinsel force-pushed the fix/netpol-stable-agent-selectors branch from 503976a to d3fa7d7 Compare August 6, 2026 13:32
…ebhook-ingress

The chart's NetworkPolicies selected agent pods with
app.kubernetes.io/component: agents, but Deployments created by earlier
operator versions carry an immutable selector without that label; until
the preserve-selector fix reconciles them, their pods lack the label and
are silently isolated from hub-backend/qdrant under default-deny (or
drop out of the agent-egress lockdown).

Keep component: agents as the sole agent selector: it is the semantic
identity label and stays precise if the agent-operator later manages
other workload types (which will carry their own component value),
whereas selecting by managed-by would grant agent privileges to any
operator-managed pod. Document the migration prerequisite: deploy this
chart only after an operator version with the preserve-selector fix has
reconciled all agents (it keeps their immutable selector and relabels
rolled-out pods with component: agents), plus a one-liner to verify no
agent pod is missing the label.

Also add a connectors-webhook-ingress policy: connector receiver pods
are created dynamically by the event-source-gateway operator, and
webhook producers must be able to reach them under default-deny. The
ingress controller's namespace is always allowed (external webhooks),
and in-cluster producers that deliver directly (e.g. a Forgejo running
in the same cluster) can be added via the new
networkPolicy.connectorWebhookSources value.
@DominikPinsel
DominikPinsel force-pushed the fix/netpol-stable-agent-selectors branch from d3fa7d7 to de37efa Compare August 6, 2026 13:58
@DominikPinsel
DominikPinsel merged commit d24200c into main Aug 6, 2026
2 checks passed
@DominikPinsel
DominikPinsel deleted the fix/netpol-stable-agent-selectors branch August 6, 2026 19:25
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