如果名称空间不存在于 HELM 模板中,如何创建名称空间?
How to create a namespace if it doesn't exists from HELM templates?
我有一个 kind: Namespace
模板 yaml,如下所示:
apiVersion: v1
kind: Namespace
metadata:
name: {{ .Values.namespace }}
namespace: ""
当且仅当上述命名空间 ({{ .Values.namespace }}
) 不存在于指定的 Kubernetes 集群中时,我如何 helm install
创建上述命名空间 ({{ .Values.namespace }}
)?
谢谢。
对于 helm2,最好尽可能避免将名称空间创建为图表内容的一部分,并让 helm 管理它。 helm install
和 --namespace=<namespace_name>
选项应该会自动为您创建一个命名空间。您可以使用 {{ .Release.Namespace }}
在图表中引用该命名空间。目前在 public helm/charts 存储库中只有一个创建命名空间的示例,它使用 a manual flag for checking whether to create it
对于 helm3 功能已经改变并且有 a github issue on this
此功能在 helm >= 3.2 (Pull Request)
中实现
除了--namespace <namespace>
之外还使用--create-namespace
Helm命令因版本不同存在一些差异
对于 Helm 2,只需使用 --namespace;对于 Helm 3,需要使用 --namespace 和 --create-namespace.
Helm 2 示例:
helm install stable/nginx-ingress --name ingress-nginx --namespace ingress-nginx --wait
头盔 3 示例:
helm install ingress-nginx stable/nginx-ingress --namespace ingress-nginx --create-namespace --wait
对于 terraform 用户,将 create_namespace
属性设置为 true:
resource "helm_release" "kube-prometheus-stack" {
name = ...
repository = ...
chart = ...
namespace = ...
create_namespace = true
}
我有一个 kind: Namespace
模板 yaml,如下所示:
apiVersion: v1
kind: Namespace
metadata:
name: {{ .Values.namespace }}
namespace: ""
当且仅当上述命名空间 ({{ .Values.namespace }}
) 不存在于指定的 Kubernetes 集群中时,我如何 helm install
创建上述命名空间 ({{ .Values.namespace }}
)?
谢谢。
对于 helm2,最好尽可能避免将名称空间创建为图表内容的一部分,并让 helm 管理它。 helm install
和 --namespace=<namespace_name>
选项应该会自动为您创建一个命名空间。您可以使用 {{ .Release.Namespace }}
在图表中引用该命名空间。目前在 public helm/charts 存储库中只有一个创建命名空间的示例,它使用 a manual flag for checking whether to create it
对于 helm3 功能已经改变并且有 a github issue on this
此功能在 helm >= 3.2 (Pull Request)
中实现除了--namespace <namespace>
--create-namespace
Helm命令因版本不同存在一些差异
对于 Helm 2,只需使用 --namespace;对于 Helm 3,需要使用 --namespace 和 --create-namespace.
Helm 2 示例:
helm install stable/nginx-ingress --name ingress-nginx --namespace ingress-nginx --wait
头盔 3 示例:
helm install ingress-nginx stable/nginx-ingress --namespace ingress-nginx --create-namespace --wait
对于 terraform 用户,将 create_namespace
属性设置为 true:
resource "helm_release" "kube-prometheus-stack" {
name = ...
repository = ...
chart = ...
namespace = ...
create_namespace = true
}