Skip to content

Latest commit

 

History

History
77 lines (62 loc) · 3.96 KB

File metadata and controls

77 lines (62 loc) · 3.96 KB

Consul Plugin Store Cutover

The Consul admin listener, gateway sync service, registry repository, and Spring Boot starter are no longer built or shipped by the main ShenYu repository. Existing deployments that use Consul should add the external plugin-store artifacts:

<dependency>
    <groupId>org.apache.shenyu</groupId>
    <artifactId>shenyu-admin-listener-consul</artifactId>
    <version>2.7.1-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>org.apache.shenyu</groupId>
    <artifactId>shenyu-spring-boot-starter-sync-data-consul</artifactId>
    <version>2.7.1-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>org.apache.shenyu</groupId>
    <artifactId>shenyu-registry-consul</artifactId>
    <version>2.7.1-SNAPSHOT</version>
</dependency>

The external extension keeps the existing shenyu.sync.consul configuration prefix, registry type name consul, Consul KV namespace layout, service names, TTL check behavior, and com.ecwid.consul:consul-api client compatibility used by the former in-tree implementation.

Consul sync configuration remains:

shenyu:
  sync:
    consul:
      url: http://localhost:8500
      waitTime: 10000
      watchDelay: 10000

Registry configuration remains:

shenyu:
  register:
    registerType: consul
    serverLists: 127.0.0.1:8500
    props:
      token: ""
      waitTime: "30"
      watchDelay: "5"
      tags: gateway,shenyu
      checkTtl: "5"

Configuration data stays below the namespace-scoped Consul KV prefix, for example default/shenyu/plugin/<pluginName>, default/shenyu/selector/<pluginName>/<selectorId>, and default/shenyu/rule/<pluginName>/<selectorId>-<ruleId>. Deployments that rely on ACL tokens, TLS, mTLS, custom CA bundles, or multi-datacenter routing should keep using the same local Consul agent or proxy pattern they used before cutover unless the external extension adds new public configuration fields.

The main repository keeps Consul enum values, SQL comments, and historical upgrade scripts as compatibility contracts for existing admin data. The main repository no longer publishes the Consul runtime artifacts or includes the Consul client dependency in admin/bootstrap distributions.

Verification Status

The external Consul extension has a real Consul boundary test that writes through the real admin listener and initializer into Consul KV, reads through the real ConsulSyncDataService, dispatches to the real gateway subscribers, and verifies route create/update/delete behavior through ShenyuWebHandler and the gateway HTTP plugin chain. That fixture also covers namespace isolation and Consul registry register/deregister behavior.

This boundary test is not full shenyu-admin application or controller coverage; deployments that need controller-level assurance should still run their normal admin-to-gateway environment tests after switching to the external artifacts.

Rollback during the cutover window is a dependency-only change: remove the external Consul artifacts and return to a ShenYu build that still shipped the in-tree Consul modules. Existing Consul KV data and registered service names keep the same layout and should not be deleted during rollback unless the deployment intentionally resets all ShenYu sync state.