Как установить несколько аргументов с помощью 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 до досады умалчивает об этом.

Другие вопросы по тегам