🔥 Hot fixing v23.3 (version {0}) aka Blue Olympic Balumbes release
Codenamed: Blue Olympic Fiend Read the Docs: Ocelot 23.3 Hot fixed versions: 23.3.0, 23.3.3 Milestone: v23.3 Hotfixes
❤️ A heartfelt "Thank You" to Roman Shevchik and Massimiliano Innocenti for their contributions in testing and reporting the Service Discovery issues, #2110 and #2119, respectively!
This release delivers a number of bug fixes for the predecessor's 23.3.0 release, which is full of new features but was not tested well. All bugs were combined into the v23.3 Hotfixes milestone.
Following the substantial refactoring of Service Discovery providers in the 23.3.0 release, the community identified and we have acknowledged several critical service discovery defects with providers such as Kube and Consul. The Kube
provider, while somewhat unstable, remained operational; however, the Consul
provider was entirely non-functional.
📓 If your projects rely on the Service Discovery feature and cannot function without it, please upgrade to this version to utilize the full list of features of version 23.3.0.
A comprehensive explanation of the technical details would span several pages; therefore, it is advisable for fans of Ocelot to review all pertinent technical information within the issue descriptions associated with the milestone. Our team has implemented some Breaking Changes which we urge you to review carefully (details follow).
Listed by priority:
ILoadBalancer
interface alteration: MethodLease
is nowLeaseAsync
. Interface FQN:Ocelot.LoadBalancer.LoadBalancers.ILoadBalancer
Method FQN:Ocelot.LoadBalancer.LoadBalancers.ILoadBalancer.LeaseAsync
DefaultConsulServiceBuilder
constructor modification: The first parameter's type has been changed fromFunc<ConsulRegistryConfiguration>
toIHttpContextAccessor
. Class FQN:Ocelot.Provider.Consul.DefaultConsulServiceBuilder
Constructor signature:public DefaultConsulServiceBuilder(IHttpContextAccessor contextAccessor, IConsulClientFactory clientFactory, IOcelotLoggerFactory loggerFactory)
- Adjustments to
Lease
type: TheLease
has been restructured from a class to a structure and elevated in the namespace hierarchy. Struct FQN:Ocelot.LoadBalancer.Lease
📓 Should your custom solutions involve overriding default Ocelot classes and their behavior, redevelopment or at least recompilation of the solution, followed by deployment, will be necessary.