在 Argo 中格式化日期
Formatting dates in 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 of supported time format characters. 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 模板的讨论对开发人员来说更加具体。
从 Argo 3.1 开始,支持一些模板,因此现在可以使用:
"{{=sprig.date('20060102', workflow.creationTimestamp)}}"
为了在 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 of supported time format characters. 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 模板的讨论对开发人员来说更加具体。
从 Argo 3.1 开始,支持一些模板,因此现在可以使用:
"{{=sprig.date('20060102', workflow.creationTimestamp)}}"