Workflow: Dedicated Cluster Lifecycle (gRPC and HTTP)
Last validated: 2026-05-11
Use this workflow when you need dedicated VBase capacity. Current CLI does not expose first-class cluster lifecycle commands.
Use Cases
- dedicated performance/isolation requirements
- controlled scale-up and scale-down
- platform automation for cluster lifecycle
Step 1: Create dedicated cluster
gRPC:
grpcurl -insecure \
-H "authorization: Bearer $TOKEN" \
-d '{
"organization_id":"'"$ORG_ID"'",
"name":"dedicated-vbase-1",
"resource_config":{
"compute_units":3,
"enable_auto_scaling":true,
"max_compute_units":6,
"enable_replicas":false,
"replicas":1
}
}' \
"rpc.dev.dodil.io:443" dodil.vbase.v1.VBaseService/CreateClusterHTTP:
curl -sS -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
"https://api.dev.dodil.io:443/v1/vbase/clusters" \
-d '{
"organization_id":"'"$ORG_ID"'",
"name":"dedicated-vbase-1",
"resource_config":{"compute_units":3,"enable_auto_scaling":true,"max_compute_units":6}
}'Capture cluster.service_id from response. Use it as <cluster_service_id> below.
Step 2: Read current cluster config
gRPC (recommended):
grpcurl -insecure \
-H "authorization: Bearer $TOKEN" \
-d '{"cluster_id":"<cluster_service_id>"}' \
"rpc.dev.dodil.io:443" dodil.vbase.v1.VBaseService/GetClusterHTTP note:
- proto annotation path currently includes malformed
{or}token forGetCluster; use gRPC as source-of-truth path.
Step 3: Scale cluster resources
gRPC:
grpcurl -insecure \
-H "authorization: Bearer $TOKEN" \
-d '{
"cluster_id":"<cluster_service_id>",
"resource_config":{"compute_units":6,"enable_auto_scaling":true,"max_compute_units":12}
}' \
"rpc.dev.dodil.io:443" dodil.vbase.v1.VBaseService/ScaleClusterHTTP:
curl -sS -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
"https://api.dev.dodil.io:443/v1/vbase/clusters/<cluster_service_id>/scale" \
-d '{
"cluster_id":"<cluster_service_id>",
"resource_config":{"compute_units":6,"enable_auto_scaling":true,"max_compute_units":12}
}'Step 4: Check in-progress tasks
gRPC (recommended):
grpcurl -insecure \
-H "authorization: Bearer $TOKEN" \
-d '{"cluster_id":"<cluster_service_id>"}' \
"rpc.dev.dodil.io:443" dodil.vbase.v1.VBaseService/GetClusterInProgressTasksHTTP note:
- method is read-oriented but annotation uses
DELETE; prefer gRPC.
Step 5: Delete dedicated cluster
gRPC:
grpcurl -insecure \
-H "authorization: Bearer $TOKEN" \
-d '{"cluster_id":"<cluster_service_id>","force":true}' \
"rpc.dev.dodil.io:443" dodil.vbase.v1.VBaseService/DeleteClusterHTTP:
curl -sS -X DELETE \
-H "Authorization: Bearer $TOKEN" \
"https://api.dev.dodil.io:443/v1/vbase/clusters/<cluster_service_id>"