我尝试使用 kustomize 将属性文件加载为配置映射。
为此,我在 github链接中创建了一个示例集。
使用基本文件:
#kustomize build base
apiVersion: v1
data:
config: |-
dbport=1234
dcname=sfsdf
dbssl=false
locktime=300
domainuser=
kind: ConfigMap
metadata:
labels:
owner: sara
name: database-configmap
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx
owner: sara
name: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
owner: sara
template:
metadata:
labels:
app: nginx
owner: sara
spec:
containers:
- image: nginx
name: nginx
使用外部文件:
#kustomize build file
apiVersion: v1
data:
config: "dbport=156767\r\ndcname=dfsd\r\ndbssl=false\r\nlocktime=300\r\ndomainuser=somedts"
kind: ConfigMap
metadata:
labels:
env: dev
owner: sara
name: dev-database-configmap
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx
env: dev
owner: sara
name: dev-nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
env: dev
owner: sara
template:
metadata:
labels:
app: nginx
env: dev
owner: sara
spec:
containers:
- image: nginx
name: nginx
如果您观察到 configmap|
被删除并替换\r\n
为单个字符串。如何修复这种对齐方式?
将此作为社区 wiki 发布,随时编辑和扩展。
正如@mdaniel 在评论中提到的:
您可以通过从 kubernetes 集群中获取 configmap 详细信息来检查这一点,
json
并查看它们是否以相同的方式存储(除了\r
上面提到的附加内容):和
StackOverflow 上有一个答案,它很快显示了\n 、 \r 和 \r\n 之间的区别。