There are some special cases and behaviors to note for Gateway entities in a Control Plane Group.
All entities in a Control Plane Group must have unique names and IDs.
For example, if two members of a Control Plane Group both have a Service named example_service
,
it will cause a conflict which must be resolved to restore function.
A number of Kong Gateway entities can be associated with each other.
Based on the type of association, the behavior of these associated entities in a Control Plane Group follows one of these patterns:
- If the entity relationship is referenced by ID, associations remain constrained to the behavior of the individual Control Plane.
- If the entity relationship is referenced by a string, then associations across one or more member Control Planes are possible.
Entity
|
Associated Entity
|
Type of Association
|
Service
|
Route
|
By ID
|
Upstream
|
Target
|
By ID
|
Certificate
|
SNI
|
By ID
|
Consumer
|
Credential
|
By ID
|
Consumer
|
Consumer Group
|
By ID
|
Consumer
|
ACL group
|
By string
|
Consumer Groups
|
Plugin
|
By string
|
Plugin (Non-Global)
|
Service, Route, Consumer
|
By ID
|
Global plugin
|
Control Plane
|
By Control Plane
|
Key
|
Key set
|
By ID
|
Vault
|
Control plane
|
By Control Plane
|
deGraphQL Route
|
Service
|
By ID
|
GraphQL Rate Limiting cost decoration
|
Service
|
By ID
|
The Kong Gateway resource associated with an entity must be part of the same standard Control Plane as the entity.
The following are exceptions to the entity behavior:
Entity
|
Behavior in Control Plane Groups
|
Consumers
|
A Consumer from a standard Control Plane becomes a Consumer of the Control Plane Group once the Control Plane joins the group.
The Consumer’s authentication credentials also become valid for the Control Plane Group.
However, a Consumer ID from one member cannot be used for authorization in another member.
|
Consumer Groups
|
Only Consumers from the same Control Plane can be added to a Consumer Group.
In the Rate Limiting Advanced plugin, Consumer Group names can reference groups from other Control Plane Group members.
|
Vaults
|
Vault prefixes must be unique.
When a Vault from a standard Control Plane joins a Control Plane Group, it becomes available to the whole group.
Entity fields can reference secrets in Vaults from other members of the Control Plane Group.
|
Global plugins
|
A globally scoped plugin in a standard Control Plane remains globally scoped within the Control Plane Group.
It affects the entire group. For example, you cannot install two instances of the Rate Limiting plugin in the same Control Plane Group.
Note: If you want to limit which users can apply global plugins, add all global plugins into a single Control Plane, and then grant access to only your limited set of users. If any other member Control Planes add a global plugin to their configuration, a conflict will result and prevent the changed configuration from being applied.
|