Skip to content
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

Merged
merged 22 commits into from
Mar 29, 2024
Merged

Deployment of multiple stable versions #459

merged 22 commits into from
Mar 29, 2024

Conversation

ntampakas
Copy link
Collaborator

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.

@yuroitaki yuroitaki requested review from heeckhau and yuroitaki March 20, 2024 10:25
Copy link
Member

@yuroitaki yuroitaki left a 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 😅

@yuroitaki
Copy link
Member

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 :)

@yuroitaki yuroitaki self-requested a review March 26, 2024 09:09
Copy link
Member

@yuroitaki yuroitaki left a 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

Copy link
Member

@heeckhau heeckhau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot

@yuroitaki yuroitaki merged commit 173945d into tlsnotary:dev Mar 29, 2024
15 checks passed
sinui0 pushed a commit that referenced this pull request Apr 9, 2024
* 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
sinui0 added a commit that referenced this pull request Apr 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants