id: admin-api-tenants title: Managing Tenants sidebar_label: Tenants

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.

Use the list subcommand.

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

{@inject: endpoint|GET|/admin/v2/tenants|operation/getTenants?version=[[pulsar:version_number]]}

admin.tenants().getTenants();

Create

You can create a new tenant.

Use the create subcommand:

$ pulsar-admin tenants create my-tenant

When creating a tenant, you can assign admin roles using the -r/--admin-roles flag. You can specify multiple roles as a comma-separated list. Here are some examples:

$ pulsar-admin tenants create my-tenant \
  --admin-roles role1,role2,role3

$ pulsar-admin tenants create my-tenant \
  -r role1

{@inject: endpoint|POST|/admin/v2/tenants/:tenant|operation/createTenant?version=[[pulsar:version_number]]}

admin.tenants().createTenant(tenantName, tenantInfo);

Get configuration

You can fetch the configuration for an existing tenant at any time.

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"
  ]
}

{@inject: endpoint|GET|/admin/v2/tenants/:cluster|operation/getTenant?version=[[pulsar:version_number]]}

admin.tenants().getTenantInfo(tenantName);

Delete

Tenants can be deleted from a Pulsar instance.

Use the delete subcommand and specify the name of the tenant.

$ pulsar-admin tenants delete my-tenant

{@inject: endpoint|DELETE|/admin/v2/tenants/:cluster|operation/deleteTenant?version=[[pulsar:version_number]]}

admin.Tenants().deleteTenant(tenantName);

Update

You can update a tenant's configuration.

Use the update subcommand.

$ pulsar-admin tenants update my-tenant

{@inject: endpoint|DELETE|/admin/v2/tenants/:cluster|operation/updateTenant?version=[[pulsar:version_number]]}


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