我有一个包含许多Kubernetes YAML对象的文件。我正在寻找一种从文本文件中删除所有K8s秘密YAML对象的方法,该文本文件由包含在YAML块中的"kind: Secret"字符串标识。这将删除从"apiVersion“到”--“表示下一个对象的开始的所有内容。
我研究过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
---发布于 2020-06-25 06:26:42
发布于 2020-06-25 06:33:53
如果使用命令--- awk在每次发生时拆分文件的shell脚本又如何呢?(有关此问题的示例,请参阅本链接第5节和第6节。)这样,脚本可以单独计算每个部分,并将不对应于Secret的部分发送到新的输出文件。
发布于 2020-06-25 06:44:55
纯粹使用regex,您可以搜索
(^|---).*?kind: Secret.*?(---|$)并将其替换为:
---测试这里。
注意:在最后,您可能有一些额外的---,您需要“手动”删除-但这应该不是什么大问题。
https://stackoverflow.com/questions/62566314
复制相似问题