问题描述
为了在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的讨论对开发人员而言更加具体。