我正在尝试按状态过滤使用 golang kubernetes client-go lib 完成的作业。
我检查了其他解释如何使用 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}
这将遍历所有作业并检查状态下的成功键是否等于 1。适用于所有工作。
有没有办法寻找那些更“记忆友好”的工作,或者在 ListOptions 中使用 jsonpaths 的方法?