StormForge · JSON Structure

Stormforge Recommendation Structure

Field documentation for StormForge Kubernetes rightsizing recommendation objects

Type: object Properties: 0
Cloud Cost OptimizationDevOpsFinOpsKubernetesMachine LearningResource ManagementRightsizing

Stormforge Recommendation Structure is a JSON Structure definition published by StormForge.

Meta-schema:

JSON Structure

stormforge-recommendation-structure.json Raw ↑
{
  "title": "StormForge Recommendation Structure",
  "description": "Field documentation for StormForge Kubernetes rightsizing recommendation objects",
  "type": "object",
  "fields": [
    { "name": "id", "type": "string", "description": "Unique recommendation identifier" },
    { "name": "clusterName", "type": "string", "description": "Target Kubernetes cluster name", "required": true },
    { "name": "namespace", "type": "string", "description": "Kubernetes namespace", "required": true },
    { "name": "workloadName", "type": "string", "description": "Workload resource name", "required": true },
    {
      "name": "workloadKind",
      "type": "string",
      "description": "Kubernetes resource kind",
      "required": true,
      "values": ["Deployment", "StatefulSet", "DaemonSet", "ReplicaSet", "ReplicationController"]
    },
    {
      "name": "containers",
      "type": "array",
      "description": "Per-container resource recommendations",
      "required": true,
      "items": {
        "type": "object",
        "fields": [
          { "name": "containerName", "type": "string", "description": "Container name in pod spec", "required": true },
          {
            "name": "requests",
            "type": "object",
            "description": "Recommended resource requests (guaranteed resources)",
            "fields": [
              { "name": "cpu", "type": "string", "description": "CPU in millicores (e.g. '100m') or cores (e.g. '0.5')" },
              { "name": "memory", "type": "string", "description": "Memory with unit suffix (e.g. '256Mi', '1Gi')" }
            ]
          },
          {
            "name": "limits",
            "type": "object",
            "description": "Recommended resource limits (maximum allowed resources)",
            "fields": [
              { "name": "cpu", "type": "string", "description": "CPU limit" },
              { "name": "memory", "type": "string", "description": "Memory limit" }
            ]
          },
          {
            "name": "current",
            "type": "object",
            "description": "Current resource configuration for comparison",
            "fields": [
              { "name": "requests", "type": "object", "description": "Current resource requests" },
              { "name": "limits", "type": "object", "description": "Current resource limits" }
            ]
          }
        ]
      }
    },
    {
      "name": "impact",
      "type": "object",
      "description": "Projected cost and performance impact metrics",
      "fields": [
        { "name": "cpuSavingsPercent", "type": "number", "description": "Projected CPU reduction percentage" },
        { "name": "memorySavingsPercent", "type": "number", "description": "Projected memory reduction percentage" },
        { "name": "estimatedMonthlySavingsUSD", "type": "number", "description": "Estimated monthly cost savings in USD" },
        { "name": "riskLevel", "type": "string", "description": "Risk level: low, medium, or high", "values": ["low", "medium", "high"] }
      ]
    },
    {
      "name": "hpa",
      "type": "object",
      "description": "Horizontal Pod Autoscaler recommendation (when HPA is configured)",
      "fields": [
        { "name": "minReplicas", "type": "integer", "description": "Recommended minimum replicas" },
        { "name": "maxReplicas", "type": "integer", "description": "Recommended maximum replicas" },
        { "name": "targetCPUUtilizationPercentage", "type": "integer", "description": "Target CPU for HPA scaling trigger" }
      ]
    },
    {
      "name": "status",
      "type": "string",
      "description": "Recommendation lifecycle status",
      "values": ["pending", "approved", "applied", "dismissed", "expired"]
    },
    { "name": "createdAt", "type": "string", "format": "date-time", "description": "When recommendation was generated" },
    { "name": "appliedAt", "type": "string", "format": "date-time", "description": "When recommendation was applied" }
  ]
}