Skip to content

Releases: cloudfoundry/routing-release

0.279.0

31 Aug 20:36
Compare
Choose a tag to compare

Changes

  • Bumped to golang 1.21.0!
  • Refactor of proxy config properties. Thanks @domdom82!

Bosh Job Spec changes:

diff --git a/jobs/acceptance_tests/spec b/jobs/acceptance_tests/spec
index db508ca3..e1a6a9ae 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.20-linux
+ - golang-1.21-linux
  - acceptance_tests
  - rtr
  - cf-cli-8-linux
diff --git a/jobs/smoke_tests/spec b/jobs/smoke_tests/spec
index 5776a9c8..b230192b 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.20-linux
+ - golang-1.21-linux
  - acceptance_tests
  - cf-cli-8-linux
 

✨ Built with go 1.21.0

Full Changelog: v0.278.0...v0.279.0

Resources

0.278.0

24 Aug 16:44
Compare
Choose a tag to compare

Changes

  • Continue to forward relevant headers by removing hop-by-hop headers that could interfere with gorouter when proxying client requests
  • Go mod dependency updates

Bosh Job Spec changes:

diff --git a/jobs/gorouter/spec b/jobs/gorouter/spec
index a14133ed..2bb394e9 100644
--- a/jobs/gorouter/spec
+++ b/jobs/gorouter/spec
@@ -282,6 +282,27 @@ properties:
     example:
     - name: X-Vcap-Request-Id
     - name: Accept-Ranges
+  router.hop_by_hop_headers_to_filter:
+    description: |
+        (optional, array value) List of HTTP Headers that are filtered for
+        Hop-By-Hop Connection header.
+        When clients make requests to the gorouter and the gorouter proxies
+        their request, these HTTP Headers will be automatically be removed from
+        the request's Connection header and sent as normal headers to the
+        target backend. This list *also* specificies the Headers that can be
+        returned by the backend; i.e. if a client attempts to send one of these
+        Headers in their Connection Header to gorouter and it's *NOT* filtered,
+        the header will *NOT* be returned to client properly after proxying the
+        request.
+    default:
+    - X-Forwarded-For
+    - X-Forwarded-Proto
+    - B3
+    - X-B3
+    - X-B3-SpanID
+    - X-B3-TraceID
+    - X-Request-Start
+    - X-Forwarded-Client-Cert
   router.frontend_idle_timeout:
     description: |
       (optional, integer) Duration in seconds to maintain an open connection when client supports keep-alive.

✨ Built with go 1.20.7

Full Changelog: v0.277.0...v0.278.0

Resources

0.277.0

17 Aug 16:49
Compare
Choose a tag to compare

Changes

  • Additional metrics/logging component ports have been reserved from gorouter's ephemeral port range.

✨ Built with go 1.20.7

Full Changelog: v0.276.0...v0.277.0

Resources

0.276.0

10 Aug 20:03
Compare
Choose a tag to compare

Changes

  • Bumped golang to 1.20.7
  • 🐛 Added new loggregator ports to gorouter's list of ports to exclude from ephemeral ranges. Thanks @ctlong!

✨ Built with go 1.20.7

Full Changelog: v0.275.0...v0.276.0

Resources

0.275.0

12 Jul 18:23
Compare
Choose a tag to compare

Changes

  • Bumps golang to 1.20.6
  • Resolves a bug in gorouter where path-based routes could return 503s when no backend endpoints remain, rather than falling back to non-path (hostname-only) routes. Thanks @domdom82!

✨ Built with go 1.20.6

Full Changelog: v0.274.0...v0.275.0

Resources

0.274.0

30 Jun 14:55
Compare
Choose a tag to compare

Changes

  • 🐛 Bug Fix: This release fixes this known issue around multiple expect 100-continue responses.

✨ Built with go 1.20.5

Full Changelog: v0.273.0...v0.274.0

Resources

0.273.0

29 Jun 13:45
Compare
Choose a tag to compare

Known Issue

⚠️ This release is vulnerable to this known issue around handling expect 100-continue responses. We recommend skipping this version and upgrading to 0.274.0 instead.

Changes

  • Bug Fix: Set Gorouter's ExpectContinueTimeout to 1 sec. This fixes bug 1 of this known issue
  • Dependency Bump: Bump the cf cli version in the acceptance test errand and the smoke test errand from v6 to v8.

Bosh Job Spec changes:

diff --git a/jobs/acceptance_tests/spec b/jobs/acceptance_tests/spec
index 6a73b9ae..db508ca3 100644
--- a/jobs/acceptance_tests/spec
+++ b/jobs/acceptance_tests/spec
@@ -10,7 +10,7 @@ packages:
  - golang-1.20-linux
  - acceptance_tests
  - rtr
