https://github.com/rancher/rancher-turtles-e2e
end-to-end tests for the Rancher CAPI extension
https://github.com/rancher/rancher-turtles-e2e
capi rancher testing
Last synced: 6 months ago
JSON representation
end-to-end tests for the Rancher CAPI extension
- Host: GitHub
- URL: https://github.com/rancher/rancher-turtles-e2e
- Owner: rancher
- Created: 2023-12-06T10:09:14.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-07-03T13:09:24.000Z (about 1 year ago)
- Last Synced: 2025-07-03T13:39:56.472Z (about 1 year ago)
- Topics: capi, rancher, testing
- Language: TypeScript
- Homepage: https://github.com/rancher/capi-ui-extension
- Size: 524 KB
- Stars: 0
- Watchers: 8
- Forks: 3
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# rancher-turtles-e2e
[](https://github.com/rancher/rancher-turtles-e2e/actions/workflows/ui-e2e.yaml)
What tests are doing:
1. Create the infra stack ( GCP runner, cert-manager, rancher )
2. Install the Turtles chart with locally built latest chart
3. Deploy the Turtles UI extension
4. Test the Turtles menu, namespaces import features
5. Perform CAPI setup prerequisites
6. Create & Import CAPI cluster using fleet by cluster, namespace annotation
7. Create & Import CAPI cluster using ClusterClass UI
8. Install App on imported CAPI cluster
9. Scale the imported CAPI cluster
10. Remove & Delete the imported CAPI cluster
## Running the tests locally
### Pre-requisites
1. Install Rancher.
2. Install Rancher Turtles chart.
3. Install CAPI UI Extension.
### Running the test
1. `cd tests/cypress/latest`
2. Install Cypress and its dependencies: `npm install`
3. Export the following ENV VAR: `RANCHER_URL` (format: `https:///dashboard`), `RANCHER_PASSWORD`, `RANCHER_USER`, `CYPRESS_TAGS=@install [@short @full|@vsphere]`, and provider specific env var:
1. CAPA - `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`
2. CAPG - `GCP_CREDENTIALS` and `GCP_PROJECT`
3. CAPZ - `AZURE_TENANT_ID`, `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET`, and `AZURE_SUBSCRIPTION_ID`.
4. CAPV - `VSPHERE_ENDPOINTS_LIST` (workflow only, otherwise hardcoded endpoint_ip is part of the following var), `VSPHERE_SECRETS_JSON_BASE64`, see [here](tests/cypress/latest/e2e/capv_rke2_cluster.spec.ts#L15) for reference.
4. Start Cypress: `./node_modules/cypress/bin/cypress open -C cypress.config.ts` or `npx cypress open --env grepTags="@install @short"`
The Cypress GUI should now be visible.
---
# Test structure
We categorize our tests using tags such as `short`, `full`, `vsphere`, and `install`.
Tests tagged with `short` are local (docker-based) tests, while those tagged with `vsphere` are specific to vSphere.
Tests tagged with `full` are cloud provider-based tests. The `install` tag is used for initial setup tests ('install' tag is also to be included in setup tests title).
# Running tests using Cypress grep
We have implemented tags for more precise selection of tests using a Cypress plugin called [cypress-grep](https://github.com/cypress-io/cypress/tree/develop/npm/grep)
Note: the title can be either at `describe`, `context` or `it` level.
By default, daily runs will run test with the tags`@install`, `@short`
To use locally use the tag `--env grepTags=tag` along with the npx command
For example:
```
npx cypress run -C cypress.config.ts --env grepTags="@short" cypress/e2e/*.spec.ts
```