generated from amazon-archives/__template_MIT-0
-
Notifications
You must be signed in to change notification settings - Fork 91
Open
Description
Problem:
The JSON output for namespace-based results overwrites previous entries, leading to loss of data for different namespaces. This occurs because the namespace is not included in the JSON path.
Expected Behavior:
Each namespace-based result should be independently added to the JSON output without overwriting others.
Actual Behavior:
Only the last namespace-based result is retained in the JSON output.
Steps to Reproduce:
- Generate a report with multiple namespace-based results.
- Observe the JSON output.
Affected Version:
<=v0.10.4
Text Output:
│ applications │ argo │ Deploy horizontal pod autoscaler for deployments. │ argo-cd-argocd-applicationset-controller │ Deployment │ Link │
│ applications │ dynatrace │ Deploy horizontal pod autoscaler for deployments. │ dynatrace-operator │ Deployment │ Link │
│ applications │ port │ Deploy horizontal pod autoscaler for deployments. │ │ Deployment │ Link │
JSON Output:
{
"namespace_based": {
"reliability": {
"applications": {
{
"Deploy horizontal pod autoscaler for deployments.": {
"status": true,
"resources": [
""
],
"resource_type": "Deployment",
"namespace": "port",
"resolution": "https://aws.github.io/aws-eks-best-practices/reliability/docs/application/#horizontal-pod-autoscaler-hpa"
}
}
}
}
}
}Proposed Solution:
Include the namespace in the JSON path to ensure unique addressing for each result. The modified code snippet is as follows:
hardeneks/hardeneks/__init__.py
Line 100 in b0451e9
| json_blob[rule._type][rule.pillar][rule.section][rule.message] = result |
- json_blob[rule._type][rule.pillar][rule.section][rule.message] = result
+ if rule._type == "namespace_based":
+ json_blob[rule._type][rule.pillar][rule.section][rule.result.namespace][rule.message] = result
+ else:
+ json_blob[rule._type][rule.pillar][rule.section][rule.message] = resultbc6a1d5
This change ensures that results for different namespaces are stored under their respective namespace keys, preventing data overwrites.
Metadata
Metadata
Assignees
Labels
No labels