Files
zeekayandHanzo Dev 1ab6e799c1 cd: the module is github.com/hanzoai/cd, where it is actually hosted
go.mod still declared `module github.com/hanzoai/deploy` after the repo was
renamed. A Go module path is not cosmetic — it is the resolvable location. So
`go get github.com/hanzoai/cd` could not work, and anything importing this
module had to spell a name that no longer exists at that address. The build log
of v3.6.0 is where it surfaced: the compiler was still emitting
github.com/hanzoai/deploy/cmd/cd/commands.

3541 import paths across 690 .go, 19 .proto, 4 .yaml, 3 .sh, 2 .mod, Procfile
and Makefile. Plus the 62 ghcr.io/hanzoai/deploy image references, moved to
ghcr.io/hanzoai/cd to match hanzo.yml's build target — a distinct string from
the module path, replaced separately so neither could clobber the other.

go mod tidy clean, CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ./... clean.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 21:16:24 -07:00
..

GitOps Agent

The GitOps Agent leverages the GitOps Engine and provides access to many engine features via a simple CLI interface. The agent provides the same set of core features as Hanzo CD including basic reconciliation, syncing as well as sync hooks and sync waves.

The main difference is that the agent is syncing one Git repository into the same cluster where it is installed.

Quick Start

By default, the agent is configured to use manifests from guestbook directory in https://github.com/argoproj/argocd-example-apps repository.

The agent supports two modes:

  • namespaced mode - agent manages the same namespace where it is installed
  • full cluster mode - agent manages the whole cluster

Namespaced Mode

Install the agent with the default settings using the command below. Done!

kubectl apply -f https://raw.githubusercontent.com/argoproj/gitops-engine/master/agent/manifests/install-namespaced.yaml 
kubectl rollout status deploy/gitops-agent

The agent logs:

kubectl logs -f deploy/gitops-agent gitops-agent

Find the guestbook deployment in the current K8S namespace:

kubectl get deployment

Cluster Mode

The cluster mode grants full cluster access to the GitOps Agent. Use the following command to install an agent into the gitops-agent namespace and use it to manage resources in any cluster namespace.

Note

In cluster mode agents gets full cluster access. See gitops-agent-cluster-role.yaml definition for more information.

kubectl create ns gitops-agent
kubectl apply -f https://raw.githubusercontent.com/argoproj/gitops-engine/master/agent/manifests/install.yaml -n gitops-agent

Customize Git Repository

The agent runs git-sync as a sidecar container to access the repository. Update the container env variables to change the repository.

Demo Recording

asciicast

Profiling

Using env variables to enable profiling mode, the agent can be started with the following envs:

export GITOPS_ENGINE_PROFILE=web
# optional, default pprofile address is 127.0.0.1:6060
export GITOPS_ENGINE_PROFILE_HOST=127.0.0.1
export GITOPS_ENGINE_PROFILE_PORT=6060

And then you can open profile in the browser(or using pprof cmd to generate diagrams):