我想創建一個kubectl自動洗掉早于“x”天的秘密的 cron 作業,最新的 2 個版本除外。集群中的應用程式使用這些秘密進行配置,但它們是在每次部署時創建的,并且需要在事后清理。
uj5u.com熱心網友回復:
您可以使用
kubectl delete secret $(kubectl get secret | awk 'match($5,/[0-9] d/) {print $1}')
您可以決議 JSON,就像您可以根據xdays的需要使用秒數(更新 86400)并撰寫版本的其他條件一樣。
但是,我認為您不能使用 k8s 機密維護版本,如果您使用任何機密,則external secret可以通過修改命令來決議 JSON 中的版本。
kubectl get externalsecret ....
使用jq命令列決議 JSON:
kubectl get secrets -o json | jq -r "[.items[] | {name: .metadata.name, startTime: .metadata.creationTimestamp | fromdate } | select(.startTime < (now | . - 86400))]" | jq -r ".[].name"
額外:
如果您不想使用 kubectl,您可以使用 Python 或其他語言與客戶端庫并管理機密并將該 Docker 映像運行到k8s cronjob
客戶端庫:https ://kubernetes.io/docs/reference/using-api/client-libraries/
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/471152.html
