Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 使用模板定义带有头盔的子图表值_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Kubernetes_Kubernetes Helm - Fatal编程技术网 elasticsearch 使用模板定义带有头盔的子图表值,elasticsearch,kubernetes,kubernetes-helm,elasticsearch,Kubernetes,Kubernetes Helm" /> elasticsearch 使用模板定义带有头盔的子图表值,elasticsearch,kubernetes,kubernetes-helm,elasticsearch,Kubernetes,Kubernetes Helm" />

elasticsearch 使用模板定义带有头盔的子图表值

elasticsearch 使用模板定义带有头盔的子图表值,elasticsearch,kubernetes,kubernetes-helm,elasticsearch,Kubernetes,Kubernetes Helm,用例 “我想通过使用elasticsearch官方掌舵图来部署elasticsearch+kibana。我想创建一个称为data viz的掌舵图,并将这些图作为依赖项。” 运行helm install data viz--set cluster=toto必须创建一个elasticsearch集群“toto”,以及一个配置了elasticsearchHosts=toto的kibana 问题 我看到这里可以从主图表values.yml配置子图表。但是我想从main chart values.yaml

用例

“我想通过使用elasticsearch官方掌舵图来部署elasticsearch+kibana。我想创建一个称为data viz的掌舵图,并将这些图作为依赖项。”

运行
helm install data viz--set cluster=toto
必须创建一个elasticsearch集群“toto”,以及一个配置了
elasticsearchHosts
=toto的kibana

问题

我看到这里可以从主图表
values.yml
配置子图表。但是我想从main chart values.yaml模板化sub chart values.yml,可能吗

我在想一些简单的事情,比如:

.
├── Chart.yaml
├── charts
│   ├── elasticsearch
│   │   ├── Chart.yaml
│   │   └── templates
│   │       └── values.yaml
│   ├── elasticsearch-7.4.0.tgz
│   └── kibana-7.4.0.tgz
├── requirements.lock
├── requirements.yaml
└── values.yaml
黑客解决方案


一个小型Python脚本,它从
子图表/值模板.yaml
+数据创建
值.yaml
文件。

我遇到了几乎相同的问题,没有找到合适的解决方案。我只找到了。他们建议在即将发布的helm版本中使用Lua。但是Lua仍然不能与helm 3.0一起使用

因此,我决定实现一个基本上与helm兼容并且能够通过沙盒Pythonic语言配置子图表的

对于您的问题,在根文件夹中放置一个
Chart.star
文件(与
Chart.yaml
并行)并包含以下内容就足够了

def init(self, cluster="clustername"):
  self.elastic = chart("charts/elasticsearch-7.4.0.tgz")
  self.kibana = chart("charts/kibana-7.4.0.tgz")
  self.elastic.cluster  = cluster  # Please use the right name here (from elastic../values.yaml
  self.kibana.elasticsearchHosts = cluster

shalm apply data-viz --set cluster=toto
“专长(掌舵):为图表及其依赖项添加值模板,以便使用go模板自定义值”可能会引起兴趣:

有很多人要求使用图表值模板。yaml(#2492,…。
主要原因是目前无法从模板中导出子图表的值

但是,在
values.yaml
中使用模板会使它们不可解析,并且在呈现它们时会产生“鸡还是蛋”的问题

这个合并请求创建了一个直观的解决方案,没有这样的问题:一个可选的
values/
目录,使用
values.yaml来呈现模板,然后将它们与之合并。
这些
值/
模板仅在特定情况下需要,其工作方式与
模板/
模板和
值相同。yaml
仍将是主要的可分析价值来源

渲染顺序也已更改,以允许这些新值启用或禁用依赖项,并避免渲染已禁用依赖项的值模板

新的可能性: 现在可以自定义依赖项值,这在以前是完全不可能的

值/subchart.yaml 可以从值派生依赖项条件

Chart.yaml
依赖项:
-名称:subchart
条件:subchart.enabled
值/subchart.yaml
子图表:
{{-if eq.Values.environment“production”-}
已启用:true
{{-else-}
已启用:false
{{-end-}

同样,“添加了通过
map.yaml
将值传递给子图表的支持”也很有趣

此PR允许开发人员在图表上声明一个
map.yaml
文件,该文件可用于将
values.yaml
中的值映射到模板中使用的派生值,包括子图表(详细说明请参阅)

这允许开发人员编写

apiVersion:v1 说明:带有地图和子图表的图表 名称:带地图的图表 版本:0.0.1 依赖项: -名称:后端 版本:0.0.1 -名称:前端 版本:0.0.1
价值观
domain:example.com
亚马尔地图
后端:
uri:{{printf“https://api.%s“.Values.domain}”
前端:
uri:{{printf“https://app.%s“.Values.domain}”
其他uri:{{printf“https://blabla.%s“.Values.domain}”
因此,不必公开values.yaml(对于子图表)中的backend:uri、frontend:uri,也不必要求图表用户在多个键中传递相同的值以保持一致性(或使用导致命名冲突的全局名称)

也就是说,它允许使用派生(或映射)值填充子图表,而无需将这些值公开给values.yaml(图表的公共界面)


这项工作正在以下方面实施/评估:

  • :“修复:限制chartutil.Values的使用以避免转换错误”
  • :“修复:不合并和导入禁用依赖项中的值”
  • :“专长:添加值模板以使用go模板自定义值”
但这是一个错误



更新日期:2021年2月:需要在正式提案中确认。

有相关消息吗?你找到官方的解决办法了吗?目前正在与ElasticSearch和不同的Kubernetes API版本作斗争。。我需要能够根据可用的Kubernetes API参数化/模板化要使用的elasticsearch图表的版本
subchart:
    fullnameOverride: subchart-{{ .Relese.Name }}
    debug: {{ default "false" .Values.debug }}