使用自定义函数通过go模板自定义kubectl输出

huangapple go评论146阅读模式
英文:

Customizing kubectl output with go templates using custom function

问题

我正在尝试为解析PodStatus中的时间并获取其绝对时间添加一个自定义函数到Go模板中。

以下是自定义函数的示例代码:

PodScheduled, _ := time.Parse(time.RFC3339, "2021-12-23T20:20:36Z")
Ready, _ := time.Parse(time.RFC3339, "2021-12-31T07:36:11Z")

difference := Ready.Sub(PodScheduled)
fmt.Printf("difference = %v\n", difference)

你可以使用内置函数。

你想知道如何在kubectl中使用自定义函数吗?

例如,你可以使用这个库:https://github.com/Masterminds/sprig

谢谢 使用自定义函数通过go模板自定义kubectl输出

英文:

I'm trying to add a custom function In Go template for parsing the time in PodStatus and getting the absolute time for it.

Example for the custom function:

PodScheduled, _ := time.Parse(time.RFC3339, "2021-12- 23T20:20:36Z")
Ready, _ := time.Parse(time.RFC3339, "2021-12-31T07:36:11Z")

difference := Ready.Sub(PodScheduled)
fmt.Printf("difference = %v\n", difference)

I can use the built-in functions.

How I can use a custom function with the kubectl?

For example this lib:
https://github.com/Masterminds/sprig

Thanks 使用自定义函数通过go模板自定义kubectl输出

答案1

得分: 2

我理解你有(至少)3个选项:

  1. 不推荐:编写自己的客户端(而不是kubectl),提供所需的功能;
  2. 鼓励:使用shell来对来自kubectl get pods --output=json的输出进行后处理,通过管道将结果传递给:
    • 要么使用你的Golang二进制文件从标准输入读取
    • 或者更好的选择是使用通用的JSON处理工具,比如jq,它可以完成这个任务(还有更多!)
  3. 为了完整起见,kubectl支持输出格式化(--output=jsonpath...);尽管JSONPath可能不足以满足这个需求;

请参阅jq的文档了解日期的处理方法。

英文:

IIUC you have (at least) 3 options:

  1. Discouraged: Write your own client (instead of kubectl) that provides the functionality;
  2. Encouraged: Use the shell to post-process the output from e.g. kubectl get pods --output=json) by piping the result through:
    • Either your Golang binary that reads from standard input
    • Or better a general-purpose JSON processing tool like jq that would do this (and much more!)
  3. For completeness, kubectl supports output formatting (--output=jsonpath...); although JSONPath may be insufficient for this need;

See jq's documentation for Dates

huangapple
  • 本文由 发表于 2022年1月10日 23:38:04
  • 转载请务必保留本文链接:https://go.coder-hub.com/70654990.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定