/
Kong routes management migration

Kong routes management migration

Overview

There has been a change in the way how Eureka manages routes in Kong.

The goal of the change is to reduce number of routes in Kong. This is achieved by making routes non-tenant-specific - thus avoiding duplication of same routes per tenant.

Since routes are now not tenant-specific, they can be created/deleted immediately when module discovery information is added/deleted - which is why the logic for managing Kong routes is now in mgr-applications microservice.

Previously routes were created/deleted in Kong on entitling/unentitling application for a specific tenant - and that is why logic for managing Kong routes was in mgr-tenant-entitlements microservice.

Relevant Jira issues:

Transition process

Prerequisites

Deploy mgr-applications version 2.0.2 or later.

Deploy mgr-tenant-entitlements version 2.0.8 or later (release TBD soon).

Enable feature toggle in mgr-applications by setting configuration property routemanagement.enable to true, e.g. via environment variable ROUTEMANAGEMENT_ENABLE = true

Disable feature toggle in mgr-tenant-entitlements by setting configuration property application.kong.enabled to false, e.g. via environment variable ROUTEMANAGEMENT_ENABLE = false

Steps

  • Disable Kong routes management in mgr-tenant-entitlements via env variable ROUTEMANAGEMENT_ENABLE = false

  • Enable Kong routes management in mgr-applications via env variable ROUTEMANAGEMENT_ENABLE = true

  • Get all module IDs from discovery information: execute HTTP GET on <mgr-applications>/modules/discovery?limit=500, pick id field from discovery array entries, mind the possible pagination - get next pages if there are any.

  • Delete discovery information per module: execute HTTP DELETE on <mgr-applications>/modules/<module-id>/discovery where module-id is a module id from previous step. Execute such HTTP request for all modules. Optionally: verify that Kong routes were deleted for these modules via Kong management UI.

  • Re-create discovery information: execute HTTP POST on <mgr-applications>/modules/discovery with a modules discovery information (can be the same as in GET step).

Verification

In Kong management UI, go to Gateway Services section, find some modules for which discovery information was just re-created, and check their routes - the expression section for route should NOT contain x_okapi_tenant header part. E.g. go to module details, open routes tab, open any route and check the expression field:

Screenshot 2025-01-09 at 14.16.36.png
Screenshot 2025-01-09 at 14.28.27.png

Related content

Eureka Developer Guide
Eureka Developer Guide
More like this
Folio Eureka Platform Overview
Folio Eureka Platform Overview
Read with this
EUREKA-211: Spike - Revisit routing of mod-scheduler requests
EUREKA-211: Spike - Revisit routing of mod-scheduler requests
More like this
Install FOLIO
Read with this
Eureka Platform Timeouts Configuration
Eureka Platform Timeouts Configuration
More like this
Components
Read with this