Managing Tenants
tip
This page only shows some frequently used operations.
For the latest and complete information about
Pulsar admin
, including commands, flags, descriptions, and more, see Pulsar admin doc.For the latest and complete information about
REST API
, including parameters, responses, samples, and more, see REST API doc.For the latest and complete information about
Java admin API
, including classes, methods, descriptions, and more, see Java admin API doc.
Tenants, like namespaces, can be managed using the admin API. There are currently two configurable aspects of tenants:
- Admin roles
- Allowed clusters
Tenant resources
List
You can list all of the tenants associated with an instance.
- pulsar-admin
- REST API
- Java
Use the list subcommand.
pulsar-admin tenants list
Output:
my-tenant-1
my-tenant-2
GET /admin/v2/tenants/getTenants
admin.tenants().getTenants();
Create
You can create a new tenant.
- pulsar-admin
- REST API
- Java
Use the create subcommand:
pulsar-admin tenants create my-tenant
When creating a tenant, you can optionally assign admin roles using the -r
/--admin-roles
flag, and clusters using the -c
/--allowed-clusters
flag. You can specify multiple values as a comma-separated list. Here are some examples:
pulsar-admin tenants create my-tenant \
--admin-roles role1,role2,role3 \
--allowed-clusters cluster1
pulsar-admin tenants create my-tenant \
-r role1 \
-c cluster1
PUT /admin/v2/tenants/:tenant/createTenant
admin.tenants().createTenant(tenantName, tenantInfo);
Get configuration
You can fetch the configuration for an existing tenant at any time.
- pulsar-admin
- REST API
- Java
Use the get subcommand and specify the name of the tenant. Here’s an example:
pulsar-admin tenants get my-tenant
{
"adminRoles": [
"admin1",
"admin2"
],
"allowedClusters": [
"cl1",
"cl2"
]
}
GET /admin/v2/tenants/:tenant/getTenant
admin.tenants().getTenantInfo(tenantName);
Delete
Tenants can be deleted from a Pulsar instance.
- pulsar-admin
- REST API
- Java
Use the delete subcommand and specify the name of the tenant.
pulsar-admin tenants delete my-tenant
DELETE /admin/v2/tenants/:tenant/deleteTenant
admin.Tenants().deleteTenant(tenantName);
Update
You can update a tenant’s configuration.
- pulsar-admin
- REST API
- Java
Use the update subcommand.
pulsar-admin tenants update my-tenant \
--admin-roles role1,role2 \
--allowed-clusters cluster1,cluster2
POST /admin/v2/tenants/:tenant/updateTenant
admin.tenants().updateTenant(tenantName, tenantInfo);