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

Test Repository Server Files

This directory contains configuration and cryptographic keys for running the E2E test Git server in a Docker container. The server provides Git repositories accessible via SSH, HTTP, and HTTPS.

Overview

The test server runs in Docker (argoproj/argo-cd-ci-builder:v1.0.0) using goreman to manage three processes: sshd (port 2222), nginx (ports 9080, 9443-9445), and fcgiwrap (Git HTTP backend).

Files

start-git.sh

Starts the Docker container with the test Git server. Mounts the current directory and CD_E2E_DIR (default: /tmp/argo-e2e), exposing ports for SSH and HTTP/HTTPS access.

start-helm-registry.sh / start-authenticated-helm-registry.sh

Start Helm registries for testing Helm chart functionality, with and without authentication.

Procfile

Defines processes managed by goreman:

  • sshd: Copies fixed SSH host keys to /etc/ssh/ before starting on port 2222
  • fcgiwrap: FastCGI wrapper for Git HTTP backend
  • nginx: Web server for HTTP/HTTPS Git access

SSH Keys

SSH Host Keys

  • ssh_host_rsa_key, ssh_host_ecdsa_key, ssh_host_ed25519_key (with .pub files)

By copying pre-generated keys before starting sshd, the same keys are used every time, keeping the ssh_known_hosts the same on restarts.

ssh_known_hosts

Contains SSH host key fingerprints for:

  • [localhost]:2222 - Local development/testing
  • [cd-e2e-server]:2222 - Remote/in-cluster testing

Both entries have identical fingerprints since they use the same keys from this directory.

id_rsa.pub

Public key added to ~/.ssh/authorized_keys in the container for SSH authentication.

nginx.conf

Provides HTTP (9080), HTTPS (9443/9444/9445), and Helm repository access. Proxies Git operations to git-http-backend via fcgiwrap.

sudoers.conf

Sudo configuration allowing test users to start services with elevated privileges.

Regenerating SSH Keys

If you need to regenerate the SSH host keys:

1. Generate New Keys

cd test/fixture/testrepos

# Generate RSA key
ssh-keygen -t rsa -b 2048 -f ssh_host_rsa_key -N "" -C "root@cd-e2e"

# Generate ECDSA key
ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N "" -C "root@cd-e2e"

# Generate Ed25519 key
ssh-keygen -t ed25519 -f ssh_host_ed25519_key -N "" -C "root@cd-e2e"

2. Update ssh_known_hosts

# Start temporary sshd with new keys
sudo mkdir -p /tmp/test-sshd
sudo cp ssh_host_*_key* /tmp/test-sshd/
sudo chmod 600 /tmp/test-sshd/ssh_host_*_key

sudo /usr/sbin/sshd -p 2222 \
  -h /tmp/test-sshd/ssh_host_rsa_key \
  -h /tmp/test-sshd/ssh_host_ecdsa_key \
  -h /tmp/test-sshd/ssh_host_ed25519_key \
  -D &
SSHD_PID=$!

# Scan to get new fingerprints
ssh-keyscan -p 2222 localhost > ssh_known_hosts.tmp

# Stop temporary sshd
sudo kill $SSHD_PID
sudo rm -rf /tmp/test-sshd

# Create new ssh_known_hosts with both localhost and cd-e2e-server entries
cat > ssh_known_hosts << 'EOF'
# localhost:2222 SSH-2.0-OpenSSH_X.Xp1
EOF
cat ssh_known_hosts.tmp >> ssh_known_hosts
echo "# For in-cluster tests" >> ssh_known_hosts
sed 's/\[localhost\]/[cd-e2e-server]/g' ssh_known_hosts.tmp >> ssh_known_hosts

rm ssh_known_hosts.tmp

3. Verify

# Start the test server
./test/fixture/testrepos/start-git.sh

# In another terminal, test SSH connection
ssh -p 2222 -o UserKnownHostsFile=test/fixture/testrepos/ssh_known_hosts root@localhost