-
Notifications
You must be signed in to change notification settings - Fork 157
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 support #135
Add helm support #135
Conversation
@snazy / @flyrain can your guys take a look at this PR for adding helm support? This is based off work from https://github.com/projectnessie/nessie/tree/main/helm/nessie. Here are a couple of items for which I would like further clarification and suggestions:
|
Thanks @MonkeyCanCode for working on it. Haven't got the chance to go through it, but we need the license header in each new files. |
All good. Added license header. |
It is more common to use |
Made couple more changes and addressed couple places where I had questions with. Here is the updated list and things I would like to get clarification/suggestions with (along with couple solutions I implemented):
|
The change looks good to me overall, but I don't have much experience with Helm. Would like others to take a look. cc @snazy @dimas-b @collado-mike @aihuaxu @RussellSpitzer |
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 overall 👍 I have not had a chance to try it in practice yet.. will try to do that soonish... hopefully tomorrow.
@adutra : your feedback would be very welcome too, when you get a chance. thx! |
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.
Hi, sorry for the late review as I was out on vacation :-)
Looks mostly good to me, just a few minor remarks.
selector: | ||
{{- include "polaris.selectorLabels" . | nindent 4 }} | ||
ports: | ||
{{- range $portName, $portNumber := .Values.service.ports }} |
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.
Could be good to separate the metrics port from the main API port into 2 distinct services. But that can be done later.
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.
For sure beneficial such as network policies and traffic managements. However, I am not seeing much helm deployment separate metrics away from their main API (good practices for sure but most are not doing it). I will be more than happy to do it but here are couple things I would like to get feedback with:
- Should we put ingress on top of metrics endpoint (I am assuming no here?)
- Should we support diff service settings for diff endpoints (e.g. sessionAffinity, service type, sessionAffinity, etc.)
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.
Should we put ingress on top of metrics endpoint (I am assuming no here?)
No, and that's the main reason why in Nessie we split the services in two. You typically want to expose the main port, but not the admin/mgmt one. So if you need to put an ingress in front of it, or turn the service into a LoadBalancer or NodePort type, the change would affect both ports and potentially expose the mgmt port as well.
Should we support diff service settings for diff endpoints
Yes, you could have e.g. different session affinities, but more importantly, you can turn the mgmt service into a headless one.
Finally, you can also set publishNotReadyAddresses: true
. This allows pods to be addressable even if they are not ready, which allows health checks to provide more insights as to why the pod is not healthy.
But I agree to look into this later on.
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. I can put those in the next PR after current one got merged.
@adutra thanks for taking a look and nothing to worry. I had addressed most of the issues you listed above. I will run some final tests later tonight then push out those changes. For the ones that are not yet addressed, I had put a comment for additional discussion/clarification. |
@adutra all comments had being addressed and tested locally. Please take another look when you get a chance. |
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, thanks @MonkeyCanCode !
Sorry about the delay from my side... I can have another look next week, but please feel free to merge based on @adutra 's review :) |
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.
I tested this helm chart with "in memory" mode and it worked well.
I did not test the EclipseLink secret. TBH, I do not think it is very user-friendly to put the whole XML file with persistence config into a k8s secret, but I think it is fine to have it like this for a start.
Thanks for your work on this @MonkeyCanCode !
Yeah, I agreed that is not the best. We can improve it once we have a better handle of EclipseLink and build tools around to support it. |
@snazy @RussellSpitzer : pinging for review/merge, please :) |
@snazy @RussellSpitzer : can you please review and merge 🙏 ? |
Anything else needed on this PR? |
@MonkeyCanCode, thank you so much for your work on this. Apologies for the delay; we're currently limited by the number of committers. We'll resolve this issue shortly. |
All good. Thanks for confirmation. Was planning to rollout more enhancement on this one thus not wanting to add those on top of this PR to avoid of increase of scope. |
Description
This PR adds helm support when deploying Polaris. This is based off work from https://github.com/projectnessie/nessie/tree/main/helm/nessie.
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
This had being tested locally with installation instruction under helm/polaris/README.md
Checklist:
Please delete options that are not relevant.