Part of epic giantswarm/giantswarm#37705 (kagent API v2 migration); the consequence of the spike giantswarm/giantswarm#37321 for this chart. Siblings: giantswarm/agent (the chart value), giantswarm/agent-manager, giantswarm/backstage.
Problem
The spike decided the credential for private skill repositories under kagent API v2: a per-source credential on the AgentTemplate (skills[].source.git.credentialRef, carried in the kagent line — giantswarm/kagent-upstream#13), not an ambient credential on the platform Harness. That settles what this chart does and does not do, and nothing says it yet:
Proposed solution
Documentation and a guard, no rendering change:
- README (the kagent API v2 section): "Private skill repositories" — who provisions the Secret, where (
kagent), its shape and label, rotation (contents, never the name), what a missing Secret and a wrong token look like on the AgentTemplate (ResolvedRefs=False vs Ready=False ActorTemplatePending), and where the token is visible.
- A comment on the connectivity Harness values (
kagent.harness) saying the Harness carries no credential and why.
tests/verify-kagent-crds.py (or its successor) asserts the pinned kagent-crds serve skills[].source.git.credentialRef once the pin moves to the release that carries it, so a re-pin below it fails the verify instead of pruning the field silently.
Acceptance criteria
Part of epic giantswarm/giantswarm#37705 (kagent API v2 migration); the consequence of the spike giantswarm/giantswarm#37321 for this chart. Siblings: giantswarm/agent (the chart value), giantswarm/agent-manager, giantswarm/backstage.
Problem
The spike decided the credential for private skill repositories under kagent API v2: a per-source credential on the
AgentTemplate(skills[].source.git.credentialRef, carried in the kagent line — giantswarm/kagent-upstream#13), not an ambient credential on the platformHarness. That settles what this chart does and does not do, and nothing says it yet:Harnessper managed namespace —kagenttype on the line's Go ADK digest,KAGENT_PROPAGATE_TOKENin its environment, the meta chart's default WorkerPool, the snapshot location from values, admission by the labelagent-platform.giantswarm.io/harness: kagent; WorkerPool replicas and pod template as values with lab-measured defaults (bumblebee-plans#51 D5) #344) carry no credential — by design, not by omission;kagentnamespace (the templates compile in the Harness namespace, which is where this chart renders the platform Harnesses), keytoken, labelui.giantswarm.io/agent-skills-git-auth: "true"; the platform never provisions it;Proposed solution
Documentation and a guard, no rendering change:
kagent), its shape and label, rotation (contents, never the name), what a missing Secret and a wrong token look like on theAgentTemplate(ResolvedRefs=FalsevsReady=False ActorTemplatePending), and where the token is visible.kagent.harness) saying the Harness carries no credential and why.tests/verify-kagent-crds.py(or its successor) asserts the pinned kagent-crds serveskills[].source.git.credentialRefonce the pin moves to the release that carries it, so a re-pin below it fails the verify instead of pruning the field silently.Acceptance criteria
credentialRefon the pinned kagent-crds (added with the re-pin that first carries it).make verify-kagent-harnessunchanged).