Files
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

2.6 KiB

Generators

Generators are responsible for generating parameters, which are then rendered into the template: fields of the ApplicationSet resource. See the Introduction for an example of how generators work with templates, to create Hanzo CD Applications.

Generators are primarily based on the data source that they use to generate the template parameters. For example: the List generator provides a set of parameters from a literal list, the Cluster generator uses the Hanzo CD cluster list as a source, the Git generator uses files/directories from a Git repository, and so.

As of this writing there are nine generators:

  • List generator: The List generator allows you to target Hanzo CD Applications to clusters based on a fixed list of any chosen key/value element pairs.
  • Cluster generator: The Cluster generator allows you to target Hanzo CD Applications to clusters, based on the list of clusters defined within (and managed by) Hanzo CD (which includes automatically responding to cluster addition/removal events from Hanzo CD).
  • Git generator: The Git generator allows you to create Applications based on files within a Git repository, or based on the directory structure of a Git repository.
  • Matrix generator: The Matrix generator may be used to combine the generated parameters of two separate generators.
  • Merge generator: The Merge generator may be used to merge the generated parameters of two or more generators. Additional generators can override the values of the base generator.
  • SCM Provider generator: The SCM Provider generator uses the API of an SCM provider (eg GitHub) to automatically discover repositories within an organization.
  • Pull Request generator: The Pull Request generator uses the API of an SCMaaS provider (eg GitHub) to automatically discover open pull requests within an repository.
  • Cluster Decision Resource generator: The Cluster Decision Resource generator is used to interface with Kubernetes custom resources that use custom resource-specific logic to decide which set of Hanzo CD clusters to deploy to.
  • Plugin generator: The Plugin generator makes RPC HTTP requests to provide parameters.

All generators can be filtered by using the Post Selector

If you are new to generators, begin with the List and Cluster generators. For more advanced use cases, see the documentation for the remaining generators above.