- - cf-cli-6-linux
+ - cf-cli-8-linux
 
 properties:
   acceptance_tests.nodes:
diff --git a/jobs/smoke_tests/spec b/jobs/smoke_tests/spec
index 0426dc99..5776a9c8 100644
--- a/jobs/smoke_tests/spec
+++ b/jobs/smoke_tests/spec
@@ -9,7 +9,7 @@ templates:
 packages:
  - golang-1.20-linux
  - acceptance_tests
- - cf-cli-6-linux
+ - cf-cli-8-linux
 
 properties:
   acceptance_tests.verbose:

✨ Built with go 1.20.5

Full Changelog: v0.272.0...v0.273.0

Resources

0.272.0

21 Jun 14:28
Compare
Choose a tag to compare

Known issue

⚠️ This release is vulnerable to this known issue around handling expect 100-continue responses. We recommend skipping this version and upgrading to 0.274.0 instead.

Changes

  • route_registrar now emites route registration events immediately upon startup, rather than waiting for a full registration interval to pass. This will cut down on accidental TTL expiry incurred by restarting route-registrar.
  • ✨ The router.enable_log_attempts_details property has been added to allow operators to configure Gorouter to log additional information about retried attempts to send requests to backends. Thanks @maxmoehl!
  • 🐛Specifying multiple CA certs to route_registrar via route_registrar.routing_api.ca_certs will now render correctly as multiple certs in a single CA file.
  • 🐛 Routing API clients now correctly refresh their UAA tokens prior to expiry. This should help prevent route_registrar from crashing whenever the token expires.
  • Golang package dependency bumps

Bosh Job Spec changes:

diff --git a/jobs/gorouter/spec b/jobs/gorouter/spec
index 0f61e044..a14133ed 100644
--- a/jobs/gorouter/spec
+++ b/jobs/gorouter/spec
@@ -236,6 +236,9 @@ properties:
   router.logging_level:
     description: "Log level for router"
     default: "info"
+  router.enable_log_attempts_details:
+    description: "Log additional fields in the access log that provide more details on the specific timings and attempts performed towards endpoints."
+    default: false
   router.logging.format.timestamp:
     description: |
       Format for timestamp in component logs. Valid values are 'rfc3339', 'deprecated', and 'unix-epoch'."

✨ Built with go 1.20.5

Full Changelog: v0.271.0...v0.272.0

Resources

0.271.0

07 Jun 13:19
Compare
Choose a tag to compare

Known Issue

⚠️ This release is vulnerable to this known issue around handling expect 100-continue responses. We recommend skipping this version and upgrading to 0.274.0 instead.

Changes

  • Bumped to golang 1.20.5

✨ Built with go 1.20.5

Full Changelog: v0.270.0...v0.271.0

Resources

0.270.0

30 May 19:57
Compare
Choose a tag to compare

Known Issue

⚠️ This release is vulnerable to this known issue around handling expect 100-continue responses. We recommend skipping this version and upgrading to 0.274.0 instead.

Changes

  • CI now tests CATS + RATS against cflinuxfs4
  • 🐛Gorouter's request_timeout_in_seconds now only affects request timeout and is not used for idle timeout, which is set by frontend_idle_timeout
  • routing-utils now passes go vet
  • Dependency Bumps:
    • The vendored healthchecker boshrelease is now v0.8.0
    • go.step.sm/crypto v0.31.0
    • Go dependency bumps for the routing-utils package:
      • code.cloudfoundry.org/tlsconfig 8f91c367795b
      • github.com/nats-io/nats.go v1.26.0

Bosh Job Spec changes:

diff --git a/jobs/gorouter/spec b/jobs/gorouter/spec
index 4fa13ae3..0f61e044 100644
--- a/jobs/gorouter/spec
+++ b/jobs/gorouter/spec
@@ -380,11 +380,9 @@ properties:
     default: 22
   request_timeout_in_seconds:
     description: |
-      This configures a "request timeout" and a "backend idle timeout".
+      This configures an entire request timeout.
       Requests from router to backend endpoints that are longer than this duration will be canceled and logged as
-      `backend-request-timeout` errors. In addition, TCP connections between router and backend endpoints that
-      are idle for longer than this duration will be closed. Related properties: `router.max_idle_connections`
-      and `router.keep_alive_probe_interval`.
+      `backend-request-timeout` errors. If set to 0 this timeout is disabled.
     default: 900
   endpoint_dial_timeout_in_seconds:
     description: |

✨ Built with go 1.20.4

Full Changelog: v0.269.0...v0.270.0

Resources