Skip to content

Fix Eureka Dynamic Port Assignment overriding user-configured ports#1666

Merged
TimHess merged 7 commits intomainfrom
fix/1665-eureka-port-override
Apr 6, 2026
Merged

Fix Eureka Dynamic Port Assignment overriding user-configured ports#1666
TimHess merged 7 commits intomainfrom
fix/1665-eureka-port-override

Conversation

@TimHess
Copy link
Copy Markdown
Member

@TimHess TimHess commented Mar 30, 2026

Description

  • Detect explicitly configured eureka:instance:port or eureka:instance:securePort to avoid overwriting.
  • Add public UseAspNetCoreUrls property (default: true, to match Consul) to allow disabling dynamic port detection.

Fixes #1665

Quality checklist

  • Your code complies with our Coding Style.
  • You've updated unit and/or integration tests for your change, where applicable.
  • You've updated documentation for your change, where applicable.
    If your change affects other repositories, such as Documentation, Samples and/or MainSite, add linked PRs here.
  • There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.
  • You've added required license files and/or file headers (explaining where the code came from with proper attribution), where code is copied from StackOverflow, a blog, or OSS.

- Detect explicitly configured eureka:instance:port or eureka:instance:securePort to avoid overwriting
- Add public UseAspNetCoreUrls property (default: true, to match Consul) to allow disabling dynamic port detection.

Made-with: Cursor
@TimHess TimHess added Component/Discovery Issues related to Steeltoe Service Discovery ReleaseLine/4.x Identified as a feature/fix for the 4.x release line labels Mar 30, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 30, 2026

Summary - All Code Coverage (ubuntu-latest)

Line coverage Branch coverage

Assembly Line coverage Branch coverage
Steeltoe.Bootstrap.AutoConfiguration 97.4% 100%
Steeltoe.Common 84.3% 77.8%
Steeltoe.Common.Certificates 96.2% 85.5%
Steeltoe.Common.Hosting 84% 70%
Steeltoe.Common.Http 100% 85.2%
Steeltoe.Common.Logging 81.1% 56.2%
Steeltoe.Common.Net 64.5% 66.6%
Steeltoe.Configuration.Abstractions 96.1% 90.7%
Steeltoe.Configuration.CloudFoundry 99.1% 91.8%
Steeltoe.Configuration.ConfigServer 97.2% 91.6%
Steeltoe.Configuration.Encryption 97.6% 92.4%
Steeltoe.Configuration.Kubernetes.ServiceBindings 95.1% 89.3%
Steeltoe.Configuration.Placeholder 93.8% 84.7%
Steeltoe.Configuration.RandomValue 93.2% 90%
Steeltoe.Configuration.SpringBoot 98.3% 95%
Steeltoe.Connectors 93.9% 89.4%
Steeltoe.Connectors.EntityFrameworkCore 81.5% 75%
Steeltoe.Discovery.Configuration 92.3% 100%
Steeltoe.Discovery.Consul 97.6% 96.5%
Steeltoe.Discovery.Eureka 92% 85.4%
Steeltoe.Discovery.HttpClients 94.3% 95.4%
Steeltoe.Logging.Abstractions 99.4% 96.9%
Steeltoe.Logging.DynamicConsole 100% 95.4%
Steeltoe.Logging.DynamicSerilog 99.1% 95.4%
Steeltoe.Management.Abstractions 100% 100%
Steeltoe.Management.Endpoint 95.8% 89%
Steeltoe.Management.Prometheus 95.8% 91.6%
Steeltoe.Management.Tasks 100% ****
Steeltoe.Management.Tracing 100% 75%
Steeltoe.Security.Authentication.JwtBearer 100% 100%
Steeltoe.Security.Authentication.OpenIdConnect 73.8% 59%
Steeltoe.Security.Authorization.Certificate 96.7% 75%
Steeltoe.Security.DataProtection.Redis 100% ****

@TimHess TimHess requested a review from bart-vmware March 30, 2026 21:55
Comment thread src/Discovery/src/Eureka/Configuration/EurekaInstanceOptions.cs Outdated
Comment thread src/Discovery/src/Eureka/Configuration/EurekaInstanceOptions.cs Outdated
Comment thread src/Discovery/src/Eureka/EurekaServiceCollectionExtensions.cs Outdated
- Replace per-port flags with single IsPortConfigured, set in PostConfigure after all user Configure callbacks have run
- Skip listen address detection when ports are already configured
- Revert changes to EurekaServiceCollectionExtensions
- Add test for ports configured via code-based options configurer

Made-with: Cursor
@TimHess TimHess marked this pull request as ready for review March 31, 2026 17:00
@TimHess TimHess requested a review from bart-vmware March 31, 2026 17:26
Comment thread src/Discovery/test/Eureka.Test/DynamicPortAssignmentTest.cs
Comment thread src/Discovery/src/Eureka/Configuration/EurekaInstanceOptions.cs
Comment thread src/Discovery/src/Eureka/PostConfigureEurekaInstanceOptions.cs Outdated
Comment thread src/Discovery/src/Eureka/Configuration/EurekaInstanceOptions.cs Outdated
- Add assertions to DynamicPortAssignmentTest to verify opposite port is not enabled
- Document UseAspNetCoreUrls ignore conditions in Eureka and Consul options
- Remove IsPortConfigured and introduce ShouldSetPortsFromListenAddresses
- Update PostConfigureEurekaInstanceOptions to use ShouldSetPortsFromListenAddresses

Made-with: Cursor
Comment thread src/Discovery/src/Consul/Configuration/ConsulDiscoveryOptions.cs Outdated
Comment thread src/Discovery/src/Eureka/Configuration/EurekaInstanceOptions.cs Outdated
Comment thread src/Discovery/test/Eureka.Test/DynamicPortAssignmentTest.cs
Comment thread src/Discovery/src/Eureka/Configuration/EurekaInstanceOptions.cs Outdated
Comment thread src/Discovery/src/Eureka/Configuration/EurekaInstanceOptions.cs Outdated
- move remarks into summaries => schema
- break up too-complex ShouldSetPortsFromListenAddresses, move check to callers
- re-introduce IsPortConfigured and add corresponding test
Comment thread src/Discovery/src/Eureka/Configuration/EurekaInstanceOptions.cs Outdated
Comment thread src/Discovery/test/Eureka.Test/DynamicPortAssignmentTest.cs
TimHess added 3 commits April 2, 2026 08:15
- use calculated property to check for configured ports
- reduce cognitive complexity on SetPortsFromListenAddresses
Copy link
Copy Markdown
Member

@bart-vmware bart-vmware left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Apr 2, 2026

@TimHess TimHess merged commit 972d11d into main Apr 6, 2026
19 of 21 checks passed
@TimHess TimHess deleted the fix/1665-eureka-port-override branch April 6, 2026 12:43
@bart-vmware bart-vmware added this to the 4.2.0 milestone Apr 10, 2026
bart-vmware added a commit that referenced this pull request Apr 15, 2026
* Add IDiscoveryClient.InstancesFetched event

* Consul: don't use UseNetworkInterfaces to determine ports (reverts change from #1666)

* Cleanup queries, fix case insensivity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component/Discovery Issues related to Steeltoe Service Discovery ReleaseLine/4.x Identified as a feature/fix for the 4.x release line

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Eureka registration ports always overridden even when config specifies them

2 participants