Files
deploy/docs/user-guide/application-notice.md
zeekayandHanzo Dev 446e343a3d cd: annotations are cd.hanzo.ai, API group is apps.hanzo.ai
Two corrections on top of the naming pass, both found by checking the live
cluster rather than the source.

The rename had silently changed the user-facing annotation key from
argocd.argoproj.io/sync-wave to cd.argoproj.io/sync-wave — 63 live
Applications carry the old key, so deploying that would have ignored every
sync-wave and broken fleet deploy ordering. The key is now cd.hanzo.ai/*,
and universe 575650286 moves the ApplicationSet template that stamps it, so
the controller regenerates all 63 consistently.

The API group in code said argoproj.io/v1alpha1 in 157 places while the
cluster has served apps.hanzo.ai/v1alpha1 since 2026-07-23 (the CRDs are
applications.apps.hanzo.ai). Code now matches what is actually served.

The legacy applications.argoproj.io/app-name label had ZERO live users, so it
went with the rest. foo.argoproj.io test fixtures became foo.example.com —
arbitrary test domains should not carry a vendor name.

go build ./... exit 0.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 16:32:14 -07:00

4.1 KiB

Application Notice

Hanzo CD can display a per-application notice as a contextual banner on the application details page and as a hover icon on the application list and tile views. This is useful for surfacing deprecation warnings, scheduled maintenance, or operational guidance scoped to a single Application without affecting unrelated apps.

The notice is configured entirely through annotations on the Application resource — no Hanzo CD restart or ConfigMap change is required.

Note

The instance-level banner configured via ui.bannercontent in cd-cm remains unchanged and continues to apply to every UI page. The per-application notice described here is independent and stacks above the details-page content.

Annotations

All notice annotations use the notice.cd.hanzo.ai/ prefix.

Annotation Required Default Description
notice.cd.hanzo.ai/content Yes — Plain-text notice message. Truncated at 500 characters.
notice.cd.hanzo.ai/severity No info One of info, warning, critical. Drives banner color and the default icon. Unknown values fall back to info.
notice.cd.hanzo.ai/url No — If set, the banner text and icon link to this URL. Must be http:// or https://. Other schemes are rejected.
notice.cd.hanzo.ai/permanent No false When "true", the banner cannot be dismissed by users. Mirrors ui.bannerpermanent semantics.
notice.cd.hanzo.ai/icon No severity-derived Override the icon. Must be one of the allowlisted FontAwesome classes; unknown values fall back to the severity default.
notice.cd.hanzo.ai/scope No both One of banner, icon, both. Use to suppress either surface.

Severity defaults

Severity Default icon
info fa-info-circle
warning fa-exclamation-triangle
critical fa-exclamation-circle

Allowlisted icons

Only these FontAwesome class fragments may be set via the icon annotation:

fa-info-circle, fa-exclamation-triangle, fa-exclamation-circle, fa-bell, fa-wrench, fa-clock, fa-bullhorn, fa-life-ring, fa-shield-alt.

Examples

Minimal notice — info severity, dismissible, banner + icon:

apiVersion: apps.hanzo.ai/v1alpha1
kind: Application
metadata:
  name: guestbook
  namespace: cd
  annotations:
    notice.cd.hanzo.ai/content: "Scheduled DB maintenance on 2026-06-01 02:00 UTC"
spec:
  # ...

Deprecation notice with a runbook link, marked permanent:

metadata:
  annotations:
    notice.cd.hanzo.ai/content:   "Deprecated — migrate to v2 by 2026-08-01"
    notice.cd.hanzo.ai/severity:  "warning"
    notice.cd.hanzo.ai/url:       "https://wiki.example.com/v2-migration"
    notice.cd.hanzo.ai/permanent: "true"

List-icon-only hint (no page banner):

metadata:
  annotations:
    notice.cd.hanzo.ai/content:  "Owned by team-payments"
    notice.cd.hanzo.ai/severity: "info"
    notice.cd.hanzo.ai/scope:    "icon"
    notice.cd.hanzo.ai/icon:     "fa-life-ring"

Where it appears

  • The banner is shown on the application details page, between the health and sync status panel and the application's resource tree.
  • The icon is shown next to the application name in both the tile and list views of the applications page; hovering it reveals the notice content.
  • By default the banner can be dismissed for the current user. Setting notice.cd.hanzo.ai/permanent to "true" removes the dismiss control so the banner stays visible. The list/tile icon is always shown while the notice exists.