Conversation
| cliutils.WriteObject(site, path+"runtime/Site-"+site.Name, tb) | ||
| } | ||
| } | ||
| sites, err = cmd.siteHandler.List(optsInput) |
There was a problem hiding this comment.
I believe that the optsInput and optsRuntime should be used for all resources, not just the site, as I noticed that we have Site resources under input and runtime directories, but the Listener is not placed likewise.
There are some resources I am not seeing here, like RouterAccess for a site with link-access enabled, or the Secret for a site with a link to another.
Maybe instead of using the FileSystemHandler's List method, you could evaluate using FileSystemSiteStateLoader, providing the appropriate paths for input and runtime resources?
I'd recommend giving it a try.
There was a problem hiding this comment.
@fgiorgetti do we want input/ dir (currently it attempts to collect, but fails if there are two, eg I've somehow managed to have two site yamls in input/ but obviously only one is valid)?
if we do want to collect, is it a bug that there might be invalid entries in input/
Skupper Debug Dump for local system sites
Overview
The
skupper debug dumpcommand collects diagnostic information from a non-Kubernetes Skupper site and packages it into a compressed tarball (.tar.gzfile). This dump is useful for troubleshooting issues and sharing diagnostic data with support teams.Scope
Single Namespace
The debug dump command operates on one namespace at a time. It does not collect data from multiple namespaces in a single run.
To collect diagnostics from multiple namespaces, run the command multiple times with different namespace flags.
Current User Only
The command can only access namespaces owned by the current user:
~/.local/share/skupper/namespaces/(or$XDG_DATA_HOME/skupper/namespaces/)/var/lib/skupper/namespaces/The command cannot cross user boundaries. Root cannot collect dumps from non-root user namespaces, and vice versa.
Usage
Output File
The command creates a compressed tarball with the following naming pattern:
Tarball Contents
All collected files are organized under the following directory structure:
/versions/Version information for Skupper and platform components:
skupper.yaml/skupper.yaml.txt- Skupper component versions and image detailssystemd.txt- systemd versionpodman.txt- podman versiondocker.txt- docker versionskrouterd.txt- Router version (only if skrouterd binary exists on host)/site-namespace/resources/Skupper resource definitions and router configuration:
Site-*.yaml/Site-*.yaml.txt- Site resource definitionsConnector-*.yaml/Connector-*.yaml.txt- Connector resourcesListener-*.yaml/Listener-*.yaml.txt- Listener resourcesLink-*.yaml/Link-*.yaml.txt- Link resourcesCertificate-*.yaml/Certificate-*.yaml.txt- Certificate resourcesSecret-*.yaml/Secret-*.yaml.txt- Secret resourcesConfigmap-*.yaml/Configmap-*.yaml.txt- ConfigMap resourcesrouter-config.json- Router configuration filePlatform-specific files:
Container-*.yaml/Container-*.yaml.txt- Container inspection detailsSystemd-*.txt- Systemd service status and service file content/site-namespace/resources/skstat/Router statistics collected with all diagnostic flags (
-g,-c,-l,-n,-e,-a,-m,-p):<namespace>-skupper-router-skstat-<flag>.txtrouter-skstat-<flag>.txt/site-namespace/resources/certs/Certificate files organized by type and name:
runtime/<cert-name>/ca.crt- Certificate Authorityruntime/<cert-name>/tls.crt- TLS certificateruntime/<cert-name>/tls.key- TLS private keyinput/<cert-name>/...- User-provided certificates (if any)/site-namespace/logs/Log files from running components:
<namespace>-skupper-router.txt- Router container logssystem-controller.txt- Controller container logssystemd-journal.txt- Complete systemd journal for the skupper servicePlatform-Specific Differences
The debug dump automatically detects the platform for the target namespace and collects platform-appropriate diagnostic data.
Linux Platform (systemd)
Uses systemd to manage the router process on the host.
Additional collection:
systemctl status)journalctl)skstatcommand executionskrouterdbinarySystemd commands executed:
systemctl status(with--userflag for non-root users)journalctl(with--userflag for non-root users)Container Platforms (podman/docker)
Uses container runtime to manage the router in containers.
Additional collection:
podman execordocker exec)Container operations:
Notes
.yamland.yaml.txt) to allow easy viewing in different contextsskrouterdis not installed on the host, the router version file may be omitted (version info is still available in skstat output)