Как загрузить конфигурационную карту из файла свойств с помощью настройки?
Я попытался использовать настройку для загрузки файла свойств в виде карты конфигурации.
Для этого я создал набор образцов, как в ссылке на 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
Если вы наблюдаете за конфигурационной картой|
удаляется, а также заменяется\r\n
как одна строка. Как исправить этот расклад?
1 ответ
Размещая это как вики-сообщество, не стесняйтесь редактировать и расширять.
Как упомянул @mdaniel в комментарии :
Что ж, если не считать символов \r, эти две формы идентичны; : | скалярное цитирование предназначено только для человеческого потребления - к тому времени, когда оно попадает в кластер, оно имеет форму config: "whatever\nwhatever-else\n", как yaml2json покажет для обеих форм, или, конечно, как это на самом деле материализуется в Pod
Вы можете проверить это, получив сведения о карте конфигурации из кластера Kubernetes вjson
и посмотреть, чтобы они хранились одинаково (за исключением доп.\r
о чем говорилось выше):
$ kubectl get cm database-configmap -o json
{
"apiVersion": "v1",
"data": {
"config": "dbport=1234\ndcname=sfsdf\ndbssl=false\nlocktime=300\ndomainuser="
},
"kind": "ConfigMap",
...
и
$ kubectl get cm dev-database-configmap -o json
{
"apiVersion": "v1",
"data": {
"config": "dbport=156767\r\ndcname=dfsd\r\ndbssl=false\r\nlocktime=300\r\ndomainuser=somedts"
},
"kind": "ConfigMap",
...
На StackOverflow есть ответ, который кратко показывает разницу между \n , \r и \r\n .