Oracle Cloud Infrastructure · Arazzo Workflow

Oracle Cloud Provision OKE Cluster With Node Pool

Version 1.0.0

Create a Kubernetes cluster, poll until active, then add a node pool to it.

1 workflow 1 source API 1 provider
View Spec View on GitHub Cloud ComputingEnterprise CloudInfrastructure as a ServiceOraclePlatform as a ServiceArazzoWorkflows

Provider

oracle-cloud

Workflows

provision-oke-cluster
Create an OKE cluster, wait for ACTIVE, then add a node pool.
Creates a Kubernetes cluster, polls getCluster until ACTIVE, and creates a node pool in the cluster.
4 steps inputs: clusterName, compartmentId, kubernetesVersion, nodePoolName, nodeShape, quantityPerSubnet, vcnId outputs: clusterId, lifecycleState
1
createCluster
createCluster
Create a new Kubernetes cluster in the supplied VCN.
2
listClusters
listClusters
List clusters in the compartment to resolve the OCID of the newly created cluster by name.
3
pollCluster
getCluster
Poll the cluster until it reports the ACTIVE lifecycle state.
4
createNodePool
createNodePool
Create a node pool attached to the active cluster.

Source API Descriptions

Arazzo Workflow Specification

oracle-cloud-provision-oke-cluster-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Oracle Cloud Provision OKE Cluster With Node Pool
  summary: Create a Kubernetes cluster, poll until active, then add a node pool to it.
  description: >-
    Stands up a managed Kubernetes (OKE) cluster ready to schedule workloads.
    The workflow creates a cluster in the supplied VCN, polls the cluster until
    its lifecycle state reaches ACTIVE, and then creates a node pool attached to
    the cluster. Every step spells out its request inline so the provisioning
    flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: okeApi
  url: ../openapi/oracle-cloud-oke-openapi.yaml
  type: openapi
workflows:
- workflowId: provision-oke-cluster
  summary: Create an OKE cluster, wait for ACTIVE, then add a node pool.
  description: >-
    Creates a Kubernetes cluster, polls getCluster until ACTIVE, and creates a
    node pool in the cluster.
  inputs:
    type: object
    required:
    - compartmentId
    - clusterName
    - vcnId
    - kubernetesVersion
    - nodePoolName
    - nodeShape
    properties:
      compartmentId:
        type: string
        description: The OCID of the compartment to create the cluster in.
      clusterName:
        type: string
        description: The name of the Kubernetes cluster.
      vcnId:
        type: string
        description: The OCID of the VCN to deploy the cluster into.
      kubernetesVersion:
        type: string
        description: The Kubernetes version (e.g. v1.28.2).
      nodePoolName:
        type: string
        description: The name of the node pool.
      nodeShape:
        type: string
        description: The compute shape for worker nodes (e.g. VM.Standard.E4.Flex).
      quantityPerSubnet:
        type: integer
        description: The number of worker nodes per subnet.
  steps:
  - stepId: createCluster
    description: Create a new Kubernetes cluster in the supplied VCN.
    operationId: createCluster
    requestBody:
      contentType: application/json
      payload:
        compartmentId: $inputs.compartmentId
        name: $inputs.clusterName
        vcnId: $inputs.vcnId
        kubernetesVersion: $inputs.kubernetesVersion
    successCriteria:
    - condition: $statusCode == 200
  - stepId: listClusters
    description: >-
      List clusters in the compartment to resolve the OCID of the newly created
      cluster by name.
    operationId: listClusters
    parameters:
    - name: compartmentId
      in: query
      value: $inputs.compartmentId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      clusterId: $response.body#/0/id
  - stepId: pollCluster
    description: Poll the cluster until it reports the ACTIVE lifecycle state.
    operationId: getCluster
    parameters:
    - name: clusterId
      in: path
      value: $steps.listClusters.outputs.clusterId
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.lifecycleState == "ACTIVE"
      type: jsonpath
    outputs:
      lifecycleState: $response.body#/lifecycleState
  - stepId: createNodePool
    description: Create a node pool attached to the active cluster.
    operationId: createNodePool
    requestBody:
      contentType: application/json
      payload:
        compartmentId: $inputs.compartmentId
        clusterId: $steps.listClusters.outputs.clusterId
        name: $inputs.nodePoolName
        kubernetesVersion: $inputs.kubernetesVersion
        nodeShape: $inputs.nodeShape
        quantityPerSubnet: $inputs.quantityPerSubnet
    successCriteria:
    - condition: $statusCode == 200
  outputs:
    clusterId: $steps.listClusters.outputs.clusterId
    lifecycleState: $steps.pollCluster.outputs.lifecycleState