StormForge · Schema
StormForge Recommendation
Schema for a StormForge Kubernetes workload resource optimization recommendation. Contains suggested CPU and memory request and limit values for containers in a workload, along with predicted impact metrics.
Cloud Cost OptimizationDevOpsFinOpsKubernetesMachine LearningResource ManagementRightsizing
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier for this recommendation |
| clusterName | string | Name of the Kubernetes cluster containing the workload |
| namespace | string | Kubernetes namespace containing the workload |
| workloadName | string | Name of the Kubernetes workload (Deployment, StatefulSet, etc.) |
| workloadKind | string | Kubernetes resource kind of the workload |
| containers | array | Container-level resource recommendations |
| impact | object | |
| hpa | object | |
| status | string | Current status of the recommendation |
| createdAt | string | Timestamp when this recommendation was generated |
| appliedAt | string | Timestamp when this recommendation was applied |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://api-evangelist.github.io/stormforge/json-schema/stormforge-recommendation-schema.json",
"title": "StormForge Recommendation",
"description": "Schema for a StormForge Kubernetes workload resource optimization recommendation. Contains suggested CPU and memory request and limit values for containers in a workload, along with predicted impact metrics.",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this recommendation"
},
"clusterName": {
"type": "string",
"description": "Name of the Kubernetes cluster containing the workload"
},
"namespace": {
"type": "string",
"description": "Kubernetes namespace containing the workload"
},
"workloadName": {
"type": "string",
"description": "Name of the Kubernetes workload (Deployment, StatefulSet, etc.)"
},
"workloadKind": {
"type": "string",
"enum": ["Deployment", "StatefulSet", "DaemonSet", "ReplicaSet", "ReplicationController"],
"description": "Kubernetes resource kind of the workload"
},
"containers": {
"type": "array",
"description": "Container-level resource recommendations",
"items": {
"$ref": "#/$defs/ContainerRecommendation"
}
},
"impact": {
"$ref": "#/$defs/ImpactMetrics"
},
"hpa": {
"$ref": "#/$defs/HPARecommendation"
},
"status": {
"type": "string",
"enum": ["pending", "approved", "applied", "dismissed", "expired"],
"description": "Current status of the recommendation"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp when this recommendation was generated"
},
"appliedAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp when this recommendation was applied"
}
},
"required": ["clusterName", "namespace", "workloadName", "workloadKind", "containers"],
"$defs": {
"ResourceQuantity": {
"type": "string",
"description": "Kubernetes resource quantity. CPU in millicores (e.g. '100m', '1') or memory in bytes with suffix (e.g. '256Mi', '1Gi')"
},
"ContainerRecommendation": {
"type": "object",
"description": "Resource recommendations for a single container",
"required": ["containerName"],
"properties": {
"containerName": {
"type": "string",
"description": "Name of the container within the pod spec"
},
"requests": {
"type": "object",
"description": "Recommended resource requests",
"properties": {
"cpu": { "$ref": "#/$defs/ResourceQuantity" },
"memory": { "$ref": "#/$defs/ResourceQuantity" }
}
},
"limits": {
"type": "object",
"description": "Recommended resource limits",
"properties": {
"cpu": { "$ref": "#/$defs/ResourceQuantity" },
"memory": { "$ref": "#/$defs/ResourceQuantity" }
}
},
"current": {
"type": "object",
"description": "Current resource configuration for comparison",
"properties": {
"requests": {
"type": "object",
"properties": {
"cpu": { "$ref": "#/$defs/ResourceQuantity" },
"memory": { "$ref": "#/$defs/ResourceQuantity" }
}
},
"limits": {
"type": "object",
"properties": {
"cpu": { "$ref": "#/$defs/ResourceQuantity" },
"memory": { "$ref": "#/$defs/ResourceQuantity" }
}
}
}
}
}
},
"ImpactMetrics": {
"type": "object",
"description": "Projected cost and performance impact of applying the recommendation",
"properties": {
"cpuSavingsPercent": {
"type": "number",
"description": "Projected percentage reduction in CPU resource requests"
},
"memorySavingsPercent": {
"type": "number",
"description": "Projected percentage reduction in memory resource requests"
},
"estimatedMonthlySavingsUSD": {
"type": "number",
"description": "Estimated monthly cost savings in US dollars"
},
"riskLevel": {
"type": "string",
"enum": ["low", "medium", "high"],
"description": "Risk level of applying this recommendation based on historical usage patterns"
}
}
},
"HPARecommendation": {
"type": "object",
"description": "Horizontal Pod Autoscaler configuration recommendation",
"properties": {
"minReplicas": {
"type": "integer",
"description": "Recommended minimum replica count"
},
"maxReplicas": {
"type": "integer",
"description": "Recommended maximum replica count"
},
"targetCPUUtilizationPercentage": {
"type": "integer",
"description": "Recommended target CPU utilization percentage for HPA scaling"
}
}
}
}
}