Managing Tenants

Important

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.

  1. $ pulsar-admin tenants list
  2. my-tenant-1
  3. my-tenant-2

GET /admin/v2/tenants

  1. admin.tenants().getTenants();

Create

You can create a new tenant.

  • pulsar-admin
  • REST API
  • JAVA

Use the create subcommand:

  1. $ 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:

  1. $ pulsar-admin tenants create my-tenant \
  2. --admin-roles role1,role2,role3 \
  3. --allowed-clusters cluster1
  4. $ pulsar-admin tenants create my-tenant \
  5. -r role1
  6. -c cluster1

PUT /admin/v2/tenants/:tenant

  1. 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:

  1. $ pulsar-admin tenants get my-tenant
  2. {
  3. "adminRoles": [
  4. "admin1",
  5. "admin2"
  6. ],
  7. "allowedClusters": [
  8. "cl1",
  9. "cl2"
  10. ]
  11. }

GET /admin/v2/tenants/:tenant

  1. 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.

  1. $ pulsar-admin tenants delete my-tenant

DELETE /admin/v2/tenants/:tenant

  1. admin.Tenants().deleteTenant(tenantName);

Update

You can update a tenant’s configuration.

  • pulsar-admin
  • REST API
  • JAVA

Use the update subcommand.

  1. $ pulsar-admin tenants update my-tenant

POST /admin/v2/tenants/:tenant

  1. admin.tenants().updateTenant(tenantName, tenantInfo);