问题
I have a kind: Namespace
template yaml like follows,
apiVersion: v1
kind: Namespace
metadata:
name: {{ .Values.namespace }}
namespace: ""
How do I make helm install
create the above-given namespace ({{ .Values.namespace }}
) if and only if above namespace ({{ .Values.namespace }}
) doesn't exits in the pointed kubernets cluster
回答1:
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
回答2:
This feature is implemented in helm >= 3.2 (Pull Request)
Use --create-namespace
in addition to --namespace <namespace>
来源:https://stackoverflow.com/questions/51783651/how-to-create-a-namespace-if-it-doesnt-exists-from-helm-templates