Analyze must-gather
General rules
If something prevents you from taking meaningful steps forward, stop and report the problem to the user.
Consider the must-gather report read-only. Do not edit anything in it.
Even if you have tools like oc or ssh available, don't do direct cluster examination during the analysis. Stick to just analyzing the files in the must-gather report. If you find that it would be useful to have some more information, which is missing from the report but could be obtained by directly inspecting OpenShift or OpenStack or the underlying servers, highlight that in your analysis.
You MUST NOT use any command whose purpose is to communicate over network.
If you have a TODO-like tool available, use it to keep track of steps to do.
The analysis you produce should include paths to relevant files so that the analysis can be independently verified or continued further from where you left off.
Must-gather report structure hints
The must-gather report can come already extracted as a directory, or as a .tar.xz that you should extract.
Pod logs for OpenStack services and their Operators tend to be useful. These are by default under namespaces/openstack and namespaces/openstack-operators respectively, but the naming may be customized.
There may be "sos reports" (logs and troubleshooting command outputs) from OpenStack data plane nodes (e.g. compute nodes) and OCP nodes under sos-reports/_all_nodes directory. You may need to extract them from .tar.xz files. The compute node sos reports tend to be useful when investigating problems affecting OpenStack virtual machines and services on the data plane.
There can be short transient error states -- this is often ok and expected for convergence-oriented deployment/update processes where many things happen in parallel. If an error happens for a short while and then stops happening (service recovers and progresses further) then it's quite likely it's not a symptom of a problem.
Analysis workflow
Locate the must-gather report. If it's tarballed, extract it. Do not do too many ls calls to understand the structure of the report yet, it is big with many subdirectories.
Scan the report for signs of problems with tools like grep or ripgrep. The words to look for include but may not be limited to "error", "fail", "failure", "fatal", "restart".
Try to find the root cause of the main problem, not just symptoms. If that doesn't seem possible, gathering more clues is still helpful.
Output a structured analysis of the observed problems and ideally also their causes. Focus primarily on the most severe issues. Don't forget to cite relevant file paths in your analysis.
RHOSO-Specialized Triage (optional)
After producing the generic analysis, check whether the must-gather contains RHOSO (Red Hat OpenStack Services on OpenShift) resources:
# Check for RHOSO namespace directories
find <must-gather-root> -maxdepth 2 -type d \( -name "openstack" -o -name "openstack-operators" \)
# Check for RHOSO CRDs
find <must-gather-root> -path "*/cluster-scoped-resources/openstack.org" -type d
# Check for OpenStackControlPlane resources
find <must-gather-root> -path "*openstackcontrolplane*" -type f | head -5
If RHOSO resources are detected:
Inform the user: "This must-gather contains RHOSO (Red Hat OpenStack Services on OpenShift) resources. A specialized RHOSO triage is available that uses omc to perform deeper diagnostics including operator installation validation, networking alignment checks, storage class analysis, and control/data plane status."
Ask: "Would you like to run RHOSO-specialized triage? (Requires omc to be installed.)"
If the user confirms, check for omc:
- Run
which omc. If not found, provide install instructions and continue with just the generic analysis.
- If found, locate the must-gather root (find the directory containing
cluster-scoped-resources/), run omc use <path>, and detect the OpenStack namespaces (openstack, openstack-operators).
Dispatch the support-triage agent with the generic findings as context:
Agent(
subagent_type="openstack-k8s-agent-tools:support-triage:support-triage",
description="RHOSO-specialized triage after generic analysis",
prompt="Must-gather path: <path>
Namespaces: openstack=<ns>, openstack-operators=<ns-ops>
Selected categories: all
## Prior Generic Analysis Findings
<insert the structured analysis you just produced>
RHOSO-specific resources detected. The generic analysis above identified surface-level
issues. Focus on RHOSO-specific diagnostics: correlate generic findings with RHOSO root
causes, check configurations the generic scan cannot evaluate (OperatorGroup
targetNamespace, NAD/NNCP alignment, StorageClass alignment, webhook namespace selectors),
and avoid duplicating already-reported issues unless adding RHOSO-specific context."
)
Present the combined output: the generic analysis followed by the RHOSO-specialized triage report.
If RHOSO resources are NOT detected, skip this section entirely and present only the generic analysis.
1---2name: analyze-must-gather3description: Produce an analysis of observed problems in a must-gather report from OpenStack Services on OpenShift4---56# Analyze must-gather78## General rules910- If something prevents you from taking meaningful steps forward, stop and report the problem to the user.1112- Consider the must-gather report read-only. Do not edit anything in it.1314- Even if you have tools like `oc` or `ssh` available, don't do direct cluster examination during the analysis. Stick to just analyzing the files in the must-gather report. If you find that it would be useful to have some more information, which is missing from the report but could be obtained by directly inspecting OpenShift or OpenStack or the underlying servers, highlight that in your analysis.1516- You MUST NOT use any command whose purpose is to communicate over network.1718- If you have a TODO-like tool available, use it to keep track of steps to do.1920- The analysis you produce should include paths to relevant files so that the analysis can be independently verified or continued further from where you left off.2122## Must-gather report structure hints2324- The must-gather report can come already extracted as a directory, or as a .tar.xz that you should extract.2526- Pod logs for OpenStack services and their Operators tend to be useful. These are by default under `namespaces/openstack` and `namespaces/openstack-operators` respectively, but the naming may be customized.2728- There may be "sos reports" (logs and troubleshooting command outputs) from OpenStack data plane nodes (e.g. compute nodes) and OCP nodes under `sos-reports/_all_nodes` directory. You may need to extract them from .tar.xz files. The compute node sos reports tend to be useful when investigating problems affecting OpenStack virtual machines and services on the data plane.2930- There can be short transient error states -- this is often ok and expected for convergence-oriented deployment/update processes where many things happen in parallel. If an error happens for a short while and then stops happening (service recovers and progresses further) then it's quite likely it's not a symptom of a problem.3132## Analysis workflow33341. Locate the must-gather report. If it's tarballed, extract it. Do not do too many `ls` calls to understand the structure of the report yet, it is big with many subdirectories.35362. Scan the report for signs of problems with tools like `grep` or `ripgrep`. The words to look for include but may not be limited to "error", "fail", "failure", "fatal", "restart".37383. Try to find the root cause of the main problem, not just symptoms. If that doesn't seem possible, gathering more clues is still helpful.39404. Output a structured analysis of the observed problems and ideally also their causes. Focus primarily on the most severe issues. Don't forget to cite relevant file paths in your analysis.4142## RHOSO-Specialized Triage (optional)4344After producing the generic analysis, check whether the must-gather contains RHOSO (Red Hat OpenStack Services on OpenShift) resources:4546```bash47# Check for RHOSO namespace directories48find <must-gather-root> -maxdepth 2 -type d \( -name "openstack" -o -name "openstack-operators" \)4950# Check for RHOSO CRDs51find <must-gather-root> -path "*/cluster-scoped-resources/openstack.org" -type d5253# Check for OpenStackControlPlane resources54find <must-gather-root> -path "*openstackcontrolplane*" -type f | head -555```5657If RHOSO resources are detected:58591. **Inform the user**: "This must-gather contains RHOSO (Red Hat OpenStack Services on OpenShift) resources. A specialized RHOSO triage is available that uses `omc` to perform deeper diagnostics including operator installation validation, networking alignment checks, storage class analysis, and control/data plane status."60612. **Ask**: "Would you like to run RHOSO-specialized triage? (Requires `omc` to be installed.)"62633. **If the user confirms**, check for `omc`:64 - Run `which omc`. If not found, provide install instructions and continue with just the generic analysis.65 - If found, locate the must-gather root (find the directory containing `cluster-scoped-resources/`), run `omc use <path>`, and detect the OpenStack namespaces (`openstack`, `openstack-operators`).66674. **Dispatch the support-triage agent** with the generic findings as context:6869 ```70 Agent(71 subagent_type="openstack-k8s-agent-tools:support-triage:support-triage",72 description="RHOSO-specialized triage after generic analysis",73 prompt="Must-gather path: <path>74 Namespaces: openstack=<ns>, openstack-operators=<ns-ops>75 Selected categories: all7677 ## Prior Generic Analysis Findings78 <insert the structured analysis you just produced>7980 RHOSO-specific resources detected. The generic analysis above identified surface-level81 issues. Focus on RHOSO-specific diagnostics: correlate generic findings with RHOSO root82 causes, check configurations the generic scan cannot evaluate (OperatorGroup83 targetNamespace, NAD/NNCP alignment, StorageClass alignment, webhook namespace selectors),84 and avoid duplicating already-reported issues unless adding RHOSO-specific context."85 )86 ```87885. **Present the combined output**: the generic analysis followed by the RHOSO-specialized triage report.8990If RHOSO resources are NOT detected, skip this section entirely and present only the generic analysis.