Make CSI & Cloud provider tests separate#2717
Conversation
There was a problem hiding this comment.
⚠️ Not ready to approve
There is a moderate API design issue in the new chart-prerequisites keyword where an exposed argument is effectively ignored due to caching, which can mislead callers and mask configuration errors.
Pull request overview
This PR refactors the Rancher integration Robot Framework suite to split Rancher Apps chart validation for the Harvester CSI Driver and Harvester Cloud Provider into separate test cases/keywords, improving test structure and making chart-specific failures easier to isolate.
Changes:
- Added suite-level
Test Tagsand simplified per-test tag lists in the Rancher integration regression suite. - Split the “import existing RKE2 cluster + apps install + workload verification” flow into: import/ready check, CSI chart install + CSI workload validation, and cloud provider chart install + LB workload validation.
- Introduced new/updated Rancher keywords to support separate CSI vs cloud provider chart installs and workload verification.
File summaries
| File | Description |
|---|---|
| harvester_robot_tests/tests/regression/test_rancher_integration.robot | Splits imported-cluster chart tests into separate CSI and cloud-provider test cases; moves common tags to suite settings. |
| harvester_robot_tests/keywords/rancher.resource | Adds/updates keywords and suite variables to support separate chart installs and per-chart workload verification on imported clusters. |
Copilot's findings
- Files reviewed: 2/2 changed files
- Comments generated: 2
Note
Your feedback helps us improve the quality of this feature.
Please use 👍 or 👎 to tell us whether this assessment is correct.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| Import cluster should be ready | ||
| [Documentation] Skip the chart from App tests if the imported cluster did not come up. | ||
| Skip If not ${IMPORT_CLUSTER_READY} Import cluster did not come up; skipping chart validation |
| [Arguments] ${cluster_id} ${cluster_name} ${chart_repo_branch}=${CHART_REPO_BRANCH} | ||
| [Documentation] Install Harvester Cloud Provider and CSI Driver on an | ||
| ... imported cluster via Rancher's chart catalog API. | ||
| ... Creates the rancher-charts ClusterRepo on the guest cluster, | ||
| ... creates a cloud-config secret, and installs both charts. | ||
| ... The chart_repo_branch argument defaults to the CHART_REPO_BRANCH | ||
| ... variable (e.g. release-v2.14) but can be overridden per call. | ||
| Log Installing Harvester charts on import cluster ${cluster_name} console=yes | ||
| [Documentation] Create the shared prerequisites for installing Harvester charts: | ||
| ... the rancher-charts ClusterRepo and cloud-provider-config secret. | ||
| IF ${IMPORT_CHART_PREREQS_DONE} | ||
| Log Harvester chart prerequisites already created on ${cluster_name} console=yes |
Signed-off-by: Khushboo <fnu.khushboo@suse.com>
4a15839 to
ce70c43
Compare
| [Documentation] Verify multi-node cluster exists before proceeding. | ||
| Skip If '${MULTI_CLUSTER_ID}' == '' Multi-node cluster not available | ||
|
|
||
| Import cluster should be ready |
There was a problem hiding this comment.
nit: should be is more like a pass/fail assert, may consider explicit Skip If import cluster is not ready
There was a problem hiding this comment.
Let me handle this in my next PR. I'm already working on adding chart upgrade tests. I'll include this there. Thanks

Optimized the Rancher Apps chart testing. Separate the tests for CSI driver and Cloud provider.