cd

module
v1.8.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2026 License: Apache-2.0

README

Release OpenSSF Scorecard

Hanzo CD — declarative continuous delivery for Kubernetes

Git holds the desired state; the controller applies it and reports drift.

Hanzo CD is a hard fork of Argo CD (Apache-2.0 — see NOTICE). The engine is theirs. The packaging, API group and platform integration are ours. Their community, docs, support channels and roadmap are not ours, so this file does not borrow them — the previous version of this README was upstream's with the names replaced, which had the effect of putting our name on other people's conference talks and blog posts.

What differs from upstream

API group apps.hanzo.aiApplication, ApplicationSet, AppProject
annotations cd.hanzo.ai/*
binaries cd, cd-server, cd-repo-server, cd-application-controller, cd-applicationset-controller, cd-commit-server, cd-cmp-server, cd-dex, cd-git-ask-pass, cd-k8s-auth
module github.com/hanzoai/cd
image ghcr.io/hanzoai/cd
SSO Hanzo IAM (hanzo.id) over OIDC — dex builds but is not deployed
notifications removed; we use hanzoai/notify

Where it runs

cd.hanzo.ai, namespace hanzo-cd on hanzo-k8s.

It moves git → CR for the fleet; the Hanzo operator keeps CR → workload. The two never write the same field: Hanzo CD owns CR spec from git, the operator owns CR status and the child workload. Disjoint by construction, which is what lets both run without fighting over field ownership.

Deployment layout, the AppProject fences, and the one-observer/three-enforcer split live in hanzoai/universeinfra/k8s/hanzo-cd/.

Build

CGO_ENABLED=0 go build ./...      # the gate hanzo.yml runs on every PR

Images build on platform.hanzo.ai from the root Dockerfile; hanzo.yml declares the target.

Releases are tagged. A branch build publishes sha-<short> and will never advance a service already pinned to a release, so shipping means cutting a vX.Y.Z tag — not merging to main.

License

Apache-2.0. See LICENSE and NOTICE.

Directories

Path Synopsis
applicationset
cmd
cd-mirror/commands
Package commands reconciles which repositories live on git.hanzo.ai and which direction each one syncs.
Package commands reconciles which repositories live on git.hanzo.ai and which direction each one syncs.
sharding/consistent
An implementation of Consistent Hashing and Consistent Hashing With Bounded Loads.
An implementation of Consistent Hashing and Consistent Hashing With Bounded Loads.
hack
dev-mounter command
gen-crd-spec command
gen-docs command
gen-resources/util
Package util SizedWaitGroup adds the feature of limiting the maximum number of concurrently started routines.
Package util SizedWaitGroup adds the feature of limiting the maximum number of concurrently started routines.
k8s command
known_types command
Package mirror reconciles which repositories live on git.hanzo.ai and which direction each one syncs.
Package mirror reconciles which repositories live on git.hanzo.ai and which direction each one syncs.
pkg
apiclient/account
Package account is a reverse proxy.
Package account is a reverse proxy.
apiclient/application
Package application is a reverse proxy.
Package application is a reverse proxy.
apiclient/applicationset
Package applicationset is a reverse proxy.
Package applicationset is a reverse proxy.
apiclient/certificate
Package certificate is a reverse proxy.
Package certificate is a reverse proxy.
apiclient/cluster
Package cluster is a reverse proxy.
Package cluster is a reverse proxy.
apiclient/gpgkey
Package gpgkey is a reverse proxy.
Package gpgkey is a reverse proxy.
apiclient/notification
Package notification is a reverse proxy.
Package notification is a reverse proxy.
apiclient/project
Package project is a reverse proxy.
Package project is a reverse proxy.
apiclient/repocreds
Package repocreds is a reverse proxy.
Package repocreds is a reverse proxy.
apiclient/repository
Package repository is a reverse proxy.
Package repository is a reverse proxy.
apiclient/session
Package session is a reverse proxy.
Package session is a reverse proxy.
apiclient/settings
Package settings is a reverse proxy.
Package settings is a reverse proxy.
apiclient/version
Package version is a reverse proxy.
Package version is a reverse proxy.
apis/application/v1alpha1
Package v1alpha1 is the v1alpha1 version of the API.
Package v1alpha1 is the v1alpha1 version of the API.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/application/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/application/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
tools
cmd-docs command
cd
cd/normalizers
Code generated by github.com/hanzoai/cd/hack/known_types.
Code generated by github.com/hanzoai/cd/hack/known_types.
cert
Utility functions for managing HTTPS server certificates and SSH known host entries for Hanzo CD
Utility functions for managing HTTPS server certificates and SSH known host entries for Hanzo CD
cli
cmp
db
dex
env
git
io
jwt
log
lua
oci
tls

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL