Add: Simple namespace analysis with detailed pod and container information

This commit is contained in:
2025-09-30 13:40:55 -03:00
parent e2311b6967
commit 3bf0c99fd6

View File

@@ -974,8 +974,8 @@
// Create detailed view // Create detailed view
const detailsHtml = createNamespaceDetails(namespace); const detailsHtml = createNamespaceDetails(namespace);
// Show modal or expandable section // Show details in an alert for now (simpler approach)
showNamespaceDetails(namespaceName, detailsHtml); showNamespaceDetailsSimple(namespaceName, detailsHtml);
} }
// Create detailed HTML for namespace issues // Create detailed HTML for namespace issues
@@ -1051,32 +1051,52 @@
return html; return html;
} }
// Show namespace details in modal // Show namespace details in a simple alert (temporary solution)
function showNamespaceDetails(namespaceName, detailsHtml) { function showNamespaceDetailsSimple(namespaceName, detailsHtml) {
// Create modal if it doesn't exist // Create a simple text summary for the alert
let modal = document.getElementById('namespaceModal'); const namespace = currentData.namespaces.find(ns => ns.namespace === namespaceName);
if (!modal) { if (!namespace) return;
modal = document.createElement('div');
modal.id = 'namespaceModal';
modal.className = 'modal';
modal.innerHTML = `
<div class="modal-content">
<span class="close">&times;</span>
<div id="modalBody"></div>
</div>
`;
document.body.appendChild(modal);
// Add close functionality
modal.querySelector('.close').onclick = () => modal.style.display = 'none';
modal.onclick = (e) => {
if (e.target === modal) modal.style.display = 'none';
};
}
// Populate and show modal let summary = `📋 ${namespaceName} - Detailed Analysis\n\n`;
document.getElementById('modalBody').innerHTML = detailsHtml; summary += `Pods: ${Object.keys(namespace.pods || {}).length}\n`;
modal.style.display = 'block'; summary += `Total Issues: ${namespace.total_validations || 0}\n\n`;
// Add severity breakdown
const breakdown = namespace.severity_breakdown || {};
summary += `Severity Breakdown:\n`;
summary += `- Errors: ${breakdown.error || 0}\n`;
summary += `- Warnings: ${breakdown.warning || 0}\n`;
summary += `- Info: ${breakdown.info || 0}\n\n`;
// Add pod details
summary += `Pod Analysis:\n`;
Object.values(namespace.pods || {}).forEach(pod => {
summary += `\n📦 ${pod.pod_name}\n`;
summary += `Status: ${pod.phase}\n`;
summary += `Node: ${pod.node_name}\n`;
// Add container details
pod.containers.forEach(container => {
const hasRequests = Object.keys(container.resources?.requests || {}).length > 0;
const hasLimits = Object.keys(container.resources?.limits || {}).length > 0;
summary += `\n Container: ${container.name}\n`;
summary += ` Image: ${container.image}\n`;
summary += ` Requests: ${hasRequests ? JSON.stringify(container.resources.requests) : '❌ Not defined'}\n`;
summary += ` Limits: ${hasLimits ? JSON.stringify(container.resources.limits) : '❌ Not defined'}\n`;
});
// Add validation details
if (pod.validations && pod.validations.length > 0) {
summary += `\n Issues Found:\n`;
pod.validations.forEach(validation => {
summary += ` - ${validation.rule_name}: ${validation.message}\n`;
summary += ` Recommendation: ${validation.recommendation}\n`;
});
}
});
alert(summary);
} }
// Fix namespace - placeholder for now // Fix namespace - placeholder for now