automated is the default posture for a workload application — without it the
new service becomes a fifth manual-sync app with no reason stated for being
one. prune and selfHeal stay off fleet-wide; see Sync Policy for
what each of the three settings buys.
Configure Ingress
Add a Tailscale Ingress routed through the ProxyGroup with Homepage annotations:
proxy-group: "ingress" routes through the shared ProxyGroup instead of spawning a per-ingress proxy
Do not use rules: with host: — the ProxyGroup proxy receives the FQDN as Host header (e.g. <service>.tail8d86e.ts.net), so a short host: <service> won’t match. Use defaultBackend instead.
tls.hosts sets the MagicDNS hostname (becomes <service>.tail8d86e.ts.net)
gethomepage.dev/group — use one of the existing groups: “Services”, “Content”, or “Infrastructure”
tailscale.com/tags is not needed in the default case — the ProxyGroup already applies tag:k8s. Only add this annotation when the service needs public internet access via the flyio-proxy. When you do, you must include both tags (setting tags overrides the ProxyGroup default):
# Sync apps to pick up new Applicationargocd app sync apps# Test on feature branch firstargocd app set <service> --revision <branch>argocd app sync <service># Verifykubectl --context=k3s-ringtail -n <service> get podskubectl --context=k3s-ringtail -n <service> logs -f deployment/<service># After PR merge, undo the branch pin from above.# This is the ONLY post-merge step: the pin persists until you clear it, but# the merge itself already deployed (see [[argocd#sync-policy|Sync Policy]]). Do not add a# sync here — you would be racing the auto-sync your merge started.argocd app set <service> --revision main
Checklist
Manifests in argocd/manifests/<service>/
Application in argocd/apps/<service>.yaml
Tailscale Ingress via ProxyGroup with Homepage annotations
Caddy route (if pod-to-service access needed)
Tested on feature branch
PR reviewed and merged (this is the deploy)
Branch pin cleared, if one was set
Service added to service-versions.yaml for version tracking