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
..

Hanzo CD Manifest Hydrator

Most Hanzo CD Applications don't directly use plain Kubernetes manifests. They reference a Helm chart or some Kustomize manifests, and then Hanzo CD transforms those sources into their final form (plain Kubernetes manifests).

Having Hanzo CD quietly do this transformation behind the scenes is convenient. But it can make it harder for developers to understand the full state of their application, both current and past. Hydrating (also known as "rendering") the sources and pushing the hydrated manifests to git is a common technique to preserve a full history of an Application's state.

Hanzo CD provides first-class tooling to hydrate manifests and push them to git. This document explains how to take advantage of that tooling.

Setting up git Push Access

To use Hanzo CD's source hydration tooling, you have to grant Hanzo CD push access to all the repositories for apps using the source hydrator.

Security Considerations

Hanzo CD stores git push secrets separately from the main Hanzo CD components and separately from git pull credentials to minimize the possibility of a malicious actor stealing the secrets or hijacking Hanzo CD components to push malicious changes.

Pushing hydrated manifests to git can improve security by ensuring that all state changes are stored and auditable. If a malicious actor does manage to produce malicious changes in manifests, those changes will be discoverable in git instead of living only in the live cluster state.

You should use your SCM's security mechanisms to ensure that Hanzo CD can only push to the allowed repositories and branches.

Adding the Access Credentials

To set up push access, add a secret to the cd-push namespace with the following format:

apiVersion: v1
kind: Secret
metadata:
  name: cd-example-apps
  labels:
    # Note that this is "repository-push" instead of "repository". The same secret should never be used for both push and pull access.
    cd.hanzo.ai/secret-type: repository-push
type: Opaque
stringData:
  url: https://github.com/argoproj/argocd-example-apps.git
  username: '****'
  password: '****'

Once the secret is available, any Application which has pull access to a given repo will be able to use the source hydration tooling to also push to that repo.

Using the sourceHydrator Field

Migrating from the source or sources Field