fix(argocd): resolve OutOfSync drift on langfuse, agent-gateway, kagent - #2
Merged
Merged
Conversation
Three Argo Applications on the consumer (appmod-blueprints) hub stayed
OutOfSync against the charts in this repo. Each had a distinct cause:
1. langfuse-postgres StatefulSet — chart values render
`cpu: 1000m` but Kubernetes normalizes to `cpu: "1"` on apply,
producing perpetual drift on the Helm-managed pod resources.
Quote the value as "1" so render and live state match.
2. agent-gateway HTTPRoute (mcp-servers-route) — backendRefs omits
the optional `weight` field; the gateway controller defaults it
to `1`, which Argo then sees as drift. Add the explicit `weight: 1`.
3. kagent argo-rollouts-conversion-agent Agent CR — kagent v0.7.9 emits
an Agent with `spec.declarative.deployment: null`, which fails CRD
validation:
spec.declarative.deployment: Invalid value: "null": must be of
type object
The whole `kagent-hub` Application stays OutOfSync because of this
one resource. Disable the `argo-rollouts-agent` subchart via a
default override file. The toggle lives at top-level
(Chart.yaml: `condition: argo-rollouts-agent.enabled`), not under
the documented `agents.*` block.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 task
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.
Summary
Three Argo Applications on a consumer (
appmod-blueprints) hub cluster stayed permanently OutOfSync against the charts in this repo. Each one had a distinct root cause; all three are addressed in this PR.1.
langfuse-postgresStatefulSet — Kubernetes value normalizationThe
langfusechart renderscpu: 1000mfor the Postgres container limits, but Kubernetes normalizes equivalent CPU quantities on apply (1000m→"1"). Argo then sees the live"1"as drift from the rendered1000mon every reconcile.Fix: quote the value as
"1"ingitops/addons/charts/langfuse/values.yamlso render and live state match.2.
mcp-servers-routeHTTPRoute — controller-defaulted fieldThe
agent-gatewaychart's HTTPRoute template omits the optionalweightfield onbackendRefs. The Gateway API controller defaults missing weights to1and writes that back to the object, which Argo then reports as drift.Fix: set
weight: 1explicitly ingitops/addons/charts/agent-gateway/templates/httproute.yaml.3.
argo-rollouts-conversion-agentAgent CR — kagent v0.7.9 schema bugkagentv0.7.9 emits anAgentresource withspec.declarative.deployment: null, which fails CRD validation:The
kagent-hubApplication stays OutOfSync because this one resource cannot be applied. Pending an upstream fix inkagent-dev/kagent, this PR disables theargo-rollouts-agentsubchart so the rest of the kagent agents can sync cleanly.Fix: add
gitops/addons/default/addons/kagent/values.yamlwithargo-rollouts-agent.enabled: false. The condition lives at top-level (perChart.yaml:condition: argo-rollouts-agent.enabled), not under the documentedagents.*block — kagent's own values.yaml only usesagents.*for resource sizing, not the dependency toggle.Verification
Rendered the kagent chart with the override to confirm:
Test plan
langfuse-hubreaches Synced (no more StatefulSet drift)agent-gateway-hubreaches Synced (HTTPRoute weight written explicitly)kagent-hubreaches Synced (broken Agent no longer rendered)Follow-up
File an issue against
kagent-dev/kagentso theargo-rollouts-agentsubchart populatesspec.declarative.deployment. Once a release fixes that, this override can be removed (or the subchart re-enabled in cluster-specific overlays).🤖 Generated with Claude Code