-
Notifications
You must be signed in to change notification settings - Fork 37
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
Create a "nightly" instance of Playground that gets updated everyday with the daily build. #129
Comments
@CEHENKLE Thanks for opening an issue. Should we eventually create playground instance for all actively supported versions i.e. 1.x, 2.x and main branch? Also, I assume its for both OpenSearch and OpenSearch dashboards? CC: @opensearch-project/engineering-effectiveness |
Hi @CEHENKLE , Couple of questions in addition to above, before we can get started:
Crucial components today: Both OS and OSD core engines, job-scheduler and common-utils. |
My 2 cents. We should just deploy latest snapshot artifact (with whatever plugin in there and we have a logic to fail builds for crucial plugins already). It would be great if we can annotate the build, tests details corresponding to the deployed artifact ( either via iframe, or through indexing) so users would know the list of plugins available on that build.
Surfacing the build information along with the build date used for a specific deployment would help to understand the long pending failures. |
We can even explore adding all the build details, plugin information, jenkins build URL, inside a slash path (/) Related Jenkins Example: https://build.ci.opensearch.org/systemInfo |
Approaches1. Use opensearch-cluster-cdkUse opensearch-cluster-cdk as a mechanism that to deploy the cluster. This code base already has the functionality to deploy the nightly built artifacts that includes both OpenSearch and OpenSearch Dashboards. For any missing functionalities such as customized opensearch.yml, security permissions, etc can be contributed to the code base. [Image: image.png] Pros
Cons
2. Onboard to existing playground frameworkThe GitHub repository dashboards-anywhere is responsible for hosting multiple instances of playground that are hosted today. Few examples are as below: dashboards-anywhere has on-boarded multiple instances of playground that can be tracked here: https://github.com/opensearch-project/dashboards-anywhere/tree/main/config/playground/helm Since this used helm-charts at the backend, all we need is a container image (dockerhub/ECR) pushed to staging daily (which we already have it.) Pros
Cons
|
Would like to get some input on what approaches from @Flyingliuhub @dblock @bbarani @AMoo-Miki . Please feel free to tag people who you think can provide valuable input to this. |
Thanks Sayali. Both of these are great options and as you pointed out have great pros and probably painful cons. Considering that extensive manual setup is needed now (and will probably be needed again when certain updates happen), and that we could face challenges that we cannot fix ourselves, the existing playground framework sound more challenging to be setup. I also wonder if this pipeline will make it less customizable for us to do crazy things like manipulating the installations. I am working on a proposal for the Playground to use a modified security plugin that will create read/write metadata indices for each visitor, allowing them to login anonymously but experience a fully functioning Dashboards. I suspect the modifications to the plugin would be applied as a post-install patch. Similarly, we might want to have the latest version of OUI included in the nightly builds; patching post-install would be better than building specific images for playground that are different from the images we release nightly. While being forced to maintain the infrastructure could be a pain, I feel it would be good for us to learn of the pains and solve them for the users. Considering the freedom to customize (without building different images) and the ability to learn, the |
Thanks @AMoo-Miki. If there are going to be customization and additional installations I agree
|
OUI is a vital component of OSD which has its own release cycle. Any change in OUI has the potential to change the UX of OSD. For example, the recent UX changes to OSD were almost completely driven by OUI and we had to resort to setting up our own endpoints for nightly builds to showcase the changes.
My idea is much crazier than that: the idea patches the built artifacts of security-dashboards-plugin to allow for randomly suffixed In my vision:
We might also want to keep the previous night's deployments active on a different port or fleet to be able to quickly switch if we find something horribly wrong in the morning. PS, looking at these, you might feel custom scripts would be easier to build than a cdk; if you do, you are not alone :D |
Moving this issue to opensearch-devops repository as we are planning to host the codebase there. |
Please see the high level design posted here: #130 |
Closing this issue as nightly playgrounds have been successfully working for last 2-3 releases https://playground.nightly.opensearch.org/ |
Is your feature request related to a problem? Please describe
I'd like to be able to play with new features faster as they're getting build on OpenSearch. Therefore, I'd like a "nightly" version of playground to get built with every successful build -- first with the 2.x build, but ultimately with main as well.
Describe the solution you'd like
Whenever there's a successful night built, we replace the current nightly playground build automatically. We will need a way to see what version we're pointing at.
Acceptance Criteria:
Action Items
The text was updated successfully, but these errors were encountered: