如何在 kube api 中获取密钥的最后应用时间戳



我想获取上次通过 kube API 修改密钥的时间。我似乎找不到访问此信息的方法。我看了一下事件,但我找不到任何秘密。

一个例子是我创建了一个名为my-secret的秘密,然后在第二天更新它,但我想知道它更新的时间而不是创建时间。

任何帮助将非常感谢。

以下命令将为您提供按时间顺序排列的秘密历史:

kubectl get secret <name> --namespace <namespace> --show-managed-fields -o jsonpath='{range .metadata.managedFields[*]}{.manager}{" did "}{.operation}{" at "}{.time}{"n"}{end}'

例如,创建一个密钥:kubectl create secret generic test --from-literal user=$(echo 'somebody' | base64)

运行上述命令:

kubectl-create did 更新于2021-12-06T01:12:17Z

检索创建的密钥kubectl get secret test -o yaml > test.yaml.将 yaml 中的"用户"值替换为echo 'nobody' | base64输出,然后重新应用kubectl apply -f test.yaml

运行上述命令,它会报告上次更新操作和时间戳:

kubectl-create did 更新于2021-12-06T01:12:17Z

kubectl-客户端应用确实在2021-12-06T01:13:33Z更新

现在做一个替换kubectl patch secret test --type='json' -p='[{"op" : "replace" ,"path" : "/data/user" ,"value" : "aGVsbG93b3JsZAo="}]'

再次运行上述命令:

kubectl-create did 更新于2021-12-06T01:12:17Z

kubectl-客户端应用确实在2021-12-06T01:13:33Z更新

kubectl-patch 确实在2021-12-06T01:21:57Z更新

该命令会正确报告对密钥所做的所有更改。

最新更新