eiffel-community / etos

Eiffel Test Orchestration System
https://etos.readthedocs.io
Apache License 2.0
9 stars 6 forks source link

A working state of the testrun controller #246

Closed t-persson closed 1 month ago

t-persson commented 3 months ago

Applicable Issues

242

Description of the Change

This implements the controller for testrun, environment and providers. Environment is used for storing the sub suite information and the provider implementation will only check if external providers respond properly on a healthcheck endpoint.

The testrun controller can run a suite runner if an environment reports that it is ready and it will wait for the suite runner to complete and delete it and environment after execution. The testrun controller is quite hard-coded though and does not deploy the log listener sidecar or any logstash sidecars for the suite runner.

This change should be seen as a PoC and not to be used in production.

The first commit is boilerplate code that is created by kubebuilder, the second is my implementation.

We now have a working testrun controller and cluster controller. Together with the changes in the API, suite runner, library & environment provider we can now spin up an ETOS cluster and run tests. First part of the poc is now finished. I will continue on to demonstrate how this is actually better when it comes to the handling of environments.

Alternate Designs

Too many to list. I believe a discussion will be required instead of me listing a ton of stuff here.

Possible Drawbacks

I don't actually see any real drawbacks. This is just better than what we have now.

Sign-off

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.

Signed-off-by: Tobias Persson tobias.persson@axis.com