-
-
Notifications
You must be signed in to change notification settings - Fork 145
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
Add Helm chart for MongoDB sharded cluster #769
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #769 +/- ##
==========================================
- Coverage 50.14% 50.00% -0.15%
==========================================
Files 69 69
Lines 10182 10224 +42
==========================================
+ Hits 5106 5112 +6
- Misses 4534 4570 +36
Partials 542 542 ☔ View full report in Codecov by Sentry. |
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 for your contribution.
I left a few comments.
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.
Thank you for your contribution 😄
First off, I have left some small conventional suggestions along with comprehensive questions.
Question 1
It seems like yorkie-cluster
Helm chart no longer has mongoDB subshart. This means that we now need to install both yorkie-cluster
and yorkie-mongodb
Helm chart to fully use yorkie cluster. Is there any reason for this separation?
Question 2
It seems like yorkie-mongodb
Helm chart performs sharded mongoDB setup by using Job object. Is there any reason for this approach?
I can see that mongodb-sharded Helm chart provides common.initScriptsCM
value to initialize mongoDB instances (Nevertheless I also think using Job is the best approach for this kind of operation, I just want to know the reasons for this approach).
Lack of ARM64 support in the Bitnami mongodb-sharded container
Solution: use the official mongo 6.0 image instead and set up the cluster via a Job.
Also, is there any relations between ARM64 support and setting up cluster via Job?
Suggestion 3
How about adding NOTES.txt
to keep consistency with other yorkie Helm charts?
Suggestion 4
We might need to add ArgoCD Application manifest in yorkie-argocd
Helm Chart as well.
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.
LGTM 👍🏼
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.
LGTM.
This PR adds a Helm chart for MongoDB, supporting both standalone mode and sharded cluster mode. Shard rules, including shard keys, shard methods, and unique constraints, are defined and managed in the values.yaml. This chart depends on Bitnami's mongodb-sharded chart (https://github.com/bitnami/charts/tree/main/bitnami/mongodb-sharded). There are a few known issues with it: A problem with livenessProbe and readinessProbe - Issues: bitnami/charts#21957 - Solution: use custom livenessProbe and readinessProbe instead Lack of ARM64 support in the Bitnami mongodb-sharded container - Issues: - bitnami/charts#7305 (comment) - bitnami/containers#40947 - Solution: use the official Mongo 6.0 image instead and set up the cluster via a Job. --------- Co-authored-by: Youngteac Hong <susukang98@gmail.com>
Thanks for your careful review. Answer 1After separating MongoDB from Answer 2I initially explored the approach using Bitnami options and tools. Bitnami charts are designed to be used with Bitnami containers together. However, issues arose, including the lack of ARM64 images in the Bitnami |
What this PR does / why we need it:
This PR adds a Helm chart for MongoDB, supporting both standalone mode and sharded cluster mode.
Shard rules, including shard keys, shard methods, and unique constraints, are defined and managed in the
values.yaml
.This chart depends on the Bitnami's
mongodb-sharded
chart (https://github.com/bitnami/charts/tree/main/bitnami/mongodb-sharded).There are a few known issues with it:
mongodb-sharded
containerHow to install and uninstall
mongodb
namespace.Release.Namespace
without offering an option to override it.Which issue(s) this PR fixes:
Addresses #673
Special notes for your reviewer:
We need to do following tasks in the future:
PodMonitor
sDoes this PR introduce a user-facing change?:
Additional documentation:
Checklist: