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 ':'
4

2 回答 2

3

(至少)发生了三件事:

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
于 2020-03-25T06:25:17.843 回答
2

对于其他来自谷歌的错误消息并想要解决这个问题的人,而不是postgresql接受的答案中晦涩难懂的特定答案,问题几乎可以肯定是 mdaniel 的第 2 点(“你使用的字符对 shell 有意义而没有引用他们”),至少对于现代来说bash

这个答案解释了发生了什么 -停止 shell 通配符扩展?- 以及如何解决它。在这里,您只需要转义大括号,例如:

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帮助令人讨厌。

于 2020-11-08T07:32:20.280 回答