Spot by NetApp · Schema

Spot Ocean Cluster

An Ocean cluster provides intelligent Kubernetes cost optimization by automatically using Spot instances for containerized workloads

Cloud OptimizationFinOpsKubernetesAzureGCPCost OptimizationAuto Scaling

Properties

Name Type Description
id string Unique Ocean cluster identifier
name string Name of the Ocean cluster
region string Cloud provider region where the cluster runs
cloudProvider string Cloud provider hosting the cluster
autoScaler object Auto-scaler configuration for the cluster
capacity object Capacity bounds for the cluster
compute object Compute configuration for the cluster nodes
scheduling object Scheduled task configuration
createdAt string
updatedAt string
View JSON Schema on GitHub

JSON Schema

spot-ocean-cluster-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.spotinst.io/schemas/ocean-cluster",
  "title": "Spot Ocean Cluster",
  "description": "An Ocean cluster provides intelligent Kubernetes cost optimization by automatically using Spot instances for containerized workloads",
  "type": "object",
  "required": ["name", "region", "cloudProvider"],
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique Ocean cluster identifier"
    },
    "name": {
      "type": "string",
      "description": "Name of the Ocean cluster",
      "minLength": 1
    },
    "region": {
      "type": "string",
      "description": "Cloud provider region where the cluster runs"
    },
    "cloudProvider": {
      "type": "string",
      "enum": ["aws", "azure", "gcp"],
      "description": "Cloud provider hosting the cluster"
    },
    "autoScaler": {
      "type": "object",
      "description": "Auto-scaler configuration for the cluster",
      "properties": {
        "isEnabled": {
          "type": "boolean",
          "description": "Whether the Ocean auto-scaler is active"
        },
        "cooldown": {
          "type": "integer",
          "description": "Scale-down cooldown period in seconds",
          "minimum": 0
        },
        "resourceLimits": {
          "type": "object",
          "description": "Maximum resource limits for the cluster",
          "properties": {
            "maxVCPU": {
              "type": "integer",
              "description": "Maximum number of vCPUs"
            },
            "maxMemoryGib": {
              "type": "integer",
              "description": "Maximum memory in GiB"
            }
          }
        },
        "down": {
          "type": "object",
          "description": "Scale-down configuration",
          "properties": {
            "maxScaleDownPercentage": {
              "type": "number",
              "description": "Maximum percentage of nodes to remove in one scale-down event"
            }
          }
        }
      }
    },
    "capacity": {
      "type": "object",
      "description": "Capacity bounds for the cluster",
      "properties": {
        "minimum": {
          "type": "integer",
          "description": "Minimum number of nodes",
          "minimum": 0
        },
        "maximum": {
          "type": "integer",
          "description": "Maximum number of nodes"
        },
        "target": {
          "type": "integer",
          "description": "Target number of nodes"
        }
      }
    },
    "compute": {
      "type": "object",
      "description": "Compute configuration for the cluster nodes",
      "properties": {
        "subnetIds": {
          "type": "array",
          "description": "Subnet IDs for nodes",
          "items": {
            "type": "string"
          }
        },
        "instanceTypes": {
          "type": "object",
          "description": "Instance type configuration"
        }
      }
    },
    "scheduling": {
      "type": "object",
      "description": "Scheduled task configuration"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    }
  }
}