我想获取上次通过 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更新
该命令会正确报告对密钥所做的所有更改。