-
Notifications
You must be signed in to change notification settings - Fork 272
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
[Feature] Add support for urls to substitute latest
for the most recent build number
#1492
Comments
I think the best case scenario for "latest" would be a 302 redirect, is that an option 3? That is also something that would allow us to move downloadable files around for older versions, as we tend to do this quite a bit while we learn the "ideal" url structure. |
Good callout, I've added it to the acceptance criteria that we need a way to get through a cache. |
Couple more:
|
@peternied We have a dependency on this for running Dashboards integ test against a static OpenSearch url #1322 Do you know when this issue can be done? |
@tianleh we would welcome your contribution, The first option, |
take a look |
@seraphjiang for visibility |
Hi @peternied, could this be prioritized this item? |
Experimenting with Option 1 a bit. It requires a list operation of the S3 bucket to find the most modified object. This can be done by a command like this However, this query will have performance impact to sort the objects under the bucket and require potential pagination (>1000 items). Thus we may need to build some storage layer which stores the mapping from Given this, for simplicity, I would suggest the option 2 ("When uploading artifacts, also add a latest bucket") for development in this iteration. |
had quick chat with @peternied , this is just suggestion, not in critical path, there is no expected ETA for it. |
@tianleh If this output is sorted in newest to oldest, shouldn't the first result be the most recent build? That seems pretty scalable without any addition additional service calls or tracking systems. The number of builds for a given release is a function of the number of changes in it, so I doubt this will be sufficiently larger than 1,000 change if we are releasing every quarter or faster. |
Thanks Peter for mentioning the I will check more on how the logic can be integrated into the Lambda function https://github.com/opensearch-project/opensearch-build/blob/main/deployment/lib/artifacts-public-access.ts#L23 |
After researching more, there are two ways to perform such in JavaScript.
Will experiment more to see which one is simpler. |
Also current Lambda code exists as an inline String https://github.com/opensearch-project/opensearch-build/blob/main/deployment/lib/artifacts-public-access.ts#L24 Will also check if there is an elegant way to make it exist as regular code for better readability since now the logic is more complicated. |
@tianleh Is there a draft PR that I could follow? While I would love an elegant solution, I think it make sense to discuss tradeoffs in a PR |
Execute the integ-test workflow for OpenSearch Dashboards including tests. As opposed to OpenSearch, we need an image with the appropriate libraries so we pass the image but it does not have the wget so the steps were broken to access the build manifest. Hardcoding the OpenSearch build id for now until this get resolves: opensearch-project#1492 ARM tests will fail still until this is resolved: opensearch-project#1381 Issue partially resolved: opensearch-project#704 Signed-off-by: Kawika Avilla <[email protected]>
Execute the integ-test workflow for OpenSearch Dashboards including tests. As opposed to OpenSearch, we need an image with the appropriate libraries so we pass the image but it does not have the wget so the steps were broken to access the build manifest. Hardcoding the OpenSearch build id for now until this get resolves: opensearch-project#1492 ARM tests will fail still until this is resolved: opensearch-project#1381 Issue partially resolved: opensearch-project#704 Signed-off-by: Kawika Avilla <[email protected]>
Execute the integ-test workflow for OpenSearch Dashboards including tests. As opposed to OpenSearch, we need an image with the appropriate libraries so we pass the image but it does not have the wget so the steps were broken to access the build manifest. Hardcoding the OpenSearch build id for now until this get resolves: opensearch-project#1492 ARM tests will fail still until this is resolved: opensearch-project#1381 Issue partially resolved: opensearch-project#704 Signed-off-by: Kawika Avilla <[email protected]>
Execute the integ-test workflow for OpenSearch Dashboards including tests. As opposed to OpenSearch, we need an image with the appropriate libraries so we pass the image but it does not have the wget so the steps were broken to access the build manifest. Hardcoding the OpenSearch build id for now until this get resolves: opensearch-project#1492 ARM tests will fail still until this is resolved: opensearch-project#1381 Issue partially resolved: opensearch-project#704 Signed-off-by: Kawika Avilla <[email protected]>
Execute the integ-test workflow for OpenSearch Dashboards including tests. As opposed to OpenSearch, we need an image with the appropriate libraries so we pass the image but it does not have the wget so the steps were broken to access the build manifest. Hardcoding the OpenSearch build id for now until this get resolves: opensearch-project#1492 ARM tests will fail still until this is resolved: opensearch-project#1381 Issue partially resolved: opensearch-project#704 Signed-off-by: Kawika Avilla <[email protected]>
Execute the integ-test workflow for OpenSearch Dashboards including tests. As opposed to OpenSearch, we need an image with the appropriate libraries so we pass the image but it does not have the wget so the steps were broken to access the build manifest. Hardcoding the OpenSearch build id for now until this get resolves: opensearch-project#1492 ARM tests will fail still until this is resolved: opensearch-project#1381 Issue partially resolved: opensearch-project#704 Signed-off-by: Kawika Avilla <[email protected]>
* [Dashboards] integ-test in Jenkins Execute the integ-test workflow for OpenSearch Dashboards including tests. As opposed to OpenSearch, we need an image with the appropriate libraries so we pass the image but it does not have the wget so the steps were broken to access the build manifest. Hardcoding the OpenSearch build id for now until this get resolves: #1492 ARM tests will fail still until this is resolved: #1381 Issue partially resolved: #704 Signed-off-by: Kawika Avilla <[email protected]>
From opensearch-project/OpenSearch-Dashboards#1038
Potential Solutions:
Add functionality to the url re-writer
The cdk deployment that uses a lambda function to rewrite the url on incoming requests to the s3 buckets, this could be updated to handle the
/latest/
string in place of a build number by scanning the s3 bucket.opensearch-build/deployment/lib/artifacts-public-access.ts
Lines 23 to 29 in f79e7fd
Trade-offs: Con, the bucket might not contain that artifact and result in a 404. Pro, could be applied on older builds.
When uploading artifacts, also add a
latest
bucketThe upload code is on a shard and the artifacts could be uploaded into multiple locations.
opensearch-build/vars/uploadArtifacts.groovy
Lines 26 to 29 in f79e7fd
Trade-offs: Con, Only works on products that build with that shared library function. Doesn't work with 1.x kind of functionality
Acceptance Criteria:
https://ci.opensearch.org/ci/dbc/bundle-build-dashboards/1.2.0/LATEST/linux/x64/builds/plugins/queryWorkbenchDashboards-1.2.0.zip
gets the same artifact as callinghttps://ci.opensearch.org/ci/dbc/bundle-build-dashboards/1.2.0/512/linux/x64/builds/plugins/queryWorkbenchDashboards-1.2.0.zip
(Assuming 512 is the most recent version)https://ci.opensearch.org/ci/dbc/bundle-build-dashboards/1.2.0/LATEST/linux/x64/builds/plugins/queryWorkbenchDashboards-1.2.0.zip
after the artifact has been updated the url returns the artifact in a way that bypasses caching.The text was updated successfully, but these errors were encountered: