Problem
PloneIngress hardcodes port: { number: 80 } for all httpcache service references. This breaks with PloneVinylCache where the traffic service runs on port 8080.
Root cause
The port number is a detail of the cache implementation:
PloneHttpcache (kube-httpcache): port 80
PloneVinylCache (cloud-vinyl): port 8080
The ingress shouldn't need to know this.
Solution
Use named port references (port: { name: "http" }) in ingress rules instead of numeric ports. Both cache implementations already define named ports on their services. Named ports decouple the ingress from the cache implementation's port choice.
Alternatively, PloneIngress could accept the port from the cache construct that knows its own port. But named ports are cleaner and more Kubernetes-idiomatic.
Problem
PloneIngresshardcodesport: { number: 80 }for all httpcache service references. This breaks withPloneVinylCachewhere the traffic service runs on port 8080.Root cause
The port number is a detail of the cache implementation:
PloneHttpcache(kube-httpcache): port 80PloneVinylCache(cloud-vinyl): port 8080The ingress shouldn't need to know this.
Solution
Use named port references (
port: { name: "http" }) in ingress rules instead of numeric ports. Both cache implementations already define named ports on their services. Named ports decouple the ingress from the cache implementation's port choice.Alternatively,
PloneIngresscould accept the port from the cache construct that knows its own port. But named ports are cleaner and more Kubernetes-idiomatic.