ARO HCP CLI extension - #10324
Conversation
…by name rather than by full resource ID
…vel list of user assigned identities
|
Hi Kipp Morris (@kimorris27), |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
🟡 Changes recommended
User-facing behavior/docs have a couple of concrete inconsistencies (README placeholder and request-credential non-admin no-op/help mismatch, plus aro group preview marking) that should be corrected before merge.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR introduces a new Azure CLI extension (aro-hcp) that adds the az aro hcp command group for managing Azure Red Hat OpenShift hosted control plane (HCP) resources, including clusters, node pools, external auth, version discovery, and credential workflows.
Changes:
- Adds extension packaging/metadata files (setup, history, linter exclusions, metadata, ownership).
- Implements custom command behavior for identity assignment, version formatting, and kubeconfig/credential handling.
- Adds AAZ-generated command surface area plus unit/scenario tests and recording processors.
File summaries
| File | Description |
|---|---|
| src/aro-hcp/setup.py | Extension packaging metadata |
| src/aro-hcp/setup.cfg | Packaging config placeholder |
| src/aro-hcp/README.md | Extension README |
| src/aro-hcp/linter_exclusions.yml | CLI linter rule exclusions |
| src/aro-hcp/HISTORY.rst | Changelog / release history |
| src/aro-hcp/azext_aro_hcp/init.py | Extension command loader |
| src/aro-hcp/azext_aro_hcp/azext_metadata.json | Extension metadata (preview/min core) |
| src/aro-hcp/azext_aro_hcp/commands.py | Command table registration |
| src/aro-hcp/azext_aro_hcp/custom.py | Custom behaviors (identity/versions/credentials) |
| src/aro-hcp/azext_aro_hcp/_params.py | Argument loader stub |
| src/aro-hcp/azext_aro_hcp/_help.py | Help registration stub |
| src/aro-hcp/azext_aro_hcp/_format.py | Table transformers + version parsing |
| src/aro-hcp/azext_aro_hcp/_kubeconfig.py | Kubeconfig merge + CSR/key helpers |
| src/aro-hcp/azext_aro_hcp/aaz/init.py | AAZ package init |
| src/aro-hcp/azext_aro_hcp/aaz/latest/init.py | AAZ latest init |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/init.py | aro group init |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/__cmd_group.py | aro group registration |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/init.py | aro hcp group init |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/__cmd_group.py | aro hcp group registration |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/_get_versions.py | AAZ get-versions command |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/init.py | Cluster group init |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/__cmd_group.py | Cluster group registration |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/_show.py | AAZ cluster show |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/_delete.py | AAZ cluster delete |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/_wait.py | AAZ cluster wait |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/_request_credential.py | AAZ request-credential base |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/_revoke_credential.py | AAZ revoke-credential |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/nodepool/init.py | Nodepool group init |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/nodepool/__cmd_group.py | Nodepool group registration |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/nodepool/_list.py | AAZ nodepool list |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/nodepool/_show.py | AAZ nodepool show |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/nodepool/_delete.py | AAZ nodepool delete |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/nodepool/_wait.py | AAZ nodepool wait |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/external_auth/init.py | External-auth group init |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/external_auth/__cmd_group.py | External-auth group registration |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/external_auth/_create.py | AAZ external-auth create |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/external_auth/_show.py | AAZ external-auth show |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/external_auth/_list.py | AAZ external-auth list |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/external_auth/_delete.py | AAZ external-auth delete |
| src/aro-hcp/azext_aro_hcp/aaz/latest/aro/hcp/cluster/external_auth/_wait.py | AAZ external-auth wait |
| src/aro-hcp/azext_aro_hcp/tests/init.py | Test package init |
| src/aro-hcp/azext_aro_hcp/tests/latest/init.py | Latest tests init |
| src/aro-hcp/azext_aro_hcp/tests/latest/test_commands.py | Command table unit tests |
| src/aro-hcp/azext_aro_hcp/tests/latest/test_custom_commands.py | Custom command unit tests |
| src/aro-hcp/azext_aro_hcp/tests/latest/test_format.py | Formatter unit tests |
| src/aro-hcp/azext_aro_hcp/tests/latest/test_kubeconfig.py | Kubeconfig helper unit tests |
| src/aro-hcp/azext_aro_hcp/tests/latest/test_recording_processors.py | Recording processor unit tests |
| src/aro-hcp/azext_aro_hcp/tests/latest/test_aro_hcp_scenario.py | Scenario test coverage |
| .github/CODEOWNERS | Adds aro-hcp code owners |
Review details
- Files reviewed: 56/57 changed files
- Comments generated: 4
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
/azp run |
|
Commenter does not have sufficient privileges for PR 10324 in repo Azure/azure-cli-extensions |
|
ARO HCP |
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
…s (to align with public preview docs)
|
/azp run |
|
Azure Pipelines: Successfully started running 2 pipeline(s). |
This checklist is used to make sure that common guidelines for a pull request are followed.
Related command
az aro hcp(new command)General Guidelines
azdev style <YOUR_EXT>locally? (pip install azdevrequired)python scripts/ci/test_index.py -qlocally? (pip install azdevrequired)For new extensions:
About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update
src/index.jsonautomatically.You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify
src/index.json.