Harbor, Gitea, Argo CD, Jenkins, Vault, Grafana and vmui now answer on
their deployshed.com names alone. Each was already serving both while the
move was proved out; this removes the nip.io half.
The dual-hostname workarounds go with it. Jenkins' secondaryingress existed
only because its chart's primary ingress takes one hostName and a
certificate could not span both names — the real domain moves onto the
primary with jenkins-tls, which it already holds. Argo CD gets extraTls
rather than ingress.tls, because the boolean hardcodes secretName
argocd-server-tls and would request a second certificate for a name that
already has a valid one in argocd-deployshed-tls.
Harbor also changes in two ways beyond the hostname:
- externalURL moves to https://harbor.infra.deployshed.com. Harbor hands
this to docker clients in its own API responses and builds the push
commands shown in its UI from it, so a stale value is what makes a
correctly-configured registry still advertise the old address.
- updateStrategy is now Recreate. Its jobservice and registry volumes are
standard-rwo (ReadWriteOnce), and a RollingUpdate starts the new pod
before the old one releases the disk, so the replacement hangs forever
on Multi-Attach. The cluster was sitting in exactly that state, old pods
serving while new ones stayed in ContainerCreating. The chart's own
comment on this value recommends Recreate when RWM is unavailable. The
cost is a brief outage during upgrades, which beats a rollout that
cannot complete.
The private registry CA is not removed yet. Apps deployed before this move
recorded nip.io image references that only change when each is rebuilt, so
the old hostname stays served by a standalone Ingress until then.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LEsTefWWifp4ikvhHF5s6N