Kubernetes Cluster

Describes a managed Kubernetes cluster configuration across AWS EKS, Google GKE, Azure AKS, and DigitalOcean DOKS. Covers node pools, networking, autoscaling, and access control.

Cloud InfrastructureComputeDevOpsInfrastructure as CodeKubernetesNetworkingScalabilityStorage

Properties

Name Type Description
id string Provider-assigned unique cluster identifier.
name string Human-readable cluster name.
provider string Cloud provider hosting the managed Kubernetes cluster.
region string Cloud region where the cluster control plane resides.
version string Kubernetes version (e.g., 1.29, 1.30).
status string Current operational status of the cluster.
endpoint string API server endpoint URL for kubectl and client access.
nodePools array Node pools (worker node groups) in the cluster.
networking object
autoscaling object
addons array Managed cluster add-ons or extensions enabled.
tags object Key-value metadata labels.
createdAt string Cluster creation timestamp.
View JSON Schema on GitHub

JSON Schema

scalable-infrastructure-kubernetes-cluster-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/scalable-infrastructure/main/json-schema/scalable-infrastructure-kubernetes-cluster-schema.json",
  "title": "Kubernetes Cluster",
  "description": "Describes a managed Kubernetes cluster configuration across AWS EKS, Google GKE, Azure AKS, and DigitalOcean DOKS. Covers node pools, networking, autoscaling, and access control.",
  "type": "object",
  "required": ["name", "provider", "region", "version"],
  "properties": {
    "id": {
      "type": "string",
      "description": "Provider-assigned unique cluster identifier.",
      "example": "cluster-abc123"
    },
    "name": {
      "type": "string",
      "description": "Human-readable cluster name.",
      "pattern": "^[a-z][a-z0-9-]*$",
      "minLength": 1,
      "maxLength": 63
    },
    "provider": {
      "type": "string",
      "description": "Cloud provider hosting the managed Kubernetes cluster.",
      "enum": ["aws-eks", "google-gke", "azure-aks", "digitalocean-doks", "self-managed"]
    },
    "region": {
      "type": "string",
      "description": "Cloud region where the cluster control plane resides.",
      "examples": ["us-east-1", "us-central1", "eastus", "nyc3"]
    },
    "version": {
      "type": "string",
      "description": "Kubernetes version (e.g., 1.29, 1.30).",
      "pattern": "^\\d+\\.\\d+(\\.\\d+)?$",
      "example": "1.30"
    },
    "status": {
      "type": "string",
      "description": "Current operational status of the cluster.",
      "enum": ["provisioning", "running", "upgrading", "degraded", "deleting", "deleted"],
      "default": "provisioning"
    },
    "endpoint": {
      "type": "string",
      "description": "API server endpoint URL for kubectl and client access.",
      "format": "uri"
    },
    "nodePools": {
      "type": "array",
      "description": "Node pools (worker node groups) in the cluster.",
      "minItems": 1,
      "items": {
        "$ref": "#/$defs/NodePool"
      }
    },
    "networking": {
      "$ref": "#/$defs/ClusterNetworking"
    },
    "autoscaling": {
      "$ref": "#/$defs/ClusterAutoscaling"
    },
    "addons": {
      "type": "array",
      "description": "Managed cluster add-ons or extensions enabled.",
      "items": {
        "type": "object",
        "required": ["name"],
        "properties": {
          "name": {
            "type": "string",
            "examples": ["coredns", "kube-proxy", "vpc-cni", "metrics-server", "cluster-autoscaler"]
          },
          "version": {"type": "string"},
          "enabled": {"type": "boolean", "default": true}
        }
      }
    },
    "tags": {
      "type": "object",
      "description": "Key-value metadata labels.",
      "additionalProperties": {"type": "string"}
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "description": "Cluster creation timestamp."
    }
  },
  "$defs": {
    "NodePool": {
      "type": "object",
      "description": "A pool of homogeneous worker nodes with shared configuration.",
      "required": ["name", "instanceType", "minCount", "maxCount"],
      "properties": {
        "name": {"type": "string", "description": "Node pool name."},
        "instanceType": {
          "type": "string",
          "description": "VM instance type/machine type.",
          "examples": ["t3.xlarge", "n2-standard-4", "Standard_D4s_v3", "s-4vcpu-8gb"]
        },
        "minCount": {"type": "integer", "minimum": 0, "description": "Minimum node count."},
        "maxCount": {"type": "integer", "minimum": 1, "description": "Maximum node count."},
        "desiredCount": {"type": "integer", "minimum": 0, "description": "Desired node count."},
        "diskSizeGB": {"type": "integer", "minimum": 20, "default": 100},
        "labels": {
          "type": "object",
          "additionalProperties": {"type": "string"},
          "description": "Kubernetes node labels."
        },
        "taints": {
          "type": "array",
          "description": "Kubernetes node taints for workload scheduling.",
          "items": {
            "type": "object",
            "properties": {
              "key": {"type": "string"},
              "value": {"type": "string"},
              "effect": {"type": "string", "enum": ["NoSchedule", "PreferNoSchedule", "NoExecute"]}
            }
          }
        },
        "spotEnabled": {
          "type": "boolean",
          "description": "Whether to use spot/preemptible instances for cost savings.",
          "default": false
        }
      }
    },
    "ClusterNetworking": {
      "type": "object",
      "description": "Cluster networking configuration.",
      "properties": {
        "vpcId": {"type": "string", "description": "VPC or network ID."},
        "podCidr": {"type": "string", "description": "CIDR block for pod IP addresses.", "example": "10.244.0.0/16"},
        "serviceCidr": {"type": "string", "description": "CIDR block for service cluster IPs.", "example": "10.96.0.0/12"},
        "cni": {
          "type": "string",
          "description": "Container Network Interface plugin.",
          "enum": ["vpc-cni", "calico", "cilium", "flannel", "weave"],
          "default": "vpc-cni"
        },
        "privateCluster": {
          "type": "boolean",
          "description": "Whether the API server is accessible only from within the VPC.",
          "default": false
        }
      }
    },
    "ClusterAutoscaling": {
      "type": "object",
      "description": "Cluster-level autoscaling settings.",
      "properties": {
        "enabled": {"type": "boolean", "default": true},
        "minNodes": {"type": "integer", "minimum": 1},
        "maxNodes": {"type": "integer", "minimum": 1},
        "scaleDownEnabled": {"type": "boolean", "default": true},
        "scaleDownDelayAfterAdd": {"type": "string", "description": "Delay after node addition before scale-down.", "example": "10m"},
        "scaleDownUnneededTime": {"type": "string", "description": "Time a node must be unneeded before removal.", "example": "10m"}
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/scalable-infrastructure-kubernetes-cluster"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.