有没有办法根据变量的存在性在 Chart.yaml 文件中设置条件?SERVICE_A_URL我想在未设置变量时安装依赖项。我尝试了这些,但 helm 总是尝试安装依赖项。
condition: "not SERVICE_A_URL"
condition: "not defined SERVICE_A_URL"
Run Code Online (Sandbox Code Playgroud)
谢谢你!
我有一个定义如下的 configmap 文件
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-dashboard-cm-conf
namespace: {{ .Release.Namespace }}
data:
{{ (tpl (.Files.Glob "conf/*").AsConfig . ) | indent 2 }}
Run Code Online (Sandbox Code Playgroud)
正如您在上面看到的,它占用了“conf”文件夹的内容作为数据。一切正常,但是当我尝试使用“部署文件中的以下行”实施“注释”以触发“POD 重新启动”时,会观察到问题。
annotations:
checksum/config-map: {{ include (print .Template.BasePath "/dashboard-conf-map.yaml") . | sha256sum }}
Run Code Online (Sandbox Code Playgroud)
即使“conf”文件夹的内容发生更改并且执行“helm 升级”,POD 也不会重新启动。
如果我使用一个简单的配置映射,其数据定义如下,参数的更改和“helm 升级”确实会导致 POD 重新启动
data:
parameter1: testparam1
parameter2: testparam2
Run Code Online (Sandbox Code Playgroud)
我在这里有以下问题
有没有办法对文件夹执行校验和。
有没有办法在 configmap.txt 中获取像下面这样的 linux-command 的输出?
find dashboard/conf/ -type f -exec md5sum {} \; |md5sum
annotations:
checksum: {{ include (print .Template.BasePath "/logback-spring.xml") . | …Run Code Online (Sandbox Code Playgroud) 给定以下值.yaml
elements:
first:
enabled: true
url: first.url
second:
enabled: flase
url: second.url
third:
enabled: true
url: third.url
Run Code Online (Sandbox Code Playgroud)
获得以下结果的好方法是什么:
list_of_elements=first,third
Run Code Online (Sandbox Code Playgroud)
结果列表只需包含已启用的元素。该列表必须是单行逗号分隔的项目。
有没有办法使用 helm 逻辑来分析 Kubernetes 版本,即 Capability.KubeVersion,然后从 Kubernetes 版本到值的映射中动态选择一个值,例如
kubernetesVersionCompatibility:
1.15:
insertValue: foo
1.18:
insertValue: bar
Run Code Online (Sandbox Code Playgroud) 我正在创建一个使用 helm(v3.3.0) + k3s 的应用程序。容器中的程序使用不同的配置文件。到目前为止,只有很少的配置文件(我在构建映像之前手动添加的),但我想添加在容器运行时动态添加它们的可能性,并且在容器/pod 死亡后不会丢失它们。在 docker 中,我会通过公开这样的文件夹来做到这一点:
docker run [image] -v /host/path:/container/path
掌舵有等效的吗?如果不是,您建议如何在不停止使用 helm/k3s 的情况下解决这个问题?
我使用 helm 在 k8s 中升级了 spring 应用程序。我有默认图表并使用命令
upgrade my-app my-app-chart --atomic --set image.tag=123
Run Code Online (Sandbox Code Playgroud)
在 dir my-app-chart 中我有文件 Chart.yaml
apiVersion: v1
name: my-app-chart
description: A Helm chart for spring application my-app-chart
version: "1"
appVersion: "{{ .Values.image.tag }}"
Run Code Online (Sandbox Code Playgroud)
我希望 helm 评估字段 appVersion 并且在 helm 历史记录中我看到 123,但现在我看到
C:\git\ci\top-ci-example-project-multi-module>helm history -n top-ci my-app
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
150 Wed Nov 3 00:30:09 2021 superseded my-app-chart-0.1.0 0.1.0 Rollback to 148
151 Wed Nov 3 00:38:38 2021 failed my-app-chart-1 {{ .Values.image.tag }} Upgrade …Run Code Online (Sandbox Code Playgroud) 我有一个字符串数据列表或(切片),例如[string1, string2, string3]。我想在 yaml 文件中以列表方式呈现它
- string1
- string2
- string3
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我努力了
{{- range $val := $list }}
- {{ $val }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
但它将以下内容呈现为多行字符串
- |-
- string1
- string2
- string2
Run Code Online (Sandbox Code Playgroud)
任何想法?先感谢您
此图表已弃用错误:安装失败:无法安装 CRD crds/crd-alertmanager.yaml:无法识别“”:版本“apiextensions.k8s.io/v1beta1”中的类型“CustomResourceDefinition”不匹配
在我们的舵图中,每个环境都有一个值文件,例如
app-helm-chart:
dev-values.yaml
test-values.yaml
Chart.yaml
templates
deployment.yaml
service.yaml
ingress.yaml
Readme.md
Run Code Online (Sandbox Code Playgroud)
我们已经使用 helm 包打包了 helm 图表,然后尝试从我们的 helm 存储库安装它。
有没有办法指定使用包内的 dev-values 文件作为安装命令的一部分?
如果可能的话,尝试将值和模板全部打包和版本化到一个地方。
谢谢
我是 helm/go 模板的新手,似乎我仍然不明白上下文是如何工作的。有人可以解释一下,问题出在哪里以及为什么 dict 不能这样使用?
我的文件中有这个模板stubs/.test.yaml(我想将其与 tpl 函数一起使用):
test: abc
test2: {{.Values.key}}
Run Code Online (Sandbox Code Playgroud)
在values.yaml中只有:
key: value
Run Code Online (Sandbox Code Playgroud)
我包括这样的模板:
{{ tpl (.Files.Get "stubs/.test.yaml" ) (.) }}
Run Code Online (Sandbox Code Playgroud)
产生:
test: abc
test2: value
Run Code Online (Sandbox Code Playgroud)
因此,我从 Stubs/.test.yaml 加载文件,并将其传递给当前(根)上下文,然后.Values.key找到并替换该文件。正如预期的那样。
现在让我们重新定义stubs/.test.yaml为:
test: abc
test2: {{.key}}
Run Code Online (Sandbox Code Playgroud)
并在替换模板时传递字典作为上下文,如下所示:
{{ tpl (.Files.Get "stubs/.test.yaml" ) (dict "key" .Values.key) }}
Run Code Online (Sandbox Code Playgroud)
所以我期望得到相同的结果,因为我传递了 dict 代替根上下文, dict 有一个名为 的值key,其值取自.Values.key,该值在该模板中被正确引用。但我得到了:
error calling tpl: cannot retrieve Template.Basepath from values inside tpl function: test: abc
test2: {{.key}}: "BasePath" is not …Run Code Online (Sandbox Code Playgroud) kubernetes-helm ×10
kubernetes ×4
helm3 ×3
configmap ×1
dependencies ×1
docker ×1
go-templates ×1
k3s ×1
yaml ×1