VAST Data Compute Clusters API
The Compute Clusters API from VAST Data — 23 operation(s) for compute clusters.
The Compute Clusters API from VAST Data — 23 operation(s) for compute clusters.
openapi: 3.0.3
info:
description: VAST Management API definition
title: VAST API Swagger Schema activedirectory Compute Clusters API
version: '1.0'
security:
- ApiToken: []
tags:
- name: Compute Clusters
paths:
/computeclusters/:
get:
description: This endpoint lists Compute Clusters
operationId: computeclusters_list
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ComputeClusterListItem'
type: array
description: Compute Cluster information
summary: Get all existing Compute Clusters
tags:
- Compute Clusters
post:
description: This endpoint creates a Compute Cluster.
operationId: computeclusters_create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ComputeClusterCreateParams'
x-originalParamName: ComputeClusterCreateParams
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncComputeCluster'
description: ''
'400':
description: The request contains invalid data.
summary: Create a Compute Cluster
tags:
- Compute Clusters
/computeclusters/dashboard/:
get:
description: 'This endpoint provides system-wide aggregated resource counts for compute clusters.
Returns counts of compute clusters, CNodes, pods, deployments, services, namespaces, and tenants,
with state-based breakdowns for each resource type.
'
operationId: computeclusters_dashboard
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ComputeClusterDashboard'
description: Aggregated dashboard information across all compute clusters
summary: Get aggregated dashboard information for all compute clusters
tags:
- Compute Clusters
/computeclusters/{id}/:
delete:
description: Delete Compute Cluster.
operationId: computeclusters_delete
parameters:
- in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskInResponse'
description: Compute Cluster deletion initiated
summary: Delete Compute Cluster
tags:
- Compute Clusters
get:
description: This endpoint returns information about a specific Compute Cluster.
operationId: computeclusters_read
parameters:
- in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ComputeCluster'
description: ''
summary: Return Details of a Compute Cluster
tags:
- Compute Clusters
patch:
operationId: computeclusters_update
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ComputeClusterModifyParams'
x-originalParamName: ComputeClusterModifyParams
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncComputeCluster'
description: Compute Cluster modification initiated
'400':
description: The request contains invalid data.
summary: Modify Compute Cluster
tags:
- Compute Clusters
/computeclusters/{id}/deployment_detail/:
get:
description: Returns the raw Kubernetes API object for a specific deployment.
operationId: computeclusters_deployment_detail
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
- description: Name of the deployment
in: query
name: resource_name
required: true
schema:
type: string
- description: Namespace of the deployment
in: query
name: resource_namespace
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
type: object
description: Full deployment details as raw Kubernetes API object
summary: Get full details of a specific deployment
tags:
- Compute Clusters
/computeclusters/{id}/deployments/:
get:
description: This endpoint lists all deployments in the specified compute cluster.
operationId: computeclusters_deployments
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
- description: Filter deployments by namespace
in: query
name: namespace
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ComputeClusterDeployment'
type: array
description: List of deployments
summary: List deployments in the compute cluster
tags:
- Compute Clusters
/computeclusters/{id}/events/:
get:
description: Returns Kubernetes events for the specified resource, filtered by involvedObject.
operationId: computeclusters_events
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
- description: Name of the resource
in: query
name: resource_name
required: true
schema:
type: string
- description: Namespace of the resource
in: query
name: resource_namespace
required: true
schema:
type: string
- description: Kind of the resource (Pod, Deployment, Service, ReplicaSet)
in: query
name: resource_kind
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
type: object
type: array
description: List of events as raw Kubernetes API objects
summary: List events for a specific resource in the compute cluster
tags:
- Compute Clusters
/computeclusters/{id}/metric_viewer_certificates/:
post:
description: Generate metric viewer certificates for the compute cluster.
operationId: computeclusters_metric_viewer_certificates
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/MetricViewerCertificates'
description: Generated metric viewer certificates
summary: Generate metric viewer certificates
tags:
- Compute Clusters
/computeclusters/{id}/namespaces/:
get:
description: This endpoint lists all namespaces in the specified compute cluster.
operationId: computeclusters_namespaces
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ComputeClusterNamespace'
type: array
description: List of namespaces
summary: List namespaces in the compute cluster
tags:
- Compute Clusters
/computeclusters/{id}/nodes/:
get:
description: This endpoint lists all nodes in the specified compute cluster.
operationId: computeclusters_nodes
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ComputeClusterNode'
type: array
description: List of nodes
summary: List nodes in the compute cluster
tags:
- Compute Clusters
/computeclusters/{id}/pod_detail/:
get:
description: Returns the raw Kubernetes API object for a specific pod.
operationId: computeclusters_pod_detail
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
- description: Name of the pod
in: query
name: resource_name
required: true
schema:
type: string
- description: Namespace of the pod
in: query
name: resource_namespace
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
type: object
description: Full pod details as raw Kubernetes API object
summary: Get full details of a specific pod
tags:
- Compute Clusters
/computeclusters/{id}/pods/:
get:
description: This endpoint lists all pods in the specified compute cluster.
operationId: computeclusters_pods
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
- description: Filter pods by namespace
in: query
name: namespace
schema:
type: string
- description: Filter pods by deployment name; namespace must also be provided
in: query
name: deployment
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ComputeClusterPod'
type: array
description: List of pods
summary: List pods in the compute cluster
tags:
- Compute Clusters
/computeclusters/{id}/reconcile_create/:
post:
description: Retry creation of a compute cluster whose initial creation did not complete successfully.
operationId: computeclusters_reconcile_create
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskInResponse'
description: Compute Cluster reconcile create initiated
'400':
description: The request contains invalid data.
summary: Reconcile Compute Cluster Creation
tags:
- Compute Clusters
/computeclusters/{id}/replica_sets/:
get:
description: Returns all ReplicaSets owned by the specified deployment.
operationId: computeclusters_replica_sets
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
- description: Name of the deployment
in: query
name: resource_name
required: true
schema:
type: string
- description: Namespace of the deployment
in: query
name: resource_namespace
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
type: object
type: array
description: List of ReplicaSets as raw Kubernetes API objects
summary: List ReplicaSets for a specific deployment in the compute cluster
tags:
- Compute Clusters
/computeclusters/{id}/rotate_base_certificates/:
post:
description: 'Rotate root and/or intermediate certificates for the compute cluster.
Three modes are supported:
1. Empty body (no keep_root) - regenerate all certificates (root + intermediate + leaf).
2. Empty body with keep_root=true - keep root, regenerate intermediate + leaf.
3. Provide all 3 certificate fields in body - use provided certs, generate leaf.
'
operationId: computeclusters_rotate_base_certificates
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
- description: If true, keep the existing root certificate and only regenerate intermediate and leaf certificates
in: query
name: keep_root
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RotateBaseCertificatesParams'
x-originalParamName: RotateBaseCertificatesParams
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskInResponse'
description: Certificate rotation initiated
'400':
description: The request contains invalid data.
summary: Rotate root and/or intermediate certificates
tags:
- Compute Clusters
/computeclusters/{id}/rotate_leaf_certificates/:
post:
description: Rotate only the leaf certificates for the compute cluster.
operationId: computeclusters_rotate_leaf_certificates
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskInResponse'
description: Leaf certificate rotation initiated
summary: Rotate leaf certificates
tags:
- Compute Clusters
/computeclusters/{id}/rotate_service_key/:
post:
description: Rotate the service key for the compute cluster.
operationId: computeclusters_rotate_service_key
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskInResponse'
description: Service key rotation initiated
summary: Rotate service key
tags:
- Compute Clusters
/computeclusters/{id}/service_detail/:
get:
description: Returns the raw Kubernetes API object for a specific service.
operationId: computeclusters_service_detail
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
- description: Name of the service
in: query
name: resource_name
required: true
schema:
type: string
- description: Namespace of the service
in: query
name: resource_namespace
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
type: object
description: Full service details as raw Kubernetes API object
summary: Get full details of a specific service
tags:
- Compute Clusters
/computeclusters/{id}/services/:
get:
description: This endpoint lists all services in the specified compute cluster.
operationId: computeclusters_services
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
- description: Filter services by namespace
in: query
name: namespace
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ComputeClusterService'
type: array
description: List of services
summary: List services in the compute cluster
tags:
- Compute Clusters
/computeclusters/{id}/start/:
post:
description: Start a stopped compute cluster.
operationId: computeclusters_start
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskInResponse'
description: Compute Cluster start initiated
'400':
description: The request contains invalid data.
summary: Start Compute Cluster
tags:
- Compute Clusters
/computeclusters/{id}/stop/:
post:
description: Stop a running compute cluster.
operationId: computeclusters_stop
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskInResponse'
description: Compute Cluster stop initiated
'400':
description: The request contains invalid data.
summary: Stop Compute Cluster
tags:
- Compute Clusters
/computeclusters/{id}/tenants/:
get:
description: Returns a paginated list of tenant associations for the specified compute cluster.
operationId: computeclusters_tenants_list
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ComputeClusterTenant'
type: array
description: Paginated list of tenant associations
summary: List Compute Cluster Tenant Associations
tags:
- Compute Clusters
/computeclusters/{id}/tenants/bulk/:
post:
description: 'Manage tenant associations with a compute cluster. You can add or remove tenants. Cannot be used when all_tenants is enabled on the compute cluster.
'
operationId: computeclusters_tenants_bulk
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
tenants_to_add:
description: List of tenant IDs to add to this compute cluster
items:
type: integer
type: array
tenants_to_remove:
description: List of tenant IDs to remove from this compute cluster
items:
type: integer
type: array
type: object
x-originalParamName: ComputeClusterTenantParams
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskInResponse'
description: Tenant association operation initiated
'400':
description: The request contains invalid data.
summary: Manage Compute Cluster Tenant Associations
tags:
- Compute Clusters
/computeclusters/{id}/tenants/{tenant_id}/:
get:
description: Returns a single tenant association for the specified compute cluster.
operationId: computeclusters_tenants_read
parameters:
- description: Compute Cluster ID
in: path
name: id
required: true
schema:
type: string
- description: Tenant Association ID
in: path
name: tenant_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ComputeClusterTenant'
description: Tenant association details
summary: Retrieve a Compute Cluster Tenant Association
tags:
- Compute Clusters
components:
schemas:
ComputeClusterNamespace:
properties:
created_at:
description: Namespace creation timestamp
type: string
name:
description: Namespace name
type: string
status:
description: Namespace status (Active, Terminating, etc.)
type: string
type: object
RotateBaseCertificatesParams:
properties:
intermediate_certificate:
description: 'RKE2 intermediate certificate.
Must be provided together with root_certificate and intermediate_key.
'
type: string
intermediate_key:
description: 'RKE2 intermediate private key.
Must be provided together with root_certificate and intermediate_certificate.
'
type: string
root_certificate:
description: 'RKE2 root certificate.
Must be provided together with intermediate_certificate and intermediate_key.
'
type: string
type: object
ComputeCluster:
allOf:
- $ref: '#/components/schemas/ComputeClusterListItem'
- properties:
cnodes:
description: List of CNodes assigned to this compute cluster with their static IPs and stats
items:
properties:
id:
description: CNode ID
type: integer
ip:
description: Static IP address assigned to this CNode
type: string
message:
description: Unhealthy condition messages from the node
type: string
state:
description: Current state of the CNode in the compute cluster
enum:
- INITIALIZING
- DELETING
- UPDATING
- INACTIVE
- RUNNING
- ERROR
- ACTIVATING
- UNKNOWN
readOnly: true
type: string
stats:
$ref: '#/components/schemas/ComputeClusterCNodeStats'
type:
description: CNode role type in the compute cluster
enum:
- WORKER
- SERVER
- UNASSIGNED
type: string
type: object
readOnly: true
type: array
type: object
ComputeClusterTenant:
properties:
compute_cluster:
description: Compute Cluster ID
type: integer
de_compute_guid:
description: Data Engine compute GUID
type: string
de_mtls_cert_guid:
description: Data Engine mTLS certificate GUID
type: string
status:
description: 'Status of the tenant association.
- `INIT` means the tenant association has been created but not yet provisioned on the compute cluster.
- `PROVISIONED` means the tenant''s namespaces have been created on the compute cluster.
- `DE_ATTACHED` means the tenant is fully attached to the Data Engine with mTLS certificates and compute GUID assigned.
- `DELETING` means the tenant is being detached and removed from the compute cluster.
- `ROTATING` means the tenant''s mTLS certificates are being rotated.
- `PARTIALLY_PROVISIONED` means the tenant association is in an incomplete state, typically due to a failed operation or timeout.
'
enum:
- INIT
- PROVISIONED
- DE_ATTACHED
- DELETING
- ROTATING
- PARTIALLY_PROVISIONED
type: string
tenant_id:
description: Tenant ID
type: integer
type: object
ComputeClusterPodCountsPerState:
additionalProperties:
enum:
- total
- failed
- running
- pending
- succeeded
- unknown
type: integer
example:
failed: 3
pending: 10
running: 180
succeeded: 5
total: 200
unknown: 2
type: object
ComputeClusterCNodeCountsPerState:
additionalProperties:
enum:
- total
- ready
- disk_pressure
- memory_pressure
- pid_pressure
- network_unavailable
type: integer
example:
disk_pressure: 2
memory_pressure: 1
network_unavailable: 2
pid_pressure: 0
ready: 45
total: 50
type: object
ComputeClusterDeployment:
properties:
available:
description: Number of available replicas
type: integer
created_at:
description: Deployment creation timestamp
type: string
name:
description: Deployment name
type: string
namespace:
description: Namespace where the deployment is located
type: string
ready:
description: Ready replicas in "X/Y" format (like kubectl)
type: string
up_to_date:
description: Number of up-to-date replicas
type: integer
type: object
AsyncComputeCluster:
allOf:
- $ref: '#/components/schemas/ComputeCluster'
- $ref: '#/components/schemas/AsyncTaskInResponse'
ComputeClusterPodCondition:
properties:
last_transition_time:
description: Timestamp of the condition's last transition
type: string
message:
description: Human-readable message about the condition's last transition
type: string
reason:
description: Machine-readable reason for the condition's last transition
type: string
status:
description: Condition status (True, False, Unknown)
type: string
type:
description: Condition type (e.g. Ready, Initialized, ContainersReady, PodScheduled)
type: string
type: object
ComputeClusterService:
properties:
cluster_ip:
description: Cluster IP address
type: string
created_at:
description: Service creation timestamp
type: string
external_ip:
description: External IP address
type: string
name:
description: Service name
type: string
namespace:
description: Namespace where the service is located
type: string
service_type:
description: Service type (ClusterIP, NodePort, LoadBalancer, etc.)
type: string
type: object
ComputeClusterModifyParams:
properties:
all_tenants:
description: When true, all existing and newly created tenants are automatically assigned to this compute cluster
type: boolean
backup_frequency:
description: Backup frequency in minutes
type: integer
cnodes:
description: List of CNode assignments with resource presets
items:
$ref: '#/components/schemas/ComputeClusterCNodeInput'
type: array
static_ip_ranges:
description: 'List of IP range pairs [[start1, end1], [start2, end2]] for static IP assignment to CNodes.
Must provide enough IPs for all CNodes.
'
items:
example:
- 10.0.0.10
- 10.0.0.20
items:
type: string
maxItems: 2
minItems: 2
type: array
type: array
type: object
ComputeClusterCNodeInput:
properties:
id:
description: CNode ID
type: integer
resource_preset:
description: Resource allocation preset for this CNode
enum:
- LOW
- BALANCED
- MEM_HEAVY
- HIGH_COMPUTE
type: string
required:
- id
- resource_preset
type: object
ComputeClusterCNodeStats:
description: Statistics for a CNode in a compute cluster
properties:
cpu:
description: CPU usage statistics for this CNode, in cores
properties:
total:
description: CPU limit allocated to this CNode, in cores
format: float
type: number
used:
description: CPU cores currently consumed by this CNode.
format: float
type: number
type: object
memory:
description: Memory usage statistics for this CNode, in bytes
properties:
total:
description: Total memory available on the CNode, in bytes
format: float
type: number
used:
description: Memory currently used on the CNode, in bytes.
format: float
type: number
type: object
pods:
description: Number of pods running on this CNode
type: integer
type: object
ComputeClusterDeploymentCountsPerState:
additionalProperties:
enum:
- total
- running
- degraded
- error
type: integer
example:
degraded: 3
error: 2
running: 45
total: 50
type: object
ComputeClusterCreateParams:
properties:
all_tenants:
default: false
description: When true, all existing and newly created tenants are automatically assigned to this compute cluster
type: boolean
backup_frequency:
default: 60
description: Backup frequency in minutes
type: integer
cluster_cidr:
default: 10.42.0.0/16
description: Kubernetes cluster CIDR for pod networking (default is "10.42.0.0/16")
type: string
cnodes:
description: List of CNode assignments with resource presets
items:
$ref: '#/components/schemas/ComputeClusterCNodeInput'
type: array
default_gateway:
description: Default gateway IP address for the compute cluster network (e.g., "10.0.0.1"). Optional.
type: string
description:
description: User-defined description for the compute cluster
type: string
intermediate_certificate:
description: RKE2 intermediate certificate. If omitted, certificates will be generated automatically. Must be provided together with root_certificate and intermediate_key.
type: string
intermediate_key:
description: RKE2 intermediate private key. If omitted, certificates will be generated automatically. Must be provided together with root_certificate and intermediate_certificate.
type: string
name:
description: Compute Cluster name
type: string
netmask:
description: Network mask for the compute cluster network (e.g., "255.255.255.0" or "24")
type: string
root_certificate:
description: RKE2 root certificate. If omitted, certificates will be generated aut
# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vastdata/refs/heads/main/openapi/vastdata-compute-clusters-api-openapi.yml