Scalable Infrastructure · JSON Structure

Scalable Infrastructure Kubernetes Cluster Structure

Hierarchical structure of a managed Kubernetes cluster across AWS EKS, GKE, AKS, and DigitalOcean DOKS.

Type: Properties: 0
Cloud InfrastructureComputeDevOpsInfrastructure as CodeKubernetesNetworkingScalabilityStorage

Kubernetes Cluster is a JSON Structure definition published by Scalable Infrastructure.

Meta-schema:

JSON Structure

Raw ↑
{
  "name": "Kubernetes Cluster",
  "description": "Hierarchical structure of a managed Kubernetes cluster across AWS EKS, GKE, AKS, and DigitalOcean DOKS.",
  "fields": [
    {
      "name": "id",
      "type": "string",
      "description": "Provider-assigned cluster identifier.",
      "required": false
    },
    {
      "name": "name",
      "type": "string",
      "description": "Human-readable cluster name in kebab-case.",
      "required": true
    },
    {
      "name": "provider",
      "type": "string",
      "description": "Cloud provider (aws-eks, google-gke, azure-aks, digitalocean-doks, self-managed).",
      "required": true
    },
    {
      "name": "region",
      "type": "string",
      "description": "Cloud region where the control plane runs.",
      "required": true
    },
    {
      "name": "version",
      "type": "string",
      "description": "Kubernetes version (e.g., 1.30).",
      "required": true
    },
    {
      "name": "status",
      "type": "string",
      "description": "Cluster operational status (provisioning, running, upgrading, degraded, deleting, deleted).",
      "required": false,
      "default": "provisioning"
    },
    {
      "name": "endpoint",
      "type": "string",
      "description": "Kubernetes API server URL.",
      "required": false,
      "format": "uri"
    },
    {
      "name": "nodePools",
      "type": "array",
      "description": "Worker node pools with instance type and autoscaling config.",
      "required": true,
      "items": {
        "type": "object",
        "fields": [
          {"name": "name", "type": "string", "description": "Node pool name.", "required": true},
          {"name": "instanceType", "type": "string", "description": "VM instance type (e.g., t3.xlarge, n2-standard-4).", "required": true},
          {"name": "minCount", "type": "integer", "description": "Minimum node count.", "required": true},
          {"name": "maxCount", "type": "integer", "description": "Maximum node count.", "required": true},
          {"name": "desiredCount", "type": "integer", "description": "Current desired node count."},
          {"name": "diskSizeGB", "type": "integer", "description": "Node root disk size in GB.", "default": 100},
          {"name": "labels", "type": "object", "description": "Kubernetes node labels."},
          {"name": "taints", "type": "array", "description": "Kubernetes node taints."},
          {"name": "spotEnabled", "type": "boolean", "description": "Use spot/preemptible instances.", "default": false}
        ]
      }
    },
    {
      "name": "networking",
      "type": "object",
      "description": "Network configuration for pod and service CIDRs and CNI plugin.",
      "required": false,
      "fields": [
        {"name": "vpcId", "type": "string", "description": "VPC or virtual network ID."},
        {"name": "podCidr", "type": "string", "description": "CIDR block for pod addresses."},
        {"name": "serviceCidr", "type": "string", "description": "CIDR block for service cluster IPs."},
        {"name": "cni", "type": "string", "description": "CNI plugin (vpc-cni, calico, cilium, flannel, weave)."},
        {"name": "privateCluster", "type": "boolean", "description": "Whether API server is private.", "default": false}
      ]
    },
    {
      "name": "autoscaling",
      "type": "object",
      "description": "Cluster Autoscaler settings.",
      "required": false,
      "fields": [
        {"name": "enabled", "type": "boolean", "description": "Whether cluster autoscaling is enabled.", "default": true},
        {"name": "minNodes", "type": "integer", "description": "Minimum total cluster node count."},
        {"name": "maxNodes", "type": "integer", "description": "Maximum total cluster node count."},
        {"name": "scaleDownEnabled", "type": "boolean", "description": "Whether scale-down is permitted.", "default": true},
        {"name": "scaleDownDelayAfterAdd", "type": "string", "description": "Delay after adding nodes before scale-down evaluation."},
        {"name": "scaleDownUnneededTime", "type": "string", "description": "Time a node must be idle before removal."}
      ]
    },
    {
      "name": "addons",
      "type": "array",
      "description": "Managed cluster add-ons (coredns, metrics-server, vpc-cni, etc.).",
      "required": false
    },
    {
      "name": "tags",
      "type": "object",
      "description": "Key-value metadata labels.",
      "required": false
    },
    {
      "name": "createdAt",
      "type": "string",
      "description": "Cluster creation timestamp.",
      "required": false,
      "format": "date-time"
    }
  ]
}