【问题标题】:Configure plugin directory for Hashicorp Vault on GKE在 GKE 上为 Hashicorp Vault 配置插件目录
【发布时间】:2020-06-22 11:45:31
【问题描述】:
我正在尝试为在 GKE 上设置的保管库注册一个插件。
但是,当我尝试注册插件时,我收到一条错误消息:
* 无法设置插件,插件目录未配置
有谁知道我如何设置插件目录并将插件的 github 存储库添加到此目录中。
我认为这需要在保管库配置文件中完成,但不确定如何在 GKE 上实现。
【问题讨论】:
标签:
google-cloud-platform
google-kubernetes-engine
gcloud
hashicorp-vault
【解决方案1】:
如果您有与Using HashiCorp Vault on GKE 指南中描述的设置类似的设置,则可以在 StatefulSet 中的vault 容器的$VAULT_LOCAL_CONFIG 环境变量中设置plugin_directory,如下所示:
$ kubectl edit statefulset vault
spec:
...
template:
...
spec:
...
containers:
...
- args:
...
env:
...
- name: VAULT_LOCAL_CONFIG
value: |
plugin_directory = "/etc/vault/plugins"
...
要将插件二进制文件添加到所有 pod 的 plugin_directory 中,例如,您可以使用 gcePersistentDisk volume 或让容器在启动时下载它。例如,在将这些command 和args 数组添加到vault StatefulSet 之后,我可以使用$ vault write sys/plugins/catalog/example-auth-plugin sha_256=$SHA256 command="vault-auth-plugin-example" 注册这个vault-auth-plugin-example 插件:
$ kubectl edit statefulset vault
spec:
...
template:
...
spec:
...
containers:
...
- args:
...
name: vault
command: ["/bin/sh"]
args: ["-c", "(mkdir -vp /etc/vault/plugins && cd /etc/vault/plugins && wget -O- https://github.com/hashicorp/vault-auth-plugin-example/releases/download/v0.1.0/vault-auth-plugin-example_0.1.0_linux_amd64.tgz | tar xzf -) && docker-entrypoint.sh server"]
...