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

S3 artifact distribution changes #23

Open
chayim opened this issue Apr 28, 2021 · 0 comments
Open

S3 artifact distribution changes #23

chayim opened this issue Apr 28, 2021 · 0 comments
Assignees

Comments

@chayim
Copy link
Contributor

chayim commented Apr 28, 2021

In order to support automated image distribution, and a future of unlimited platforms, we need to change our distribution strategy. Artifact distribution in S3 (i.e tars, ramps, etc.) need to reflect both products, versions, and builds, in such a way that multiple async systems can make use of the artifacts.

The following is the proposed path changes for s3.

s3://redislabs/$PRODUCT/$VERSION/YYYYMMDD

ex: s3://redislabs/redisgears/2.2/01012001/....

These directories in turn will have copies of the latest artifact, meaning that a secondary job exists to promote artifacts from a dated release to latest.

The benefit of this approach is that async processes can push to the same named, destination, in addition to having support for unlimited items that depend on the sort of release structure. Similarly combined/special releases (i.e redisgears with redisjson) can be renamed as if they are a product (i.e redisjsongears or redisfoobar).

At issue with this approach is the specific usage of date, though doing so by date makes this easily sortable. Possible solution to this is to replace the YYYYMMDD date object with YYYYMMDD-, YYYYMMDD-HHMM, or YYYYMMDD-HH-MM-. The added benefit of the latter is that it communicates instantly both the versioned item status, in addition to the git hash - making returning the source code painless, and automatable. Examples include:

approach 1 (YYYYMMDD): s3://redislabs/redisgears/2.2/20010102/

approach 2 (YYYYMMDD-HHMM): s3://redislabs/redisgears/2.2/20010102-1352/

approach 3 (YYYYMMDD-HHMM): s3://redislabs/redisgears/2.2/20010102-1352-abc7df/

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

No branches or pull requests

1 participant