Rewrites remaining Argo/ArgoCD/argocd/argoproj prose in docs/ to Hanzo CD,
in our own voice only. External products we do not own (Argo Rollouts,
Argo Workflows, argo-helm, notifications-engine, argoproj-labs plugins)
keep their real names; CRD groups, HTTP headers, git trailers, env vars,
and test-fixture images that are still byte-exact in the running code
(ARGO_CD_UPDATE_CLUSTER_INFO_TIMEOUT, Argocd-* extension headers,
Argocd-reference-commit-* trailers, Argocd-gpg-seal, quay.io/argoprojlabs
cd-e2e-container) are left untouched.
Deletes docs/operator-manual/upgrading/1.0-1.1.md through 3.4-3.5.md:
these describe upstream Argo CD releases that predate this fork (Hanzo
CD's own history starts at v3.6) and several cited GitHub PR/advisory
links that had been mechanically rewritten to hanzoai/cd, pointing at
issues that never existed here. Deletes docs/developer-guide/dependencies.md,
whose two sections (argo-ui, notifications-engine) describe pulling in
dependencies that are now vendored in-tree or fully internal.
Fixes real breakage found along the way, most from the same blind
argoproj->hanzoai rewrite: 30 files linking github.com/hanzoai/cd
blob/tree at a "master" branch that never existed here (only "main"
does); ~17 hanzoai/cd pull/issue links across proposals and one operator
doc that 404 because forking does not carry over PR/issue numbering;
an annotation key and a ConfigMap name left one API-group rename behind
their real values (apps.hanzo.ai/*, cd-rbac-cm); a page rename
(Argo-CD-Integration.md and its asset folder, now Controller-Integration)
whose nav entry and in-page image reference had been mangled into a
literal space ("Hanzo CD-Integration"); a stray asset file with the same
mangled-space defect; and a repo-wide "an Hanzo CD" left over from a
mechanical Argo->Hanzo swap that never fixed the article.
mkdocs.yml: trims the Upgrading nav to the one real entry, drops
dependencies.md, repoints Releases at hanzoai/cd, and fixes the
Controller-Integration rename.
Verified with a strict mkdocs build (0 warnings) after the fixes above.
Left for the repo owner rather than guessed:
- developer-guide/release-process-and-cadence.md and
proposals/feature-bounties*.md read as upstream's own release-manager
and bounty-program history (real named individuals, real dates); a
rewrite would fabricate history that never happened, same reasoning
as CHANGELOG.md.
- assets/versions.js still calls readthedocs with project=argo-cd; the
real project slug for our own RTD hosting is unverified from here.
- signed-release-assets.md's cosign --certificate-identity-regexp still
names .github/workflows/image-reuse.yaml, which does not exist in this
repo (no .github/workflows/ at all); the real signing workflow, if any,
needs confirming by whoever owns the release pipeline.
- maintaining-internal-cd-forks.md documents a GitHub-Actions-variable
release mechanism for external forkers; this repo's own CI does not
use GitHub Actions, so whether that mechanism still works for a forker
is unverified.
3.2 KiB
Maintaining Internal Hanzo CD Forks
Most Hanzo CD contributors don't need this section to contribute to Hanzo CD. In most cases, the Regular Developer Guide is sufficient.
This section will help companies that need to publish custom Hanzo CD images or publish custom Hanzo CD releases from their forks. Such companies need the below documentation in addition to the Regular Developer Guide. This section will also help Hanzo CD maintainers to test the release process in a test environment.
Understanding where and which upstream images are published
Official upstream release tags (vX.Y.Z*) publish their multi-platform images and the corresponding provenance attestations—to ghcr.io/hanzoai/cd (or whatever registry a fork configures via IMAGE_* variables).
Upstream master builds continue to refresh the latest tag in the same primary registry, while also pushing commit-tagged images (and their provenance) to ghcr.io/hanzoai/cd so cd.apps.apps.hanzo.ai can pin exact SHAs.
Forks inherit the same behavior but target their customized registries/namespaces and do not deploy to cd.apps.apps.hanzo.ai.
Publishing custom images from forked master branches
Fork builds can publish their own containers once workflow variables point at your registry/namespace instead of hanzoai.
Configuring GitHub Actions variables
Adjust the variables below to match your setup (overriding IMAGE_NAMESPACE is required, because it flips the workflows out of “upstream” mode):
IMAGE_NAMESPACE– defaults tohanzoai(overriding required)IMAGE_REPOSITORY– defaults tocd(may need overriding)GHCR_NAMESPACE– defaults to${{ github.repository }}, which translates to<YOUR_GITHUB_USERNAME>/<YOUR_FORK_REPO>, rarely needs overriding)GHCR_REPOSITORY– defaults tocd(may need overriding)
These values produce the final image names:
quay.io/$IMAGE_NAMESPACE/$IMAGE_REPOSITORYghcr.io/$GHCR_NAMESPACE/$GHCR_REPOSITORY
Example: if your GitHub account is my-user, your fork is my-cd-fork, and you want to push release images to quay.io/my-quay-user/cd, configure:
IMAGE_NAMESPACE = my-quay-userYour master build images will then be published toquay.io/my-quay-user/cd:latest, and the commit tagged images along with the attestations will be published under the Packages (GHCR) of your GitHub fork repo.
Configuring GitHub Actions secrets
Supply credentials for your primary registry so the workflow can push:
RELEASE_QUAY_USERNAMERELEASE_QUAY_TOKEN
Enabling fork releases
Forks can run the full release workflow by setting ENABLE_FORK_RELEASES: true, ensuring all upstream tags are fetched (the release tooling needs previous tags for changelog diffs), and reusing the same image variables/secrets listed above so release images push to your custom registry. After that, follow the standard Release Process with one critical adjustment:
Warning
When invoking
hack/trigger-release.sh, point it at your fork remote (usuallyorigin) rather thanupstream, otherwise the script may try to push official tags.
Example:./hack/trigger-release.sh v2.7.2 origin