gpt4 book ai didi

regex - 如何自动从Yaml文件中删除kubernetes secret ?

转载 作者:行者123 更新时间:2023-12-02 11:55:19 24 4
gpt4 key购买 nike

我有一个包含许多Kubernetes YAML对象的文件。
我正在寻找一种从文本文件中删除所有K8s Secret YAML对象的方法,该文件由YAML块中包含的"kind: Secret"字符串标识。这应该删除从“apiVersion”到“---”之前的所有内容,表示下一个对象的开始。
我没有运气就研究过Sed,Python和yq工具。
YAML可以按任何顺序包含任何数量的 secret 。
如何自动剥离这些“ secret ”块?

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
---

最佳答案

yq 可以做到这一点(以及下面的 jq )

pip install yq
yq --yaml-output 'select(.kind != "Secret")' input.yaml
您可能需要在示例末尾删除空文档,这会导致输出中有些奇怪
请注意,还有另一种 yq utility似乎并没有执行 jq所执行的操作,因此我不确定如何使它起作用。

关于regex - 如何自动从Yaml文件中删除kubernetes secret ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62566314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com