metadata.scope
is optional (default empty).metadata.scope.[vCluster | group | username]
combine with each other to define the targeting
spec.pluginClass
is mandatory. Has to be a valid Interceptor class name.spec.priority
is mandatoryspec.config
is a valid config for the pluginClass
Use case | metadata.scope.vcluster | metadata.scope.group | metadata.scope.username |
---|---|---|---|
Global Interceptor (Including Virtual Clusters) | Set to null | Set to null | Set to null |
Global Interceptor (Excluding Virtual Clusters) | Empty | Empty | Empty |
Username targeting | Empty | Empty | Set |
Group targeting | Empty | Set | Empty |
Virtual Cluster targeting | Set | Empty | Empty |
Virtual Cluster + Username targeting | Set | Empty | Set |
Virtual Cluster + Group targeting | Set | Set | Empty |
GatewayServiceAccount
is generally optional.
GatewayServiceAccount resource is enabled/disabled depending on your Gateway configuration.
This is to prevent you from declaring a resource that’s incompatible with your current configuration:
GATEWAY_SECURITY | LOCAL GatewayServiceAccount | EXTERNAL GatewayServiceAccount |
---|---|---|
PLAINTEXT | 🚫 | 🚫 |
SSL | 🚫 | only if mTls |
SASL_PLAINTEXT | ✅ | only if OAuth configured |
SASL_SSL | ✅ | only if OAuth configured |
DELEGATED_SASL_PLAINTEXT | 🚫 | ✅ |
DELEGATED_SASL_SSL | 🚫 | ✅ |
spec.type
is EXTERNAL
:
spec.externalNames
must be a non-empty list of external names. Each name must be unique across all declared GatewayServiceAccount.spec.type
is EXTERNAL
:
externalNames
to decide which GatewayServiceAccount it is.spec.type
is LOCAL
:
/gateway/v2/tokens
endpoint to generate a password for this service accountspec.type
from LOCAL
to EXTERNAL
does not invalidate previously emitted tokens. They will keep on working for their TTL.spec.members[].name
is mandatory.
spec.members[].vCluster
is optional. It has to refer to an existing Virtual Cluster. When not using Virtual Clusters, don’t set this attribute.metadata.vCluster
is optional. Must refer to an existing Virtual Cluster. When not using Virtual Clusters, don’t set this attribute.spec.physicalTopics.delete
is mandatory. Has to be a valid topic name with a cleanup.policy
set to delete
.spec.physicalTopics.compact
is optional. Has ti be a valid topic name with a cleanup.policy
set to compact
.spec.physicalTopics.deleteCompact
is optional. Has to be a valid topic name with a cleanup.policy
set to delete,compact
.spec.autoManaged
is optional, default is false
.spec.offsetCorrectness
is optional, default is false
.spec.pattern
will not be created as real Kafka topics but as concentrated topics instead.cleanup.policy
, the topic’s data will be stored in one of the configured physical topics.cleanup.policy
that isn’t configured in the ConcentrationRule, topic creation will fail.cleanup.policy
of a concentrated topic.spec.autoManaged
is set to true
, the underlying physical topics and configurations will be automatically created and/or extended to honour the topics configurations.spec.offsetCorrectness
is set to true
, Gateway will maintain a list of offsets for each of the concentrated topic records.
spec.offsetCorrectness
is set to false
, Gateway will report the offsets of the backing topic records.metadata.name
must be a valid topic prefix as all vcluster topics and consumer groups will be created on the physical kafka cluster with this as the prefix (they will appear on the vcluster without the prefix).spec.aclEnabled
is optional (default false
). When unset or false
,
acls
and superUsers
cannot be setspec.type
must be either Standard
or Partner
(default if not set is Standard
)spec.aclEnabled
when it is set to true
aclMode: KAFKA_API
) an administrator can connect to the vcluster as any service account named in the superUsers
list and fully manage the ACLs of other service accounts within the vcluster using the Kafka Admin API. This is the same way you would manage a real Kafka Cluster.
spec.aclMode
is set to KAFKA_API
(default if aclEnabled: true
)
acls
cannot be setspec.superUsers
must be setspec.superUsers
is the list of usernames for which the associated service accounts in this virtual cluster can bypass ACLs.
spec.aclMode
is set to REST_API
spec.acls
must be setspec.superUsers
cannot be setspec.acls
is the complete list of ACL bindings for the vcluster and allows (nearly) any valid Kafka API ACL binding (inc *
wildcards) to be set. For a complete list of valid ACL bindings checkout the Open API schema.aclMode
to be changed once it is set because KAFKA_API
and REST_API
have incompatible mutation processes (KAFKA_API
mode changes are cumulative whereas REST_API
mode changes are idempotent).