Skip to content

Releases: cloudfoundry/routing-release

0.334.0

31 Mar 15:36

Choose a tag to compare

0.334.0

Release Date: March 31, 2025

Changes

  • feat: Introduce switch for envelope v1 metrics - #456 - Thanks @b1tamara and @mike-jc !
  • revert fix for race condition now that race condition does not exist - cloudfoundry/gorouter#469
    • This change + Go 1.24 changes how 1XX responses are handled. This might affect users:
      Transport’s limit on 1xx informational responses received in response to a request has changed. It previously aborted a request and returned an error after receiving more than 5 1xx responses. It now returns an error if the total size of all 1xx responses exceeds the Transport.MaxResponseHeaderBytes configuration setting.

Bosh Job Spec changes:

diff --git a/jobs/gorouter/spec b/jobs/gorouter/spec
index 1feb42f7..d373561e 100644
--- a/jobs/gorouter/spec
+++ b/jobs/gorouter/spec
@@ -76,8 +76,14 @@ properties:
     description: "TLS Certificate used for the TLS listener of the LB healthcheck endpoint"
   router.status.tls.key:
     description: "Private Key used for the TLS listener of the LB healthcheck endpoint"
+  router.enable_envelope_v1_metrics:
+      description: "Enables support for metrics reported via Envelope."
+      default: true
   router.prometheus.port:
-    description: "Port for the prometheus endpoint."
+    description: "Port for the prometheus endpoint. Automatically enables Prometheus support."
+  router.prometheus.enable_scraper:
+    description: "Activate the Prometheus scraper to collect metrics from the gorouter."
+    default: true
   router.prometheus.server_name:
     description: "The server name used in the certificate for the metrics endpoint."
   router.prometheus.ca_cert:
@@ -89,6 +95,18 @@ properties:
   router.prometheus.key:
     description: "TLS private key for prometheus server."
     default: ""
+  router.prometheus.meters.route_lookup_time_histogram_buckets:
+    description: "Upper limits in nanoseconds of the ranges in which the observed value of route lookup time is expected to fall"
+    default: [10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000, 90000, 100000]
+  router.prometheus.meters.route_registration_latency_histogram_buckets:
+    description: "Upper limits in milliseconds of the ranges in which the observed value of route registration latency is expected to fall"
+    default: [0.1, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4]
+  router.prometheus.meters.routing_response_latency_histogram_buckets:
+    description: "Upper limits in milliseconds of the ranges in which the observed value of route response latency is expected to fall"
+    default: [1, 2, 4, 6, 8, 10, 20, 40, 50, 100, 500, 1000]
+  router.prometheus.meters.http_latency_histogram_buckets:
+    description: "Upper limits in seconds of the ranges in which the observed value of the latency of http requests from gorouter and back"
+    default: [0.1, 0.2, 0.4, 0.8, 1.6, 3.2, 6.4, 12.8, 25.6]
   router.requested_route_registration_interval_in_seconds:
     description: |
       On startup, the router will delay listening for requests by this duration to increase likelihood that it has a complete routing table before serving requests.

✨ Built with go 1.24.1

Full Changelog: v0.333.0...v0.334.0

Resources

0.333.0

24 Mar 14:41

Choose a tag to compare

0.333.0

Release Date: March 24, 2025

Changes

  • Upgrade go to 1.24!
  • ⚠️ Minor Go bumps often cause some turbulence with routing-release. You can read the full go 1.24 release notes here.
  • ⚠️ Go 1.24 changes how 1XX responses are handled. This might affect users:

Transport’s limit on 1xx informational responses received in response to a request has changed. It previously aborted a request and returned an error after receiving more than 5 1xx responses. It now returns an error if the total size of all 1xx responses exceeds the Transport.MaxResponseHeaderBytes configuration setting.

Bosh Job Spec changes:

diff --git a/jobs/acceptance_tests/spec b/jobs/acceptance_tests/spec
index 51a81762..109e7e3f 100644
--- a/jobs/acceptance_tests/spec
+++ b/jobs/acceptance_tests/spec
@@ -7,7 +7,7 @@ templates:
   bpm.yml.erb: config/bpm.yml
 
 packages:
- - golang-1.23-linux
+ - golang-1.24-linux
  - acceptance_tests
  - rtr
  - cf-cli-8-linux
diff --git a/jobs/smoke_tests/spec b/jobs/smoke_tests/spec
index 4ea8eb07..1260ab4f 100644
--- a/jobs/smoke_tests/spec
+++ b/jobs/smoke_tests/spec
@@ -7,7 +7,7 @@ templates:
   bpm.yml.erb: config/bpm.yml
 
 packages:
- - golang-1.23-linux
+ - golang-1.24-linux
  - acceptance_tests
  - cf-cli-8-linux
 

✨ Built with go 1.24.1

Full Changelog: v0.332.0...v0.333.0

Resources

0.332.0

20 Mar 15:52

Choose a tag to compare

0.332.0

Release Date: March 20, 2025

Changes

Bosh Job Spec changes:

diff --git a/jobs/gorouter/spec b/jobs/gorouter/spec
index 9d694a02..1feb42f7 100644
--- a/jobs/gorouter/spec
+++ b/jobs/gorouter/spec
@@ -328,7 +328,7 @@ properties:
       this property and operators have to explicitly enable them. This is done to prevent breaking
       log parsing in existing setups by the introduction of new fields. Does not affect stdout /
       stderr logs.
-      Available fields are: local_address
+      Available fields are: backend_time, dial_time, dns_time, failed_attempts, failed_attempts_time, local_address, tls_time
     default: []
   router.logging.format.timestamp:
     description: |

✨ Built with go 1.23.7

Full Changelog: v0.331.0...v0.332.0

