-
Notifications
You must be signed in to change notification settings - Fork 13
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
feat: adding metrics-server and vpa as dependencies of the main chart #17
Conversation
Thanks for the pull request, @jfavellar90! Please note that it may take us up to several weeks or months to complete a review and merge your PR. Feel free to add as much of the following information to the ticket as you can:
All technical communication about the code itself will be done via the GitHub pull request interface. As a reminder, our process documentation is here. Please let us know once your PR is ready for our review and all tests are green. |
tutor-multi-chart/Chart.yaml
Outdated
- name: vertical-pod-autoscaler | ||
version: "6.0.3" | ||
repository: https://cowboysysop.github.io/charts/ | ||
alias: vpa |
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.
Metrics server totally makes sense, though we do need to make sure we document a variable that can be used to not try to install it, for people who already have it installed on their cluster.
For VPA, how will we use it? See my questions/update on #2 (comment)
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.
@bradenmacdonald I added a couple of conditions to define is the sub-charts are going to be installed or not.
Regarding the VPA topic, my approach is still naive for now. In the plugin, I created there are variables that enabled VPA for the main deployments (LMS, CMS, and workers) and creates VPA objects that will increase/decrease the allocated resources of every pod according to current cluster usage
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.
More details here: https://www.kubecost.com/kubernetes-autoscaling/kubernetes-vpa/
Thanks @jfavellar90. Would it be possible for you to also update the README for this repo to explain how to use it together with https://github.com/eduNEXT/tutor-contrib-pod-autoscaling ? @gabor-boros would you like to review this? |
@bradenmacdonald sorry for the delayed answer, I'll do it over the course of tomorrow |
bb04363
to
d4212e7
Compare
@bradenmacdonald I updated the docs adding simple steps on how to enable the autoscaling feature with the plugin. Please let me know if you have any questions. |
Hi @jfavellar90, could you please bring your branch up-to-date with the That would be great as it would help minimize the number of review cycles and get your changes ready for merge sooner. |
d4212e7
to
3eae75e
Compare
@jfavellar90 Thanks for the update! This is ready for review now, and there is no action needed from you at the moment. @bradenmacdonald @gabor-boros Over to you. |
@bradenmacdonald If I understand correctly, I would need to be a core contributor to review this, which would require a 20h commitment , that I have concerns with from Serenity point of view at the moment. Ref: #25 (comment) |
tutor-multi-chart/values.yaml
Outdated
@@ -61,3 +61,19 @@ elasticsearch: | |||
xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/certs/tls.crt | |||
xpack.security.transport.ssl.certificate_authorities: /usr/share/elasticsearch/config/certs/ca.crt | |||
xpack.security.transport.ssl.verification_mode: certificate | |||
|
|||
# Configuration for the metrics server chart | |||
metricsserver: |
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.
Would it make sense to nest this block with other related blocks?
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.
@adzuci Which other related blocks are you referring to exactly?
tutor-multi-chart/values.yaml
Outdated
# Configuration for the metrics server chart | ||
metricsserver: | ||
# Control the chart inclusion | ||
enabled: false |
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 believe some other charts name this variable something like "installMetricsServer", though I'm not sure if that makes sense here. Could that pattern be useful here? Also, do we intend to enable people to link to an existing metrics server, but set this flag to false?
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.
@adzuci I took this enabled
flag from the kube-prometheus-stack Chart. Could you please link an example of the pattern you're proposing?
Regarding the metrics-server option, in the docs we specify that this dependency should be included only if still not present in the cluster. However, we still need to test what happens when trying to install metrics-server if already present in a different namespace.
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.
The installation of the helm-chart will fail if metrics-server is present in a different namespace
Thanks for reviewing @adzuci! @jfavellar90 Back to you for addressing the comments above :) |
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 with vpa.enabled: true
and metricsserver.enabled: true
, and I got an error at first because those subcharts are missing from the charts
directory. I had to run helm dependency update
which made some changes to the Chart.lock
file that need to be committed. Could you please do that and include the changes in this PR?
Then I'll approve it :) Everything else is working great.
@bradenmacdonald I already committed the |
Is that something you're planning on doing in the context of this PR? If not, it might make sense to mark this PR as |
- fixing docs typos - Adding example values for Helm Chart installation - Updating Chart.lock file
b3c08a5
to
aaa2d35
Compare
In the context of this PR not, however, we should not block the PR on other work, what do you think @bradenmacdonald ? |
@jfavellar90 I'm not sure what you mean by making the helm chart publicly accessible. Do you mean publishing it on Artefact Hub? Because it is already public in this repo and it's working.
Maybe we shouldn't be ignoring that folder? Or we can ignore it and just tell people to run that command in the README. |
This comes from Helm best practices: https://helm.sh/docs/chart_best_practices/dependencies/#versions
@bradenmacdonald Exactly, I meant to host the chart in a remote chart repo (this is indeed an item included on the next steps of this project). I'm sorry, I wasn't explaining my idea clearly. I was taking as an example the Kube Prometheus Stack chart. This chart has few dependencies, however, the
For now, I opted for pushing the dependencies artifacts to the |
@bradenmacdonald just a couple of 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.
I tested again, and it worked perfectly out of the box. metricsserver and VPA are both installed and running. Nice work @jfavellar90 :)
@jfavellar90 🎉 Your pull request was merged! Please take a moment to answer a two question survey so we can improve your experience in the future. |
This PR is adding a couple of dependencies required to enable POD autoscaling in a Kubernetes cluster