--- description: List all components tracked in Sippy for a release argument-hint: --- ## Name component-health:list-components ## Synopsis ``` /component-health:list-components ``` ## Description The `component-health:list-components` command fetches and displays all component names tracked in the Sippy component readiness system for a specified OpenShift release. This command is useful for: - Discovering available components for a release - Validating component names before analysis - Understanding which teams/components are tracked - Generating component lists for reports - Finding exact component names for use in other commands ## Implementation 1. **Verify Prerequisites**: Check that Python 3 is installed - Run: `python3 --version` - Verify version 3.6 or later is available 2. **Parse Arguments**: Extract release version from arguments - Release format: "X.Y" (e.g., "4.17", "4.21") 3. **Execute Python Script**: Run the list_components.py script - Script location: `plugins/component-health/skills/list-components/list_components.py` - Pass release as `--release` argument - The script automatically appends "-main" suffix to construct the view - Capture JSON output from stdout 4. **Parse Output**: Process the JSON response - Extract component count and component list - Components are returned alphabetically sorted and unique 5. **Present Results**: Display components in a readable format - Show total count - Display components in a numbered or bulleted list - Optionally group by category (e.g., Networking, Storage, etc.) 6. **Error Handling**: Handle common error scenarios - Network connectivity issues - Invalid release format - API errors (400, 404, 500, etc.) - Empty results ## Return Value The command outputs a **Component List** with the following information: ### Component Summary - **Release**: The release version queried - **View**: The constructed view parameter (release + "-main") - **Total Components**: Count of unique components found ### Component List An alphabetically sorted list of all components, for example: ``` 1. Bare Metal Hardware Provisioning 2. Build 3. Cloud Compute / Cloud Controller Manager 4. Cluster Version Operator 5. Etcd 6. HyperShift 7. Image Registry 8. Installer / openshift-installer 9. kube-apiserver 10. Machine Config Operator 11. Management Console 12. Monitoring 13. Networking / ovn-kubernetes 14. OLM 15. Storage ... ``` ## Examples 1. **List all components for release 4.21**: ``` /component-health:list-components 4.21 ``` Displays all components tracked in Sippy for release 4.21. 2. **List components for release 4.20**: ``` /component-health:list-components 4.20 ``` Displays all components for the 4.20 release. ## Arguments - `$1` (required): Release version - Format: "X.Y" (e.g., "4.17", "4.21") - Must be a valid OpenShift release number ## Prerequisites 1. **Python 3**: Required to run the data fetching script - Check: `which python3` - Version: 3.6 or later 2. **Network Access**: Must be able to reach the Sippy API - Ensure HTTPS requests can be made to `sippy.dptools.openshift.org` ## Notes - The script automatically appends "-main" to the release version - Component names are case-sensitive - Component names are returned in alphabetical order - Some components use hierarchical names with "/" separator (e.g., "Networking / ovn-kubernetes") - The script has a 30-second timeout for HTTP requests - Component names returned can be used directly in other component-health commands ## See Also - Skill Documentation: `plugins/component-health/skills/list-components/SKILL.md` - Script: `plugins/component-health/skills/list-components/list_components.py` - Related Command: `/component-health:list-regressions` (for regression data) - Related Command: `/component-health:summarize-jiras` (for bug data) - Related Command: `/component-health:analyze` (for health analysis)