Documentation Index
Fetch the complete documentation index at: https://docs.foggyhq.com/llms.txt
Use this file to discover all available pages before exploring further.
Scope of this page: Kubernetes RBAC only. Permissions for external connectors (Grafana, Slack, GitHub, Linear, Sentry) are controlled by the API tokens you generate on those services. You choose the scope on each token; Foggy only has what you grant.
Overview
Foggy runs as a pod with a KubernetesServiceAccount and uses Kubernetes-native RBAC to query your cluster read-only. All permissions are declared as ClusterRole resources in the Helm chart, auditable before helm install. Every API call is recorded in your cluster’s audit log if enabled.
What Foggy reads from Kubernetes
| Resource category | Purpose |
|---|---|
| Pods and pod logs | Identify crashing, OOMKilled, or unhealthy workloads; read logs for errors and warnings |
| Events | Surface cluster events (scheduling failures, image pull errors, restarts) |
| Deployments, ReplicaSets, StatefulSets, DaemonSets | Understand workload topology, rollout status, replica counts |
| Services, Endpoints | Map network routing between workloads |
| ConfigMaps | Read non-sensitive configuration (Secrets explicitly excluded, see below) |
| Nodes | Inspect node capacity, conditions, taints |
| Namespaces | Enumerate namespaces for scoping queries |
get, list, and watch. No creation, modification, or deletion.
What Foggy does NOT access
Foggy’s defaultClusterRole explicitly excludes:
- Secrets. API keys, database passwords, TLS certs. Foggy cannot read them.
pods/exec. No shell into any running pod.pods/portforward. No direct network access to pods.create,update,patch,deleteon any resource. Foggy cannot modify, create, or delete anything in your cluster.- Custom Resources from operators (Argo, Istio, cert-manager, etc.). Not in the default scope.
values.yaml opt-in alongside a version bump. We never silently expand the scope.
Default ClusterRole
The exactClusterRole the Helm chart creates:
Customization
Narrow Foggy’s Kubernetes access viavalues.yaml.
Namespace-scoped installation
Restrict Foggy to specific namespaces:Role and RoleBinding per namespace instead of a cluster-wide ClusterRole.
Disable the Kubernetes connector entirely
To connect only to external tools (Grafana, Slack) without Kubernetes access:ServiceAccount, ClusterRole, or RoleBinding is created. Foggy installs and runs; it cannot query Kubernetes.
Bring your own ClusterRole
If your security policy requires a custom role:RoleBinding and expects the ClusterRole to exist.
Kubernetes remediation actions (future)
Today, Foggy is strictly read-only in Kubernetes. Write actions (pod restart, deployment rollback, similar remediations) are deferred to a future opt-in feature with a separate RBAC bundle. Kubernetes writes will always require an explicitvalues.yaml opt-in, never silent expansion. This is distinct from external connector writes (Slack messages, GitHub PRs, Linear tickets), which are already supported today and governed by the API token scopes you grant on those services.