kubernetes-helm - 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 保存其持久数据的命名空间。无法在文件中指定它。
同样在正常使用中,您不会namespace:
在单个 YAML 文件中手动指定。资源会自动安装在helm install --namespace
(就像你一样kubectl apply --namespace ... -f ...
)。您应该只需要namespace:
在同一个图表需要在多个命名空间中安装东西的异常设置;IME 通常仅在您使用 Helm 进行集群级设置时才使用。
但是,您也将此问题标记为helmfile。如果您使用的是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
推荐阅读
- javascript - 在js中制作检查素数功能
- java - 为多生产者和多消费者排队以获得最佳性能和线程安全
- node.js - 无法使用 Typescript 和 NodeJS 从绝对路径导入
- javascript - 为什么我的页面上没有出现 JQuery UI 滑块?
- java - 泛型方法教程
- python - 为什么我的 django 信号不适用于用户模型?
- jquery-ias - 如何使用无限 Ajax 滚动 JSON 示例中所示的 nextHandler 功能
- ios - Swift 故事板“非法配置”
- javascript - indexDB 的结果是空数组,但在扩展其完整时。但是,完成后它不会重新呈现页面
- javascript - 按钮点击更改班级,但之后无法再次更改班级