Helm 图表防止值被更改

问题描述 投票:0回答:1

我有一个 Helm 图表,其中在安装版本时设置了某个值,更改它会破坏底层软件。

在很多情况下,有人可能会不小心更改它,并且如果更改被应用 - 游戏结束 - 从备份中恢复几个小时。

如果上述值发生变化,我想对升级失败进行检查。

我考虑过使用

lookup
函数,但我的实验表明结果不可靠且不一致。另一个是
pre-upgrade
挂钩,它将评估更改并阻止图表的其余部分运行。

但这些看起来像是 hack。我想知道是否有更多的 Helm 定义方式,基本上是一个应该在整个发布过程中保留的常量值。

kubernetes-helm helm3
1个回答
0
投票

如果您想“硬编码”值,Helm 值可能不是您要找的值。

如果您接受输入变量的多个“允许”值,您可以在schema files中强制使用这些值,例如:

{
  "$schema": "https://json-schema.org/draft-07/schema#",
  "properties": {
    "image": {
      "description": "Container Image",
      "properties": {
        "version": {
          "type": "string"
          "oneOf": ["thatVersion"]
        },

或者,您可以创建一个文件名

_variables.tpl
例如,和

{{- define "img_version" -}}
  {{- print "thatVersion" -}}
{{- end -}}

然后你用它作为模板

include
:

thatKey:  {{ include "img_version" . }}

或者最后的解决方案是改变“不使用硬编码值”的最佳实践规则,只是在模板中硬编码该值而不是通过

values.yaml
.

查看更多:

© www.soinside.com 2019 - 2024. All rights reserved.