Configuration
This plugin is compatible with DB-less mode.
Compatible protocols
The Canary Release plugin is compatible with the following protocols:
grpc
, grpcs
, http
, https
Parameters
Here's a list of all the parameters which can be used in this plugin's configuration:
-
name
string requiredThe name of the plugin, in this case
canary
. -
instance_name
stringAn optional custom name to identify an instance of the plugin, for example
canary_my-service
. Useful when running the same plugin in multiple contexts, for example, on multiple services. -
service.name or service.id
stringThe name or ID of the service the plugin targets. Set one of these parameters if adding the plugin to a service through the top-level
/plugins
endpoint. Not required if using/services/SERVICE_NAME|ID/plugins
. -
route.name or route.id
stringThe name or ID of the route the plugin targets. Set one of these parameters if adding the plugin to a route through the top-level
/plugins
endpoint. Not required if using/routes/ROUTE_NAME|ID/plugins
. -
enabled
boolean default:true
Whether this plugin will be applied.
-
config
record required-
start
numberFuture time in seconds since epoch, when the canary release will start. Ignored when
percentage
is set, or when usingallow
ordeny
inhash
.
-
hash
string default:consumer
Must be one of:consumer
,ip
,none
,allow
,deny
,header
Hash algorithm to be used for canary release.
-
consumer
: The hash will be based on the consumer. -
ip
: The hash will be based on the client IP address. -
none
: No hash will be applied. -
allow
: Allows the specified groups to access the canary release. -
deny
: Denies the specified groups from accessing the canary release. -
header
: The hash will be based on the specified header value.
-
-
hash_header
stringA string representing an HTTP header name.
-
duration
number default:3600
The duration of the canary release in seconds.
-
steps
number default:1000
The number of steps for the canary release.
-
percentage
number between:0
100
The percentage of traffic to be routed to the canary release.
-
upstream_host
stringA string representing a host name, such as example.com.
-
upstream_port
integer between:0
65535
An integer representing a port number between 0 and 65535, inclusive.
-
upstream_uri
string len_min:1
The URI of the upstream server to be used for the canary release.
-
upstream_fallback
boolean required default:false
Specifies whether to fallback to the upstream server if the canary release fails.
-
groups
array of typestring
The groups allowed to access the canary release.
-
canary_by_header_name
stringA string representing an HTTP header name.
-
Deprecated parameters
Important: The following fields have been deprecated and will be removed in a future version.
See the changelog for this plugin for new field mapping info.
-
hash
stringHash algorithm to be used for canary release.
whitelist
is deprecated. Useallow
insteadblacklist
is deprecated. Usedeny
instead.