provider=consul auto-injects attr.consul.version >= 1.8.0 constraint which
filters out int (old Consul). provider=nomad uses native Nomad service
discovery — Traefik still picks up tags via Nomad catalog.
- Remove sed substitution from pipeline (no more __PLACEHOLDER__ pattern)
- Nomad template{} reads mmd/* keys from Consul KV at allocation time
- Secrets never touch git or pipeline logs
- Remove Gitea secrets dependency for app secrets (only HARBOR_ROBOT_TOKEN needed)