Skip to content

feat: deploy DiceBear avatar renderer via the bundle#206

Merged
marians merged 2 commits into
mainfrom
add-dicebear-avatar-component
Jul 21, 2026
Merged

feat: deploy DiceBear avatar renderer via the bundle#206
marians merged 2 commits into
mainfrom
add-dicebear-avatar-component

Conversation

@marians

@marians marians commented Jul 20, 2026

Copy link
Copy Markdown
Member

Wires the giantswarm/dicebear chart into the meta-package as a force-enabled component, so the self-hosted DiceBear avatar API is deployed on every cluster that runs the platform. Resolves the open "chart home" decision in the agent-avatar-icon PRD — part of the bundle.

Context: giantswarm/giantswarm#37211.

What changed

  • values.yamlcomponents.dicebear (versionRange: "0.x", injectGlobal: false — the chart's strict schema consumes registry.domain, not global; force-enabled like muster/connectivity) + a forwarded top-level dicebear: block.
  • examples/customer-bom.yaml — pin dicebear: 0.3.0 (required; verify-meta rejects unpinned ranges).
  • values.schema.json — document the dicebear pass-through block and its route sub-keys.
  • Makefile.custom.mkverify-meta asserts the component renders.
  • README.md / CHANGELOG.md.

No changes to the dicebear chart — it already ships the workload, the public HTTPRoute, and the Envoy HTTPRouteFilter that does the path→query rewrite.

Per-cluster requirement

The public avatar route is on by default, so every installation must set dicebear.route.parentRefs (typically the same public Gateway as ingress.parentRefs) and dicebear.route.hostnames (e.g. avatars.<domain>) via its gitops overlay — the chart hard-fails otherwise, by design, matching the existing ingress.* contract.

Runtime prerequisite (dicebear repo, not this PR)

The chart pins image.tag: "4.9" while retagger mirrors docker.io/dicebear/api with semver: ">= 4.9.0". Confirm a 4.9 tag actually lands in gsoci.azurecr.io/giantswarm/dicebear-api, or pods won't pull.

Verification

  • helm template renders the dicebear OCIRepository + HelmRelease with route.enabled: true (flux and argo).
  • make verify-meta (incl. new assertion + BOM-pin guard) and make verify-modes pass.
  • helm lint passes; default values validate against the schema.
  • The dicebear chart renders a valid HTTPRoute + HTTPRouteFilter when route config is supplied, and hard-fails when hostnames is omitted.

Checklist

  • Update changelog in CHANGELOG.md.
  • Make sure values.yaml and values.schema.json are valid.

Wire the giantswarm/dicebear chart into the agentic-platform meta-package
as a force-enabled component, so the self-hosted DiceBear avatar API is
deployed on every cluster that runs the platform (giantswarm/giantswarm#37211).

Rendered as an OCIRepository + HelmRelease like every other component
(injectGlobal: false — the chart's strict schema consumes registry.domain,
not global). Its public avatar HTTPRoute is on by default, so every
installation must set dicebear.route.parentRefs and dicebear.route.hostnames
(e.g. avatars.<domain>), matching the existing ingress.* per-cluster contract.

- values.yaml: components.dicebear + forwarded dicebear: block
- examples/customer-bom.yaml: pin dicebear to 0.3.0
- values.schema.json: document the dicebear pass-through block
- Makefile.custom.mk: verify-meta asserts the component renders
- README.md, CHANGELOG.md
@marians
marians requested a review from a team as a code owner July 20, 2026 19:30
Comment thread helm/agentic-platform/values.yaml Outdated
# route.hostnames (e.g. [avatars.<domain>]); the chart hard-fails otherwise, by design.
dicebear:
route:
enabled: true

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in which cases / scenarios would users set dicebear.route.enabled: false?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the rare case they don't have Envoy Gateway, they could use this to disable rendering the HTTPRoute resource. However, the chart doesn't offer any alternative (like Ingress), so it wouldn't really work.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's where I was heading. I wouldn't expose this setting at all, given that the alternative doesn't really work.

@marians
marians merged commit ea5179b into main Jul 21, 2026
8 checks passed
@marians
marians deleted the add-dicebear-avatar-component branch July 21, 2026 10:10
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.

3 participants