Helm 版本位于自定义命名空间中,而不是默认

Helm release to be in custom namespace and not in default

有没有一种方法可以指定要部署在自定义命名空间上的 helm 版本。 所有 helm 资源都部署在我通过提及

创建的自定义命名空间上
namespace: {{ template "plugin.namespace" . }}

这是取自_helper.tpl

但版本本身在默认命名空间中

helm ls
NAME                        NAMESPACE   REVISION    UPDATED                                 STATUS      CHART                           APP VERSION
object-storage-plugin   default     3           2021-08-04 15:42:30.833512 +0530 IST    deployed    object-storage-plugin-2.1.2 2.1.2      

我知道我们可以通过命令行设置命名空间,但我正在从模板文件中寻找可以选择命名空间的选项

我提到了 https://helm.sh/docs/chart_template_guide/getting_started/

使用 helm3 --create-namespace 创建新的命名空间,但 helm uninstall 命令不会删除这个新创建的 NS。

在正常使用中,您必须使用helm install --namespace选项来指定 Helm 保存其持久数据的命名空间。无法在文件中指定它。

同样在正常使用中,您不会在单个 YAML 文件中手动指定 namespace:。资源将自动安装在 helm install --namespace 中(与 kubectl apply --namespace ... -f ... 的安装方式相同)。对于不寻常的设置,您应该只需要 namespace:,在这些设置中,同一个图表需要在多个命名空间中安装东西; IME 通常仅在您使用 Helm 进行集群级设置时才会出现。

但是,您也将此问题标记为 . If you're using Helmfile,然后在 helmfile.yaml 文件中,您可以指定要在那里使用的命名空间。 helmfile.yaml 实际上在 YAML 中列出了 helm install 选项,因此您再次不需要在模板中指定 namespace:

# helmfile.yaml
# (not a plain Helm artifact)
releases:
  - name: object-storage-plugin
    namespace: object-storage-plugin       # <-- configure this
    chart: ./charts/object-storage-plugin
    values:
      - values.dev.yaml
  # `helmfile apply` will do the equivalent to
  #
  # helm install object-storage-plugin \
  #   ./charts/object-storage-plugin \
  #   -n object-storage-plugin \
  #   -f values.dev.yaml