Resources

0.331.0

28 Feb 15:15

Choose a tag to compare

0.331.0

Release Date: February 28, 2025

Changes

  • Bump dependancies
  • Inline multierror submodule - #454 - Thanks @maxmoehl !

✨ Built with go 1.23.6

Full Changelog: v0.330.0...v0.331.0

Resources

0.330.0

07 Feb 16:19

Choose a tag to compare

0.330.0

Release Date: February 07, 2025

Changes

  • bump dependancies
  • add extendable bosh property to log extra access log fields - #448 - thanks @maxmoehl !

Bosh Job Spec changes:

diff --git a/jobs/gorouter/spec b/jobs/gorouter/spec
index 868629ac..9d694a02 100644
--- a/jobs/gorouter/spec
+++ b/jobs/gorouter/spec
@@ -322,6 +322,14 @@ properties:
   router.logging.syslog_network:
     description: "Network protocol to use when connecting to the syslog server. Valid values are 'tcp', 'udp', <empty>. When choosing an empty string value, the local syslog daemon is used."
     default: "udp"
+  router.logging.extra_access_log_fields:
+    description: |
+      An array of additional access log fields to log. Any new log fields will only be exposed via
+      this property and operators have to explicitly enable them. This is done to prevent breaking
+      log parsing in existing setups by the introduction of new fields. Does not affect stdout /
+      stderr logs.
+      Available fields are: local_address
+    default: []
   router.logging.format.timestamp:
     description: |
       Format for timestamp in component logs. Valid values are 'rfc3339', 'deprecated', and 'unix-epoch'."

✨ Built with go 1.23.6

Full Changelog: v0.329.0...v0.330.0

Resources

0.329.0

21 Jan 15:23

Choose a tag to compare

0.329.0

Release Date: January 21, 2025

Changes

  • BREAKING CHANGE: The lb_algo load balancing option key name has been renamed to loadbalancing. This standardizes the name across components. Read more about this change here.
  • Bump to go 1.23.5.
  • Bump dependancies.

Bosh Job Spec changes:

diff --git a/jobs/route_registrar/spec b/jobs/route_registrar/spec
index b9afabbe..c39eac91 100644
--- a/jobs/route_registrar/spec
+++ b/jobs/route_registrar/spec
@@ -144,7 +144,7 @@ properties:
         writable (optional, boolean): sets the writable flag. defaults to false
 
       options object
-        lb_algo (optional, string): Load balancing algorithm for routing incoming requests to the backend: 'round-robin' or 'least-connection'. In cases where this option is not specified, the algorithm defined in gorouter spec is applied.
+        loadbalancing (optional, string): Load balancing algorithm for routing incoming requests to the backend: 'round-robin' or 'least-connection'. In cases where this option is not specified, the algorithm defined in gorouter spec is applied.
 
     example: |
       - name: my-service
@@ -162,7 +162,7 @@ properties:
           timeout: 5s
         route_service_url: https://my-oauth-proxy-route-service.example.com
         options:
-          lb_algo: least-connection
+          loadbalancing: least-connection
       - name: my-tls-endpoint
         tls_port: 12346
         server_cert_domain_san: "my-tls-endpoint.internal.com"

✨ Built with go 1.23.5

Full Changelog: v0.328.0...v0.329.0

Resources

0.328.0

06 Jan 15:11

Choose a tag to compare

0.328.0

Release Date: January 06, 2025

Changes

  • Bump dependancies

✨ Built with go 1.23.4

Full Changelog: v0.327.0...v0.328.0

Resources

0.327.0

20 Dec 15:25

Choose a tag to compare

0.327.0

Release Date: December 20, 2024

Changes

  • Bug fix: update the tcp_routes table to have host_tls_port default to 0 instead of NULL. Before this fix, tcp routes registered via external-to-cf route registrars running routing-release 0.301.0 or lower will have intermittent connectivity issues. - cloudfoundry/routing-api#67 - Thanks @ameowlia!
  • Bump dependancies

✨ Built with go 1.23.4

Full Changelog: v0.326.0...v0.327.0

Resources

0.326.0

16 Dec 21:57

Choose a tag to compare

0.326.0

Release Date: December 16, 2024

Changes

  • Breaking Change: Gorouter will now properly emit RFC5424 syslog messages instead of broken BSD-style syslog messages. It now only supports syslog over UDP and TCP like it is documented for some time now - gorouter #459 & gorouter #411 - Thanks @maxmoehl and @peanball !
  • Gorouter now supports configurable syslog message truncation via gorouter's new router.logging.syslog_message_limit bosh property gorouter #447 - Thanks @maxmoehl !
  • Bump tcp-router's haproxy to 2.8.13
  • Bump dependencies

Bosh Job Spec changes:

diff --git a/jobs/gorouter/spec b/jobs/gorouter/spec
index cdebbd5a..868629ac 100644
--- a/jobs/gorouter/spec
+++ b/jobs/gorouter/spec
@@ -313,6 +313,9 @@ properties:
   router.logging.syslog_tag:
     description: "Tag to use when writing syslog messages"
     default: "vcap.gorouter"
+  router.logging.syslog_message_limit:
+    description: "Limit the number of bytes per access log written to syslog. A value of zero disables the limit."
+    default: 0
   router.logging.syslog_addr:
     description: "Address of a syslog server to send access logs"
     default: "localhost:514"

✨ Built with go 1.23.4

Full Changelog: v0.325.0...v0.326.0

Resources

0.325.0

09 Dec 19:54

Choose a tag to compare

0.325.0

Release Date: December 09, 2024

Changes

  • Dependency Bumps

✨ Built with go 1.23.4

Full Changelog: v0.324.0...v0.325.0

Resources