Как установить несколько аргументов с помощью postgress helm 3.0
Я хочу установить slave.extraVolumes
как показано ниже.
helm install my-db --set replication.enabled=true,slave.extraVolumes={"db-disk-1","db-disk-2"} bitnami/postgresql -n development
Но это говорит об ошибке
Error: expected at most two arguments, unexpected arguments: bitnami/postgresql
Уже проверенные способы:
helm install my-db --set replication.enabled=true,slave.extraVolumes={db-disk-1,db-disk-2} bitnami/postgresql -n development
Error: expected at most two arguments, unexpected arguments: bitnami/postgresql
helm install my-db --set replication.enabled=true,slave.extraVolumes="db-disk-1\,db-disk-2" bitnami/postgresql -n development
Error: YAML parse error on postgresql/templates/statefulset-slaves.yaml: error converting YAML to JSON: yaml: line 115: could not find expected ':'
1 ответ
Решение
Происходит (как минимум) три вещи:
- в
slave.extraVolumes
это список изVolume
структуры, поэтому просто указание двух имен не поможет - вы используете символы, которые имеют значение для оболочки, не цитируя их
- но, в конце концов, это не имеет значения, потому что вы не можете представить сложные структуры, используя только
--set
синтаксис, вам понадобится--values
с заменой файла или процесса
helm install my-db \
--set replication.enabled=true \
--values <(echo '{
"slave": {
"extraVolumes": [
{
"name": "db-disk-1",
"emptyDir": {}
},
{
"name": "db-disk-2",
"emptyDir": {}
}
]
}
}') \
bitnami/postgresql -n development
Для тех, кто пришел из Google с сообщением об ошибке и хочет решить эту проблему, а не о неясных
postgresql
-конкретный ответ в принятом ответе, проблема почти наверняка заключается в пункте 2 mdaniel ("вы используете символы, значимые для оболочки, не цитируя их"), по крайней мере, для современных
bash
.
Этот ответ объясняет, что происходит - Остановить расширение подстановочных знаков оболочки?- и как это исправить. Здесь вам нужно убрать только фигурные скобки, например:
helm install my-db --set replication.enabled=true,slave.extraVolumes='{"db-disk-1","db-disk-2"}' bitnami/postgresql -n development
или же
helm install my-db --set replication.enabled=true,slave.extraVolumes=\{"db-disk-1","db-disk-2"\} bitnami/postgresql -n development
Это то, что вам нужно. В
helm
help до досады умалчивает об этом.