eiffel-community / etos

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

Initial implementation of an ETOS Kubernetes controller #243

Closed t-persson closed 1 month ago

t-persson commented 1 month ago

Applicable Issues

242

Description of the Change

This implements the controller for testrun, environment and providers. Environment is only used for checking that providers are available 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 change is two commits. First commit is boilerplate code that is created by kubebuilder, the second is my implementation.

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