id = "sonobuoy" name = "Sonobuoy" homepage = "https://sonobuoy.io/" description = "Sonobuoy is a diagnostic tool that makes it easier to understand the state of a Kubernetes cluster." executables = ["sonobuoy"] [dotfiles] # Sonobuoy's plugin-management documentation says installed plugin # definitions are saved in ~/.sonobuoy (and that SONOBUOY_DIR can override it). # https://sonobuoy.io/plugin-management/ paths = ["~/.sonobuoy/"] secret = [] [commands] format = 1 label = "Sonobuoy" description = "Start a Sonobuoy run (Kubernetes conformance and diagnostics plugins) with sonobuoy run. Other subcommands such as status, results and delete are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand]] path = ["run"] label = "Run plugins" description = "Launch the Sonobuoy aggregator and plugin pods against the current cluster." [[commands.subcommand.source]] id = "help" kind = "help" url = "https://github.com/vmware-tanzu/sonobuoy/blob/main/site/content/docs/main/cli/sonobuoy_run.md" evidence = """sonobuoy run [flags] --context string Context in the kubeconfig to use. --kubeconfig Kubeconfig Path to explicit kubeconfig file. -m, --mode Mode What mode to run the e2e plugin in. Valid modes are [certified-conformance conformance-lite non-disruptive-conformance quick]. (default non-disruptive-conformance) -n, --namespace string The namespace to run Sonobuoy in. Only one Sonobuoy run can exist per namespace simultaneously. (default "sonobuoy") -p, --plugin pluginList Which plugins to run. Can either point to a URL, local file/directory, or be one of the known plugins (e2e or systemd-logs). Can be specified multiple times to run multiple plugins. --wait int[=1440] How long (in minutes) for the CLI to wait for sonobuoy run to be completed or fail, where 0 indicates do not wait. --e2e-focus envModifier Specify the E2E_FOCUS value for the e2e plugin, specifying which tests to run. --e2e-skip envModifier Specify the E2E_SKIP value for the e2e plugin, specifying which tests to skip. --timeout int How long (in seconds) Sonobuoy aggregator will wait for plugins to complete before exiting. 0 indicates no timeout. (default 21600) --dns-namespace string The namespace to check for DNS pods during preflight checks. --level level Log level. One of {panic, fatal, error, warn, info, debug, trace} (default info)""" [[commands.subcommand.field]] id = "mode" label = "E2E mode" type = "enum" option = ["--mode", "-m"] choices = [{ value = "certified-conformance", label = "Certified conformance" }, { value = "conformance-lite", label = "Conformance lite" }, { value = "non-disruptive-conformance", label = "Non-disruptive conformance" }, { value = "quick", label = "Quick" }] sources = ["help"] [[commands.subcommand.field]] id = "plugin" label = "Plugins" description = "Known plugin (e2e, systemd-logs), URL, or local file or directory." type = "string" option = ["--plugin", "-p"] multiple = true suggestions = [{ value = "e2e", label = "e2e" }, { value = "systemd-logs", label = "systemd-logs" }] sources = ["help"] [[commands.subcommand.field]] id = "namespace" label = "Namespace" type = "string" option = ["--namespace", "-n"] sources = ["help"] [[commands.subcommand.field]] id = "kubeconfig" label = "Kubeconfig" type = "path" option = ["--kubeconfig"] path = { kind = "file", role = "input" } sources = ["help"] [[commands.subcommand.field]] id = "context" label = "Kube context" type = "string" option = ["--context"] sources = ["help"] [[commands.subcommand.field]] id = "e2e_focus" label = "E2E focus" type = "string" option = ["--e2e-focus"] sources = ["help"] [[commands.subcommand.field]] id = "e2e_skip" label = "E2E skip" type = "string" option = ["--e2e-skip"] sources = ["help"] [[commands.subcommand.field]] id = "wait" label = "Wait (minutes)" description = "Block until the run completes or fails; 0 means do not wait." type = "integer" option = ["--wait"] sources = ["help"] [[commands.subcommand.field]] id = "timeout" label = "Aggregator timeout (seconds)" type = "integer" option = ["--timeout"] sources = ["help"] [[commands.subcommand.task]] id = "quick" label = "Quick smoke run" set = { mode = ["quick"] } lock = ["mode"] fields = ["mode", "namespace", "kubeconfig", "context", "wait"] [[commands.subcommand.task]] id = "conformance" label = "Non-disruptive conformance" set = { mode = ["non-disruptive-conformance"] } fields = ["mode", "namespace", "kubeconfig", "context", "wait"] [[commands.subcommand.task]] id = "plugins" label = "Choose plugins" fields = ["plugin", "namespace", "kubeconfig", "context", "wait"] required = ["plugin"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["mode", "plugin", "namespace", "kubeconfig", "context", "wait"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["e2e_focus", "e2e_skip", "timeout"]