villebro opened a new pull request, #360:
URL: https://github.com/apache/superset-kubernetes-operator/pull/360

   ## Summary
   
   A component Service with `service.type: NodePort` or `LoadBalancer` that 
does not pin `service.nodePort` gets a node port auto-allocated by the 
apiserver on create. The component reconciler rebuilds the desired Service spec 
from scratch each reconcile (with `nodePort: 0`) and did not preserve the 
allocated value, so the apiserver re-allocated a **different** node port on 
every reconcile. The externally reachable node port (and the LoadBalancer 
target) therefore changed continuously, causing Service update churn and 
intermittently broken external access.
   
   This affects a supported, common configuration and is silent — there is no 
error, the port just keeps moving.
   
   ## Details
   
   `preserveServiceAllocatedFields` already carries apiserver-allocated fields 
(`clusterIP`, `clusterIPs`, `ipFamilies`, `healthCheckNodePort`) from the 
existing Service into the rebuilt desired spec. This extends it to also 
preserve per-port `nodePort` for `NodePort`/`LoadBalancer` Services when the 
user has not pinned one (matching the existing port by name + protocol — the 
operator names its single port `http`). A user-pinned `nodePort` still wins, 
and `ClusterIP` Services are deliberately left untouched so a node port is 
never set on a type that rejects it.
   
   ### Tests
   
   Extended `TestPreserveServiceAllocatedFields` with cases for: preserving an 
auto-allocated node port when unpinned, keeping a user-pinned node port over 
the existing one, and not carrying a node port onto a `ClusterIP` Service.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to