The path a request takes¶
graph LR
U[Client] -->|443/tcp| HAP[HAProxy on core-1]
HAP -->|31344/tcp nodeport| TR[Traefik]
TR --> DE[DE services]
TR --> KC[Keycloak]
TR --> UP[User Portal]
NG[ingress-nginx] --> VICE[VICE app ingresses]
HAP --> NG
Three pieces, each with a distinct job:
- HAProxy is the public entry point on the
host, listening on
80and443. - Traefik is the in-cluster ingress controller, reached through node ports
(
31343HTTP,31344HTTPS by default). - ingress-nginx still handles VICE app ingresses and is being retired.
Traefik¶
ansible-playbook -i /path/to/inventory --tags traefik kubernetes.yml
Install it after cert-manager, so routes can reference the certificates they need at creation time.
The node ports are configurable. If you change them, change the HAProxy back end to match, and reopen the firewall on the new ports — see network requirements.
Verify:
kubectl get svc -A | grep -i traefik
kubectl get ingressroute -A
ingress-nginx (transitional)¶
ingress-nginx gives VICE apps their per-analysis ingresses. Traefik is intended to take this over, and the deployment tag remains only until that migration completes.
ansible-playbook -i /path/to/inventory --tags ingress-nginx kubernetes.yml
The kustomize manifests are in the
cluster resources repository. If you deploy into a namespace
other than prod, the default backend argument has to follow:
- --default-backend-service=prod/vice-default-backend
+ --default-backend-service=<NAMESPACE>/vice-default-backend
Applying the overlay creates the ingress-nginx namespace.
Do not build new routes on ingress-nginx
New services should get Traefik routes. Anything added to ingress-nginx now is work that has to be migrated later.
DNS and certificates¶
| Hostname | Serves |
|---|---|
de.<BASE_DOMAIN> |
Discovery Environment |
keycloak.<BASE_DOMAIN> |
Keycloak |
user.<BASE_DOMAIN> |
User Portal |
vice.<BASE_DOMAIN> |
VICE landing and operator public base URL |
*.vice.<BASE_DOMAIN> |
Individual interactive analyses |
The wildcard is what forces DNS-01 certificate challenges; see cert-manager.