{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://github.com/api-evangelist/spot/blob/main/json-schema/ocean-cluster.json", "title": "Spot Ocean Cluster", "description": "An Ocean cluster is a serverless Kubernetes infrastructure engine that automatically manages and optimizes cloud infrastructure for containers, handling node provisioning, scaling, and cost optimization.", "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the Ocean cluster." }, "name": { "type": "string", "description": "The name of the Ocean cluster." }, "controllerClusterId": { "type": "string", "description": "The Ocean controller cluster identifier used by the controller pod." }, "region": { "type": "string", "description": "The cloud provider region where the cluster is deployed." }, "autoScaler": { "type": "object", "description": "The autoscaler configuration for the Ocean cluster.", "properties": { "isEnabled": { "type": "boolean", "description": "Whether the autoscaler is enabled." }, "isAutoConfig": { "type": "boolean", "description": "Whether automatic configuration is enabled." }, "cooldown": { "type": "integer", "description": "Cooldown period in seconds between scaling actions." }, "resourceLimits": { "type": "object", "properties": { "maxMemoryGib": { "type": "integer", "description": "Maximum memory in GiB for the cluster." }, "maxVCpu": { "type": "integer", "description": "Maximum vCPUs for the cluster." } } } } }, "capacity": { "type": "object", "description": "The capacity configuration for the Ocean cluster.", "properties": { "target": { "type": "integer", "description": "The desired number of instances." }, "minimum": { "type": "integer", "description": "The minimum number of instances." }, "maximum": { "type": "integer", "description": "The maximum number of instances." } } }, "strategy": { "type": "object", "description": "The optimization strategy for the Ocean cluster.", "properties": { "spotPercentage": { "type": "integer", "description": "Percentage of spot instances in the cluster." }, "fallbackToOd": { "type": "boolean", "description": "Whether to fall back to on-demand when spot is unavailable." }, "utilizeReservedInstances": { "type": "boolean", "description": "Whether to utilize reserved instances." }, "utilizeCommitments": { "type": "boolean", "description": "Whether to utilize savings plans and commitments." } } }, "createdAt": { "type": "string", "format": "date-time", "description": "The timestamp when the cluster was created." }, "updatedAt": { "type": "string", "format": "date-time", "description": "The timestamp when the cluster was last updated." } } }