kubernetes - 将发布时间戳附加到 Helm 模板名称

标签 kubernetes kubernetes-helm

我正在努力寻找一种方法来将 Release.Time 内置作为 helm 名称的一部分。

如果我只是将其包括为:name: {{ template "myapp.name" . }}-{{ .Release.Time }}
试运行显示:name: myapp-seconds:1534946206 nanos:143228281
看起来这是一个 *timestamp.Timestamp 对象或其他东西,因为 {{ .Release.Time | trimPrefix "seconds:" | trunc 10 }} 输出 wrong type for value; expected string; got *timestamp.Timestamp
我可以通过执行以下操作来破解字符串解析: {{ .Release.Time | toString | trimPrefix "seconds:" | trunc 10 }} ,但似乎我应该能够在 Timestamp 对象上调用某些内容来获取秒数。有没有人知道文档在哪里?我在 https://godoc.org/github.com/Masterminds/sprig 找不到任何对它的引用。

最佳答案

要格式化时间戳,您可以使用 Sprig 文档中的 date FORMAT TIME。因为 .Release.Time 在 Helm 3 中被删除了,所以你必须使用 now 来代替:

{{ now | date "20060102150405" }}
引用格式选项:https://golang.org/pkg/time/#Time.Format
但是由于升级,名称中包含时间戳并不是一个好主意。

关于kubernetes - 将发布时间戳附加到 Helm 模板名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51968757/

相关文章:

kubernetes - 使用 NetworkPolicy 将 "kube-system"命名空间列入白名单

kubernetes - "permanent"GKE kubectl 服务帐号认证

kubernetes - "volumeDevices"与 "volumeMounts"与 k8s v1.13 有什么区别

azure - 通过 Terraform 和 Helm 添加并安装 Bitnami 外部 DNS 后,NMI pod 中出现错误 - 找不到 pod 的 AzureIdentityBinding

ssl - 使用 cfssl 和 kubernetes 生成 CA 证书和私钥时出错

sql-server - 连接到部署在 Kubernetes 中的 SQL Server Docker 容器时,用户 SA 登录失败

kubernetes - 尝试使用 helm 在 debian 上设置 kubernetes 时出错

kubernetes - 在单个存储库中为不同的部署环境创建 Helm Charts 的最佳方法是什么?

azure - 从 Azure ACR 部署 FluXCD Helm - 未找到图表名称错误

kubernetes - 有条件的 Helm 钩