[英]How can I automate the removal of kubernetes secrets from a yaml file?
我有一個包含許多 Kubernetes YAML 對象的文件。 我正在尋找一種從文本文件中刪除所有 K8s Secret YAML 對象的方法,這些對象由 YAML 塊中包含的"kind: Secret"
字符串標識。 這應該刪除從“apiVersion”到“---”之前的所有內容,表示下一個 object 的開始。
我調查了 Sed、Python 和 yq 工具,但沒有運氣。 YAML 可以按任何順序包含任意數量的機密。
如何自動剝離這些“秘密”塊?
apiVersion: v1
data:
username: dGVzdAo=
password: dGVzdHBhc3N3b3JkCg==
kind: Secret
metadata:
name: my-secret-1
type: Opaque
---
apiVersion: v1
kind: Pod
metadata:
name: test-site
labels:
app: web
spec:
containers:
- name: front-end
image: nginx
ports:
- containerPort: 80
- name: rss-reader
image: nickchase/rss-php-nginx:v1
ports:
- containerPort: 88
---
apiVersion: v1
data:
username: dGVzdAo=
password: dGVzdHBhc3N3b3JkCg==
kind: Secret
metadata:
name: my-secret-2
type: Opaque
---
使用命令---
在每次出現時拆分文件的 shell 腳本怎么樣? (有關示例,請參閱此鏈接的第 5 節和第 6 節。)通過這種方式,腳本可以單獨評估每個部分,並將與Secret
不對應的部分發送到新的 output 文件。
純粹使用正則表達式,您可能會搜索
(^|---).*?kind: Secret.*?(---|$)
並替換為:
---
在這里測試。
注意:最后,您可能有一些額外的---
您需要“手動”刪除它們 - 但這應該沒什么大不了的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.