Skip to content

Introduce Simulation Provider for integration testing #1120

Description

@takoverflow

How to categorize this issue?

/area testing
/kind enhancement

Issue Description:

Currently, all MCM integration tests (IT) run only with an actual cloud provider, making it difficult to validate changes or perform stress tests with a large number of machines. Moreover, the tests don't run as part of the repository's CI/CD workflows since that requires a running kubernetes cluster with actual backing infrastructure.

What would you like to be added:

Having a simulation provider that could emulate CSP (cloud service provider) responses for the Machine Driver interface with support for injection of various constraints such as instance quota, mock delays or targeted failures.

The introduction of the simulation provider would be achieved in multiple stages:

  • Proposal detailing out the requirement and the plan to achieve them.
    Add proposal for simulation provider for testing #1121
  • Introduction of bare-bones provider that allows running the IT as is.
  • Addition of simulation modification hooks to improve and standardize the process of extending the testing scenarios.

Why is this needed:

This would allow for testing any MCM changes by having automated workflows that run the IT with the simulation provider without needing real infrastructure.

Furthermore, this would greatly increase developer productivity by reducing the friction of manually testing the changes since the CSP responses can be mocked and additional constraints be introduced as per their need.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions