diff --git a/CHANGELOG.md b/CHANGELOG.md index cc3b5aad..7f243e37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,8 +12,12 @@ All notable changes to this project will be documented in this file. ### Changed +- BREAKING: `Listener.status.addresses` now defaults to hostnames for all service types + (previously NodePort and ClusterIP would prefer IP addresses). + However, the `external-unstable` ListenerClass deployed by the listener-operator still uses the IPs to avoid a regression, + e.g. in the case of `kind` clusters the host can probably not resolve the hostname of the Kubernetes node + (such as `kind-control-plane`) ([#233], [#243]). - `Listener.status.addresses` for NodePort listeners now includes replicas that are currently unavailable ([#231]). -- `Listener.status.addresses` now defaults to DNS hostnames for all service types (previously NodePort and ClusterIP would prefer IP addresses, [#233]). - Stale Listener subobjects will now be deleted ([#232]). - Tagged Listener Services with the SDP labels ([#232]). @@ -30,6 +34,7 @@ All notable changes to this project will be documented in this file. [#234]: https://github.com/stackabletech/listener-operator/pull/234 [#237]: https://github.com/stackabletech/listener-operator/pull/237 [#238]: https://github.com/stackabletech/listener-operator/pull/238 +[#243]: https://github.com/stackabletech/listener-operator/pull/243 ## [24.7.0] - 2024-07-24 diff --git a/deploy/helm/listener-operator/templates/listener-classes.yaml b/deploy/helm/listener-operator/templates/listener-classes.yaml index b57a0fae..dce4dc7d 100644 --- a/deploy/helm/listener-operator/templates/listener-classes.yaml +++ b/deploy/helm/listener-operator/templates/listener-classes.yaml @@ -14,6 +14,11 @@ metadata: name: external-unstable spec: serviceType: NodePort + # Ideally we would prefer the Hostname here, but up to (including) SDP 24.7 we defaulted to the IP. + # We actually defaulted to Hostname for some weeks, but noticed this breaks external access to kind clusters, as the + # local machines can not resolve the hostnames of the nodes (such as kind-control-plane). + # So we stick to the old default and re-visit the default later - after SDP 24.11 is released. + preferredAddressType: IP --- apiVersion: listeners.stackable.tech/v1alpha1 kind: ListenerClass @@ -36,6 +41,11 @@ metadata: name: external-unstable spec: serviceType: NodePort + # Ideally we would prefer the Hostname here, but up to (including) SDP 24.7 we defaulted to the IP. + # We actually defaulted to Hostname for some weeks, but noticed this breaks external access to kind clusters, as the + # local machines can not resolve the hostnames of the nodes (such as kind-control-plane). + # So we stick to the old default and re-visit the default later - after SDP 24.11 is released. + preferredAddressType: IP --- apiVersion: listeners.stackable.tech/v1alpha1 kind: ListenerClass @@ -51,6 +61,10 @@ spec: # or on-premise environments that don't support external LoadBalancer peering (such as Calico (https://docs.tigera.io/calico/latest/networking/configuring/advertise-service-ips) # or MetalLB (https://metallb.org/)). serviceType: NodePort + # As the nodes have stable addresses we expect them to have hostnames that are resolvable outside of Kubernetes. + # And yes, we know this causes problems when running on kind with the stable-nodes preset (default), as the kind node + # hostname is very likely not resolvable on the host machine. + preferredAddressType: Hostname {{ else }} {{ fail "An invalid preset was configured" }} {{ end }}