Make E2E tests use Acyl instead of Docker Compose #49
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR updates the E2E test scaffolding to use Acyl instead of Docker Compose to spin up the necessary environment. I've tried to avoid doing too many big refactors, and avoided touching existing Guardian code as much as possible. This spins up the official (deprecated) Helm 2 Envoy and Redis images, as well as an http-echo Helm chart that I created. I had to refactor the E2E test as a separate binary rather than Go unit tests, in order to not require the entire Go build stack in the final Docker image. I also moved the configuration options for the test from stdlib flags to Kingpin to match the other binaries.
The environment is now spinning up properly and running the tests. They all seem to be failing, however, except TestWhitelist (maybe just due to the rate limit not kicking in in time?). I'm noticing that there's nowhere the e2e tests seem to reference the address of the http-echo server in any way - the GET requests go to the Envoy server, so maybe there's some way the Envoy server needs to be configured to talk to Guardian. However, I don't see any configuration for this in the old Docker Compose YAML either. This does feel like it's probably the key, though.
Once the tests are passing, I also need to remove the old CircleCI E2E stuff and set things up to run the DQA automatically.