How to create a namespace if it doesn't exists from HELM templates?
This feature is implemented in helm >= 3.2 (Pull Request)
Use --create-namespace
in addition to --namespace <namespace>
For helm2 it's best to avoiding creating the namespace as part of your chart content if at all possible and letting helm manage it. helm install
with the --namespace=<namespace_name>
option should create a namespace for you automatically. You can reference that namespace in your chart with {{ .Release.Namespace }}
. There's currently only one example of creating a namespace in the public helm/charts repo and it uses a manual flag for checking whether to create it
For helm3 functionality has changed and there's a github issue on this
There are some differences in Helm commands due to different versions.
For Helm 2, just use --namespace; for Helm 3, need to use --namespace and --create-namespace.
Helm 2 Example:
helm install stable/nginx-ingress --name ingress-nginx --namespace ingress-nginx --wait
Helm 3 Example:
helm install ingress-nginx stable/nginx-ingress --namespace ingress-nginx --create-namespace --wait