确保 Go 模板中的路径始终以斜杠结尾

Make sure path in Go template always ends with slash

我正在为一堆部署编写 Helm 图表。我提供的值可以是:

my_value: "/opt/my-path"my_value: "/opt/my-path/"

现在我想确保路径的末尾始终有一个 /

如何使用 Go 模板执行此操作?

您可以 trim 后缀 /trimSuffix 功能,文档在这里 http://masterminds.github.io/sprig/strings.html,并在末尾手动添加 /。因此,无论原始值如何,最后总是会得到 / 。 例子

values.yaml:

path_with_slash: "/my/path/"
path_without_slash: "/my/path"

在模板文件中:

{{ $path_with_slash := trimSuffix "/" .Values.path_with_slash }}
{{ $path_without_slash := trimSuffix "/" .Values.path_without_slash }}
path_with_slash: "{{ $path_with_slash }}/"
path_without_slash: "{{ $path_without_slash }}/"

渲染文件:

path_with_slash: "/my/path/"
path_without_slash: "/my/path/"