Files
zeekay 6d8171e8dc Deploy the examples from our own repository
The docs and the end-to-end suite pulled their sample applications from the
upstream vendor's account; they now come from ours.
2026-09-04 23:50:35 -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/hanzocd/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