YugabyteDB · Arazzo Workflow

YugabyteDB Aeon Provision Cluster

Version 1.0.0

Create a cluster, poll until it becomes ACTIVE, then read its connection endpoints.

1 workflow 1 source API 1 provider
View Spec View on GitHub Cloud DatabaseDatabaseDBaaSDistributed SQLPostgreSQLArazzoWorkflows

Provider

yugabytedb

Workflows

provision-cluster
Provision a YugabyteDB Aeon cluster and wait for it to come online.
Creates a cluster within the supplied account and project, waits for the asynchronous provisioning to complete by polling the cluster state, and returns the cluster identifier and its connection endpoints once ACTIVE.
3 steps inputs: accountId, cloudInfo, clusterInfo, name, projectId outputs: clusterId, endpoints, state
1
createCluster
createCluster
Submit the cluster specification to create a new managed cluster within the account and project. Creation is asynchronous; the cluster starts in the CREATING state.
2
pollClusterState
getCluster
Poll the cluster until provisioning settles into the ACTIVE state. The cluster transitions through CREATING before reaching ACTIVE.
3
readEndpoints
getCluster
Read the active cluster to obtain the connection endpoints clients use to reach the database, including host and accessibility type per region.

Source API Descriptions

Arazzo Workflow Specification

yugabytedb-provision-cluster-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: YugabyteDB Aeon Provision Cluster
  summary: Create a cluster, poll until it becomes ACTIVE, then read its connection endpoints.
  description: >-
    The canonical day-one flow for YugabyteDB Aeon. The workflow resolves the
    account and project context, submits a cluster specification to create a new
    managed cluster, polls the cluster until its provisioning state settles into
    ACTIVE, and finally reads the connection endpoints clients use to reach the
    database. Every step spells out its request inline so the flow can be read
    and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: aeonApi
  url: ../openapi/yugabytedb-aeon-openapi.yml
  type: openapi
workflows:
- workflowId: provision-cluster
  summary: Provision a YugabyteDB Aeon cluster and wait for it to come online.
  description: >-
    Creates a cluster within the supplied account and project, waits for the
    asynchronous provisioning to complete by polling the cluster state, and
    returns the cluster identifier and its connection endpoints once ACTIVE.
  inputs:
    type: object
    required:
    - accountId
    - projectId
    - name
    - cloudInfo
    - clusterInfo
    properties:
      accountId:
        type: string
        description: The unique identifier of the YugabyteDB Aeon account.
      projectId:
        type: string
        description: The unique identifier of the project within the account.
      name:
        type: string
        description: The name to assign to the new cluster.
      cloudInfo:
        type: object
        description: Cloud provider and region placement (code and region).
      clusterInfo:
        type: object
        description: Node count, fault tolerance, tier, node sizing, and version.
  steps:
  - stepId: createCluster
    description: >-
      Submit the cluster specification to create a new managed cluster within
      the account and project. Creation is asynchronous; the cluster starts in
      the CREATING state.
    operationId: createCluster
    parameters:
    - name: accountId
      in: path
      value: $inputs.accountId
    - name: projectId
      in: path
      value: $inputs.projectId
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
        cloud_info: $inputs.cloudInfo
        cluster_info: $inputs.clusterInfo
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      clusterId: $response.body#/id
      initialState: $response.body#/state
  - stepId: pollClusterState
    description: >-
      Poll the cluster until provisioning settles into the ACTIVE state. The
      cluster transitions through CREATING before reaching ACTIVE.
    operationId: getCluster
    parameters:
    - name: accountId
      in: path
      value: $inputs.accountId
    - name: projectId
      in: path
      value: $inputs.projectId
    - name: clusterId
      in: path
      value: $steps.createCluster.outputs.clusterId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      state: $response.body#/state
    onSuccess:
    - name: clusterReady
      type: goto
      stepId: readEndpoints
      criteria:
      - context: $response.body
        condition: $.state == "ACTIVE"
        type: jsonpath
    - name: stillProvisioning
      type: goto
      stepId: pollClusterState
      criteria:
      - context: $response.body
        condition: $.state == "CREATING"
        type: jsonpath
  - stepId: readEndpoints
    description: >-
      Read the active cluster to obtain the connection endpoints clients use to
      reach the database, including host and accessibility type per region.
    operationId: getCluster
    parameters:
    - name: accountId
      in: path
      value: $inputs.accountId
    - name: projectId
      in: path
      value: $inputs.projectId
    - name: clusterId
      in: path
      value: $steps.createCluster.outputs.clusterId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      state: $response.body#/state
      endpoints: $response.body#/cluster_endpoints
  outputs:
    clusterId: $steps.createCluster.outputs.clusterId
    state: $steps.readEndpoints.outputs.state
    endpoints: $steps.readEndpoints.outputs.endpoints