Goal: Decide on a strategy for test isolation for Logstash integration tests as part of the strategy for moving from Travis to Jenkins: https://github.com/elastic/logstash/issues/8079
Factors to consider:
I will add 3 comments with the leading options.
Please express your preference with 馃憤 and 馃憥 and 馃槙 for +0. _(note - top vote does not "win", but rather provides a means to express opinion)_
_please edit and add more factors below_
Additional Factors:
_please edit and add more pros/cons below__
_please edit and add more pros/cons below__
Pros
Cons
vagrant ssh into the box)_please edit and add more pros/cons below__
Thanks for weighing the trade-offs here. Docker is preferred, and dynamically launching EC2 instances is to be avoided.
@jakelandis One question regarding this Docker Con:
"Requires Docker knowledge to troubleshoot (v.s. Vagrant, where you vagrant ssh into the box)"
Forgive my ignorance (I've never used vagrant), but isn't vagrant ssh essentially the same as
docker exec -it <your_running_container> bash
to get an interactive session ?
@frankschmitt - That is most likely my personal experience bias showing, I don't personally have much experience with Docker, but quite a bit with Vagrant, so it _feels_ easier.
In fairness, it is a con of all 3 approaches, each of which requires domain knowledge to troubleshoot. You are right the two are essentially the same, and depending on your background is either easier or harder to troubleshoot on one platform or the other.
Docker wins.
The changes to support Docker for both Unit and Integration tests have been backported to 5.5, and the Jenkins changes should be landing soon.
The README for the integration tests have been updated to include instructions for how to run via Docker.
Most helpful comment
Docker
Pros
Cons
vagrant sshinto the box)_please edit and add more pros/cons below__