【发布时间】:2020-07-27 09:24:30
【问题描述】:
我正在尝试按状态过滤使用 golang kubernetes client-go lib 完成的作业。
我查看了 other answers,解释了如何使用 kubectl 获得工作,如下所示:
kubectl get job -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}'
但我不知道如何将 jsonpath 输出“转换”为过滤器或列表选项
如果我按状态阶段和标签搜索 pod,我会这样做:
listOptions := metav1.ListOptions{
LabelSelector: "app.kubernetes.io/name=my-custom-job",
FieldSelector: "status.phase=Running",
}
result, err := clientset.CoreV1().Pods("default").List(listOptions)
但是如果我要实现 jsonpath {.items[?(@.status.succeeded==1)].metadata.name}
这将遍历所有作业并检查 status 下的成功键是否等于 1。适用于所有工作。
有没有办法寻找那些更“内存友好”的工作,或者在 ListOptions 中使用类似的 jsonpath?
【问题讨论】:
标签: go kubernetes kubectl client-go