在Argo中格式化日期

问题描述

为了在Argo中获得像20201008这样的日期,在模板中格式化日期的最佳方法是什么?

这似乎可行,但相当冗长,为"%Y-%m-%dT%H:%M:%sZ"之类的字符串创建字符串将使其他人很难阅读。

 "{{workflow.creationTimestamp.Y}}{{workflow.creationTimestamp.m}}{{workflow.creationTimestamp.d}}"

我认为这些是相关文档:https://github.com/argoproj/argo/blob/master/docs/variables.md。我尝试过"{{workflow.creationTimestamp.Ymd}}",但是没有运气。

解决方法

不幸的是,没有办法(在模板内部)使这一点更加简洁。

hard-coded list个受支持的时间格式字符。 For each character in that list,a global parameter is populated,以及基本workflow.creationTimestamp变量。 workflow.creationTimestamp.之后没有动态读取或处理字符。

由于模板是基于Jinja2的,因此discussion支持更健壮的字符串模板。但是各种复杂的情况使讨论陷入僵局。 (Argo团队使用“竖起大拇指”计数来确定问题的优先级,因此可能会有所帮助。)

我确定您已经想到了这一点,但是为了完整起见:如果您在Pod中使用变量,则可以发送完整的workflow.creationTimestamp并进行一些运行时操作以获取格式想要。

最后,您可以submit an issue来请求功能。即使他们决定不实施它,该示例也会使有关Jinja2的讨论对开发人员而言更加具体。