3scale / apisonator

Red Hat 3scale API Management Apisonator backend
https://3scale.net
Apache License 2.0
36 stars 27 forks source link

CircleCI: Twemproxy, Sentinels and TLS #385

Closed jlledom closed 2 days ago

jlledom commented 1 month ago

I counted up to 34 different scenarios we are going to officially support in the next release. Those are the all the possible combinations of: Twemproxy, ACL, TLS, Client TLS verification, Sentinels, Single Instance, Sync and Async.

For instance, these are some examples of possible scenarios:

I think those can be reduced to 10 critical scenarios:

Testing these 10 scenarios doesn't test all possible combinations, but tests all the code (except TLS client verification), I think it should be enough.

Since our tests suite always runs once for Sync and once for Async, what we need is to set up 5 CircleCI workspaces to run our tests on. This PR implements all of them.

image

Jira Issue

https://issues.redhat.com/browse/THREESCALE-10870

Note for reviewers

For further explanation, please read commits descriptions.

jlledom commented 2 days ago

Ideally we would run the tests in a proper container instead of the host. That can be achieved by attaching a volume to the container.

I tried that, but CircleCI doesn't allow attaching a volume to a container when launching containers from the docker executor.

https://circleci.com/docs/using-docker/#docker-benefits-and-limitations

akostadinov commented 2 days ago

I tried that, but CircleCI doesn't allow attaching a volume to a container when launching containers from the docker executor.

If you can run random commands, it can be achieved like this. But as I said, that can be explored in the future.