id = "hubble" name = "Hubble" homepage = "https://github.com/cilium/hubble" description = "Hubble - Network, Service & Security Observability for Kubernetes using eBPF" executables = ["hubble"] platforms = ["macos", "linux"] [dotfiles] # The Hubble CLI's documented default is ~/.config/hubble/config.yaml; its # source publishes the complete set of keys, including basic-auth and the TLS # certificate/key path settings: # https://github.com/cilium/hubble/blob/main/README.md # https://pkg.go.dev/github.com/cilium/cilium/hubble/cmd/common/config paths = ["~/.config/hubble/config.yaml"] exclude = [] secret = [] [[dotfiles.secret_paths]] file = "~/.config/hubble/config.yaml" match = { key_path = ["basic-auth-password"] } # These values are paths to certificates and kubeconfig files on one machine, # not portable preferences. The key names are defined by Hubble's config # package (linked above). [[dotfiles.machine_lines]] file = "~/.config/hubble/config.yaml" match = { key_path = ["kubeconfig", "tls-ca-cert-files", "tls-client-cert-file", "tls-client-key-file"] } scope = "backup" [commands] format = 1 label = "Hubble" description = "Stream network flows from Hubble. Only a few common observe filters are covered." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.subcommand]] path = ["observe"] label = "Observe flows" description = "Print flows, filtered by time, type or namespace." [[commands.subcommand.source]] id = "readme" kind = "manual" url = "https://github.com/cilium/hubble/blob/main/README.md" revision = "main 2026-10" evidence = """ hubble observe --since=1m -t l7 -o json \\ hubble observe --print-raw-filters \\ -t drop \\ -n kube-system \\ --not --label "k8s:k8s-app=kube-dns" \\ """ [[commands.subcommand.field]] id = "since" label = "Since" description = "For example 1m." type = "string" option = ["--since"] sources = ["readme"] [[commands.subcommand.field]] id = "type" label = "Event type" description = "For example drop or l7." type = "string" option = ["-t"] sources = ["readme"] [[commands.subcommand.field]] id = "namespace" label = "Namespace" type = "string" option = ["-n"] sources = ["readme"] [[commands.subcommand.field]] id = "label" label = "Label" type = "string" option = ["--label"] sources = ["readme"] [[commands.subcommand.field]] id = "output" label = "Output format" description = "For example json." type = "string" option = ["-o"] sources = ["readme"] [[commands.subcommand.task]] id = "drops" label = "Dropped flows in a namespace" fields = ["type", "namespace", "since"] required = ["type"] set = { type = ["drop"] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["since", "type", "namespace", "label", "output"]