Tenant Endpoints#
Note
Tenants, tenancies, and other features are available if you have paid for multi-tenant support. Contact Penguin Solutions to learn more.
ClusterWareAI ™ tenants primitives represent customers who lease a subsection of a larger cluster. A multi-tenant cluster can have one or more tenants.
Tenant API calls can only be made by the superadministrator.
Data Fields#
Tenant primitives can have several fields:
name
Required: Name of the tenant. Names must start with an alphabet
character, not a number.
description
Optional: A text string with descriptive information.
tenancies
Updated by the software. List of tenancies owned by the tenant. Each
tenant can own one or more tenancies.
Additional Endpoints#
The following basic endpoints allow control over the tenant:
POST /tenants
Creates a new tenant with the name specified.
GET /tenant/<UID>
Returns the details of the tenant, including any tenancies the tenant owns.
POST /tenant/<UID>/newtoken
Create a tenant token.
The tenant primitive is also used for tenancy actions, such as creating a new tenancy owned by that tenant.
POST /tenant/<UID>/tenancies
Creates a new tenancy based on the provided Terraform file.
GET /tenant/<UID>/tenancies
List the tenancies associated with the tenant. Accepts the
"show_details=true" parameter.
DELETE /tenant/<ident>/tenancy/<tenancy>
Deletes the existing tenancy owned by the tenant by removing the tenancy
infrastructure nodes, moving tenancy compute nodes to the Quarantine
tenancy, and deleting the tenancy from the database.
Example#
Create a new tenant:
curl -X POST https://super1.cluster.local/api/v1/tenants \
--data '{"name":"TenantCustomer"}' -H "Authorization: Bearer $token"
{"success": true, "data": "341b9947f6e644b78f6d88f5d7f898f4"}
Create a new tenancy:
curl -X POST https://super1.cluster.local/api/v1/tenant/TenantCustomer/tenancies \
-F "file=@main.tf" -H "Authorization: Bearer $token" -H "Tenancy: CustomerTenancy"
{"success": true, "result": "Tenancy CustomerTenancy request is submitted \
successfully. Please try GET /tenancy/CustomerTenancy later."}