I'm new to helm charts, want to do the customisation to existing public chart, anyway to do it?
We are okay to host it at our end, just wanted to check how to dump the existing helm chart.
You can do below if you want to pull the helm chart at your local to customise it -
helm pull [chart URL | repo/chartname] [...] [flags]
Example -
helm repo add <name> <url>
helm pull repo-name/chart-name
Then you can customise it as per your need.
Any further explanation needed then let me know
Related
I am currently trying to make changes to system where access to the helm chart is not given.
Basically I am trying to call:
helm upgrade my-already-working-software "chart-should-go-here-but-I-do-not-have-access" --reuse-values -f "$OVERRIDEFILE"
to override e.g. ressource settings.
Is there any way possible to extract the chart from e.g. the helm history or it's values?
I have a helm chart containing Kubernetes job but unfortunately helm upgrade won't work because the image name is immutable so logically I need to do a delete and install but I will loose my set values.yaml if they were customised in the first place.
How can I keep the values before deleting the chart and use them for new install to simulate an upgrade? I couldn't find anything in documentations or here.
Thanks
EDIT:
First you need to get your previous values with helm get values <release-name>
So you could redirect the values to a file with:
helm get values <release-name> -o yaml > values.yaml
And then do a helm install again
I have helm charts created for a microservice that I have built and everything is working as expected. Now, I have created a new k8s namespace and I want to try to deploy the same helm charts as my old namespace. Although, I have just one value that I need it different while everything else remain the same.
Do I have to create another values.yaml for the new namespace and copy everything over and update the one field I want updated ? Or is there any other way ? I do not want to use the --set method of passing updates to the command line.
David suggested the right way. You can use different values.yaml where you can specify the namespace you want to deploy the chart:
$ helm install -f another-namespace-values.yaml <my-release> .
It's also entirely possible to launch helm chart with multiple values.
For more reading please check values section of helm docs.
I want to deploy nextcloud with helm and a custom value.yaml file that fits my needs. Do i have to specify all values given from the original value.yaml or is it possible to only change the values needed, Eg if the only thing I want to change is the host adress my file can look like this:
nextlcoud:
host: 192.168.178.10
instead of copying this file and changing only a few values.
As the underlying issue was resolved by the answer of user #Kun Li, I wanted to add some examples when customizing Helm charts as well as some additional reference.
As asked in the question:
Do i have to specify all values given from the original value.yaml or is it possible to only change the values needed
In short you don't need to specify all of the values. You can change only some of them (like the host from your question).
The ways to change the values are following:
Individual parameters passed with --set (such as helm install --set foo=bar ./mychart)
A values file if passed into helm install or helm upgrade with the -f flag (helm install -f myvals.yaml ./mychart)
If this is a subchart, the values.yaml file of a parent chart
The values.yaml file in the chart
You can read more about it by following official Helm documentation:
Helm.sh: Docs: Chart template guide: Values files
A side note!
Above points are set in the order of priority. The first one (--set) will have the highest priority to override the values.
Example
A side note!
This examples assume that you are in the directory of a pulled Helm chart and you are using Helm v3
Using the nextcloud Helm chart used in the question you can set the nextcloud.host value by:
Pulling the Helm chart and editing the values.yaml
Creating additional new-values.yaml to pass it in (the values.yaml from Helm chart will be used regardless with lower priority):
$ helm install NAME . -f new-values.yaml
new-values.yaml
nextcloud:
host: 192.168.0.2
Setting the value with helm install NAME . --set nextcloud.host=192.168.0.2
You can check if the changes were done correctly by either:
$ helm template . - as pointed by user #David Maze
$ helm install NAME . --dry-run --debug
you misspelled the nextcloud to nextlcoud in your value file.
I try use helm install --name my-release stable/superset to deploy the superset on Kubernetes. But, I need change the default config. in the helm chart this is not clear. Can someone help?
helm fetch
You can use helm fetch to Download a chart to your local directory, so You can change the values in values.yaml file and then install it.
for example
helm fetch stable/superset --untar
Use text editor to change the values file
nano superset/values.yaml
Part of values.yaml is configFile, so as I can understand in link provided by You, you can change defaults here.
configFile: |-
#---------------------------------------------------------
# Superset specific config
#---------------------------------------------------------