-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deployment of multiple stable versions #459
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Amazing stuff <3 just a few minor comments and questions, most of them are to add comments so I can remember how this works in the future 😅
Ah i guess one more question, in this setup ec2 instance tag is heavily used to pass the right version and port around, will there be any risk of these values being mistakenly modified by anyone on the AWS website? Was wondering if there is a safer place to store them, but if you or your team deem it's pretty low risk or there isn't better options, then I am totally fine with ec2 tag :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for answering all my queries and addressing all my concerns, great work! @ntampakas
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot
* Remove cargo/bin from PATH * Modify script to run only in nightly env * Modify script to stop the oldest version in stable env * Modify script to support dir preparation for the 3 latest stable versions * Modify script to start service for the 3 latest stable versions * Modify sercice validation script * Create proxy modification script * Add step in workflow to enable ssm execution against proxy + aux script * Add running state filter when fetching InstanceID * Enhancement of validation script * Modify bash behavior * Point tags/deployment to new AWS resources * Change GH owner to production one * Point tags to new EC2 v1 * Move all cd scripts to a new folder * Add comment * Add comment * Add comment * Add comment * Modify scripts to support exit on error * Check if all stable ports are in use and terminate
This PR is an enhancement of #419 and introduces the capability of running the three latest stable versions simultaneously on the system.
The requirement was to have all these versions deployed under the same EC2 instance.
The user can access a specific version, by adding it as a path at the end of notary URL. F.x.:
https://notary.pse.dev/v0.1.0-alpha.1 or https://notary.pse.dev/v0.1.0-alpha.2, etc.
The deployment of the backend, is (still) being accomplished using AWS CodeDeploy. To keep the complexity of the appspec-scripts as simple as possible, it was decided to trigger the proxy using AWS SSM.
A new step was added to the workflow as well, which is executed only when a stable deployment is triggered. Its purpose is to make the appropriated changes to the proxy server, using the method stated above.
Additionally, some minor enhancements were applied, such as adding more filters when querying AWS resources, removing unused PATH, and changing shell options values.