- Author: Vinaya Damle (@vinayada1)
Currently, all the functional tests require an approval to run which is unnecessary. Only, the tests that use cloud resources need to be approved to run. Also, in the future, we could have tests that require running in AKS/EKS cluster, use a mix of AWS and Azure resources. Currently, we do not have a good plan for organizing such tests.
This is a proposal for organization of functional tests such that it accounts for these requirements and logically organizes the test cases
NA
Issue Reference: radius-project/radius#6588
- Eliminate the need of an approval for running tests that do not use cloud resources
- Account for future tests that might require running in AKS/EKS cluster, a mixed use of AWS and Azure resources, etc.
NA
The proposal is to have the following directory structure:-
- test
- functional-portable (run on any k8s clusters)
- ucp
- cloud
- noncloud
- use features and a single folder for aws and azure
- messagingrp
- cloud
- noncloud
- use features and a single folder for aws and azure
- kubernetes
- cloud
- noncloud
- use features and a single folder for aws and azure
- daprrp
- cloud
- noncloud
- use features and a single folder for aws and azure
- datastoresrp
- cloud
- noncloud
- use features and a single folder for aws and azure
- corerp
- cloud
- noncloud
- use features and a single folder for aws and azure
- cli
- cloud
- noncloud
- use features and a single folder for aws and azure
- samples
- cloud
- noncloud
- use features and a single folder for aws and azure
- functional-aks (future)
- functional-eks (future)
A user, trying to add a new functional test, can use the logic below to determine where to add a new test:-
- Identify if the tests can run on any k8s cluster or specifically requires running in AKS/EKS cluster.
- Identify the area/feature that is being tested (e.g. ucp, samples, daprrp)
- Determine if the test needs to use cloud resources
- If cloud resources are used, whether AWS or Azure resources (or both in the future) are needed
NA
- Organize tests that require AWS and Azure resources into separate directories instead of using features. This will require a re-organization of tests if we decide to add tests with a mix of AWS and Azure resources
- Invert the directory structure with cloud/non-cloud at the parent level and the area (ucp, daprrp, etc.) at the child level. However, it might make more sense for a user to approach this the other way when they are thinking about the feature being added.
NA
NA
NA
NA
- Move the tests to fit the directory structure in this proposal
- Modify the github workflow to always run the non-cloud tests but require an approval to run the tests using cloud resources
- Add notes to contributing documentation to guide future contributions
NA