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.
Overview
The Vagrant environment on this project served two purposes (running analysis on Windows, working around docker-on-host issues on Macs) that are now obsolete. This removes the Vagrant environment and the Ansible configuration that was used to provision it. We've had partial docker-on-host support for a while; with these changes that will be fully supported and the only way to do things. This also includes updates to the README to remove Vagrant-related documentation and make the instructions for running the development environment match the current process.
Resolves #964
Notes
The main sticking point was environment variables—there are a few variables that were getting configured by Ansible to always be present in the Vagrant environment, so to run on host we had to provide those to the scripts and containers some other way. The partial docker-on-host solution we had been using called for creating an
.env
file to define a few of those variables. The changes here do away with that in favor of providing them as defaults in the handful of docker-compose files and shell scripts where they're needed.Specifically on the subject of the variables that supply AWS credentials, there are basically three environments with slightly different needs:
In production, there are IAM roles and permissions that allow access between services
In the local environment, we rely on an AWS profile called
pfb
In CI, where there's no way to configure a profile, we rely on
AWS_ACCESS_KEY_ID
/AWS_SECRET_ACCESS_KEY
variables, with values provided to the workflow by Github ActionsI believe the setup here works for all three, including support for running the deployment steps manually from a local environment, if necessary, using the
pfb
profile.Testing Instructions
Checklist