Skip to content

Back to the catalog

Kogaro
github.comrepo

Kogaro

Kogaro is a Go-based Kubernetes cluster-hygiene validator that continuously scans clusters (and can run one-off against manifests in CI/CD) for silent configuration failures: dangling references to missing ConfigMaps/Secrets/ServiceAccounts/IngressClasses, insecure pod/container SecurityContexts (root user, privileged mode, missing capabilities drops), missing resource requests/limits, container image/architecture mismatches, and NetworkPolicy coverage gaps. Each finding gets a structured KOGARO-CCC-XXX error code for automated alerting/ticketing, and it exposes Prometheus metrics with leader-election/HA support for production deployment via Helm.

TL;DR Kubernetes validator that catches dangling references, insecure SecurityContexts, and networking/image misconfigurations before they cause outages.
Document

What it is

Kogaro is an open-source Kubernetes hygiene validator run as an in-cluster agent (main.go, internal/, Helm charts/), with an optional Wails + Svelte desktop app (ui/) and a separately deployed website. The summary covers its scope; what the page adds is the granular check inventory and the fact that each validation category is gated behind an explicit CLI flag — nothing runs unless you turn it on.

How it works

Validation is opt-in per category. You enable groups of checks with flags, and each check emits a named error (mapped to the KOGARO-XXX-YYY codes). The category-to-flag mapping:

  • Reference: --enable-ingress-validation, --enable-configmap-validation, --enable-secret-validation, --enable-pvc-validation, --enable-serviceaccount-validation
  • Resource: --enable-resource-limits-validation
  • Security: --enable-security-validation (pod/container SecurityContext, privileged mode, privilege escalation, writable root FS, added capabilities) and --enable-security-serviceaccount-validation (ClusterRoleBinding, excessive RoleBinding permissions)
  • Image: --enable-image-validation, with --allow-missing-images and --allow-architecture-mismatch to downgrade those to warnings
  • Networking: --enable-networking-validation (service selector/endpoint/port mismatches, ingress backend checks) and --networking-policy-validation (orphaned policies, missing default-deny, required-namespace coverage)

Resource checks distinguish QoS outcomes: qos_class_issue (BestEffort) for no constraints, qos_class_issue (Burstable) where requests ≠ limits, plus insufficient_cpu_request / insufficient_memory_request against minimum thresholds.

Preconditions / Affected

Targets running Kubernetes clusters. It ships leader election and HA support, so it's built to run continuously in-cluster rather than as a one-shot linter — though the CI/CD "scoped validation" mode supports pre-deployment scanning too.

What to do

If you adopt it, note that a bare install validates nothing useful until you enable the categories you care about — treat the flags above as the real configuration surface. For security posture specifically, --enable-security-validation plus --enable-security-serviceaccount-validation cover root/privileged containers and RBAC over-provisioning. For outage prevention, the Reference and Networking flags catch dangling refs and services with no ready endpoints. Prometheus metrics export validation error counts and run statistics for alerting.

Caveats

The page is largely the project's own pitch ("the only tool specifically designed for operational configuration hygiene"); treat comparative claims as marketing. Several networking and image checks are warning-only or require explicit allow-flags (pod_no_service, missing_image_warning, architecture_mismatch_warning), so they won't fail a pipeline unless configured to. No version numbers, thresholds, or install commands are given on the fetched page — check the repo for those before committing.

Technologies named here

Techniques named here

  • pod_running_as_root
  • pod_allows_root_user
  • container_running_as_root
  • container_allows_privilege_escalation
  • container_privileged_mode
  • container_writable_root_filesystem
  • container_additional_capabilities
  • missing_pod_security_context
  • missing_container_security_context
  • serviceaccount_cluster_role_binding
  • serviceaccount_excessive_permissions
  • network_policy_orphaned
  • missing_network_policy_default_deny
  • missing_network_policy_required
  • dangling_ingress_class
  • dangling_service_reference
  • dangling_tls_secret
  • dangling_configmap_volume
  • dangling_configmap_envfrom
  • dangling_secret_volume
  • dangling_secret_envfrom
  • dangling_secret_env
  • dangling_pvc_reference
  • dangling_storage_class
  • dangling_service_account
  • architecture_mismatch
  • invalid_image_reference
  • missing_image