-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
rework helm-charts #592
Comments
This will be a really good way forward. Kind regards, |
That sounds fantastic! Let me know if I help you in any way to get started 🙂 . |
And @MattiasGees, don't be shy to say we are working for Skyscrapers. 😄 |
@brancz At my $DAYJOB, we're currently using the kube-prometheus manifests to deploy our prometheuses, alerts and dashboards. It's been great but we're looking into rewriting the manifests to helm charts just like you've described. We'd like to contribute to this too if you could point us to a place to get started. Our background:
Let me know :) Thanks! |
similar use case to @kevinjqiu . would definitely contribute back once our infra is set up. |
@Punitag We have extended prometheus-operator with a new CRD see #616 I'm not sure if this fits the vision of the project, but I think it could be a useful addition. |
Hi @brancz : I can also collaborate with the helm charts for all the components, trying to make them as much flexible and configurable as possible (via values.yaml overwriting). I think one of the most powerful features of helm is to create different manifests based on the input parameters, for example adding / removing containers (sidecars) based on the configuration, setting up resources (memory, specs, services, etc) based on configuration. I will share some examples I have created soon (i.e kafka with jmx_exporter and filebeat sidecars as options, supporting 1.6 and 1.7 statefulsets possibilities, etc). I would say the objective should be to be able to install For example, we could have one setting in the yaml like I would say that just getting exactly the same from |
another example / idea.... :) |
I think any mean of accessing/exposing web UIs for example should be completely left to the user consuming the chart, so any As I mentioned before I think we first need to make sure the "leaf" packages are robust. For example the kube-state-metrics helm chart needs options to disable certain collectors, which in turn reduces the required RBAC roles, and include the addon-resizer. As a kube-state-metrics helm chart already exist in the upstream stable charts, this would even make sense to contribute back there - the less charts have to be maintained here the better! Essentially the kube-state-metrics chart should only have the Alternatively and a bit more simple would be to create a chart for the node-exporter that really only contains the node-exporter and a Just to make sure I want to reiterate, that everyone is very welcome to contribute anything discussed here 🙂 . Thanks everyone for wanting to contribute, I'm hopeful we'll get all the charts into a good shape! |
Related to this issue and #520, I wanted to mention that being able to add dashboard with helm install and upgrade would be very useful. Not being able to do that is what led me to looking at loading dashboards automatically through the watcher or operator. But really since they don't change except when a chart is installed or upgraded there is no reason for it, except for the fact that there is currently no way for installing a chart to update the grafana dashboards of an existing grafana instance. This is likely restricted by the abilities of helm charts at this time, but something I wanted to mention anyway :) |
I'm going to work on the reorganisation of the helm charts, the main task are:
Did I miss something? |
The upstream kube-state-metrics chart needs some more changes, but there is already a stable one. I outlined some things that should be done to it here: helm/charts#2124 |
Charts finally got synced with s3, everyone can enjoy prometheus 2.0 using helm :)
|
Hi,
I already have a initial version and I intend to do a PR to incubator repo of official charts repo after cleaning up a bit. Will reference this issue there to maintain tracking. |
This is merged now and using the grafana sidecars |
I can see that |
The prometheus-operator chart is actually more than just the operator and there is some discussion going on whether to rename the chart to kube-prometheus right away. I might still be missing parts though, I wasn't involved in the process. |
Indeed after looking into it I figured out! thanks |
@metalmatze how can I upgrade coreos/prometheus-operator (0.0.29) to stable/prometheus-operator (0.1.15)? helm ls
|
@shuraa there is not a direct upgrade path - the chart in stable/prometheus-operator has a different structure you may be able to do some upgrades depending on what your circumstances are:
|
@vsliouniaev, Vasily, thank you! I'll try to test your instructions in a vagrant environment. |
@vsliouniaev What about putting your answer into the readme for the stable/prometheus-operator. There is still some confusion between prometheus-operator and kube-prometheus like what should you install on the cluster, why kube-prometheus was not ported to stable/charts. We faces these issues when we started a few weeks ago and it wasn't easy to figure out the answers. So these could be really helpful. |
Additionally, do you think it would be possible to have each of the components separated on the upstream charts, and actually call the collection "kube-prometheus"? It's causing even more blurred lines between what makes kube-prometheus and what is just the prometheus-operator. |
As far as I understand the prometheus-operator chart available on helm/stable repo contains the prometheus-operator content as well as the kube-prometheus content from the coreos repo. I have raised this question here yesterday, because we had lots of confusion with the current duplication as well: #2153 |
+1 for have some sort of documentation on an upgrade path/migration steps. I'm in the middle of migrating right now, and other than this GH issue, there's not much documentation on what the current state is. So much has changed (alert rules, Grafana dashboards, removal of kube-prometheus, etc.), that the new chart location is essentially a new Helm chart entirely, and I've had to essentially drop and recreate our entire monitoring stack :( Don't get me wrong, I think the new chart is structured better than the old one, but migration isn't a simple |
In my opinion kube-prometheus should probably never exists upstream because it is basically a meta Chart to get all other dependencies with just a few a minor resources included for monitoring. So it could exists in a repo like this as a "recommended" setup. As @metalmatze commented it's confusing because now upstream Formally this is one of the few reasons why Helm Charts are just a pain to maintain and too opinionated in what to include and what to expose in values.yaml, so basically right now people are stuck with rebuilding their whole Prometheus stack from scratch because of this. |
Agreed on all points @richerve (if you do end up "building the entire stack from scratch", do have a look at the jsonnet based alternative 🙂 ). |
I don't understand why migration process renamed half of the variables and make changes so incompatible. |
Are there plans to once again provide separate charts for the main subcomponents of |
We're using the single chart with togging components on and off. Doing what you suggest would require another quite significant migration IMO |
This issue has been automatically marked as stale because it has not had any activity in last 60d. Thank you for your contributions. |
This issue has been automatically marked as stale because it has not had any activity in last 60d. Thank you for your contributions. |
All further discussion should be done in other more specific issues. |
I just had a chat with @mgoodness regarding the state and future of the kube-prometheus helm charts, and we wanted to share what our vision is regarding them and we invite anyone who wants to help on this to participate.
We imagine the general structure of the charts to be like this:
The kube-prometheus chart (this is mostly a "meta" chart that includes multiple other charts and adds the Prometheus alerting/recording rules, grafana dashboards as well as service-monitors.
It's dependencies are:
Something that we had previously done in the kube-prometheus charts is also consider the choice of how the web UIs of the above components are exposed, we'd like to move away from this and leave this completely up to the user.
If anyone is willing to work on any of these charts, contributions are highly appreciated and very welcome. The individual charts that are a dependency of the kube-prometheus chart should be relatively low maintenance as the upstream projects are not released that often.
The text was updated successfully, but these errors were encountered: