Ctadel

KSPM module

The KSPM page lists every Kubernetes-specific finding across every connected cluster.

Columns

ColumnNotes
SeverityCRITICAL / HIGH / MEDIUM / LOW.
StatusOPEN / IGNORED / RESOLVED.
RuleThe KSPM rule name.
KindDeployment, StatefulSet, Pod, ServiceAccount, etc.
Resource nameWorkload name.
NamespaceKubernetes namespace.
ClusterStable cluster ID.

Filters

  • Severity, Status.
  • Cluster, when you have multiple connected.
  • Namespace, to scope to one team or app.
  • Kind, to focus on Pods vs Deployments vs RBAC objects.
  • Category, the rule grouping (Pod Security, RBAC, Network, etc.).

Common rule categories

CategoryExamples
Pod SecurityK8S-PRIVILEGED, K8S-RUN-AS-ROOT, K8S-HOST-NETWORK, K8S-HOST-PID
RBACK8S-WILDCARD-VERB, K8S-DEFAULT-SA-CLUSTER-ADMIN
NetworkK8S-NO-NETWORK-POLICY, K8S-DASHBOARD-EXPOSED
Resource limitsK8S-NO-LIMITS, K8S-NO-REQUESTS
API serverK8S-API-PUBLIC, K8S-ANON-AUTH
Image hygieneK8S-IMAGE-LATEST, K8S-IMAGE-UNSIGNED

Detail panel

For each finding the panel shows:

  • The full path to the offending object: cluster_id / namespace / kind / name.
  • The exact spec excerpt that violates the rule (e.g. securityContext.privileged: true).
  • Remediation, shown as the fix you can apply with kubectl or a PR to your manifests.
  • Cluster context: cloud provider, region, version, public/private endpoint.

Tips

  • Filter cluster + severity = CRITICAL for the prioritised view per cluster.
  • Group by namespace when triaging a multi-tenant cluster, each app team gets their block.
  • Cross-reference with IaC. Every KSPM finding has a sibling IaC rule that catches the same issue at PR time. Once you triage a few, push the work upstream into PR checks.

What's next