【问题标题】:Formatting dates in Argo在 Argo 中格式化日期
【发布时间】:2021-01-23 20:54:53
【问题描述】:

为了在 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}}",但没有运气。

【问题讨论】:

    标签: argo-workflows argoproj


    【解决方案1】:

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

    有一个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 模板的讨论更加具体。

    【讨论】:

    【解决方案2】:

    自 Argo 3.1 起,支持一些模板,因此现在可以使用:

    "{{=sprig.date('20060102', workflow.creationTimestamp)}}"
    

    【讨论】:

      猜你喜欢
      • 2019-01-29
      • 2017-02-13
      • 2011-11-04
      • 2017-12-10
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多