Я работаю с Vault для моего проекта и использую Go API .
В настоящее время API поддерживает только пути /v1
, что хорошо , Моя проблема в том, что в моей конфигурации разработки у меня есть файл docker-compose.yml
, который настроен с простой конфигурацией, которая выглядит следующим образом:
version: '3.7'
services:
my-vault:
image: library/vault:1.4.0
container_name: my-vault
cap_add:
- IPC_LOCK
environment:
VAULT_DEV_ROOT_TOKEN_ID: devroot
VAULT_DEV_LISTEN_ADDRESS: 0.0.0.0:8200
ports:
- 8200:8200
Когда я вручную создаю свой секретный механизм через пользовательский интерфейс (и явно установите его на V1) я могу использовать свой код просто отлично. Я просто устанавливаю данные, и библиотека Go работает как шарм:
client, err := vault.NewClient(vault.DefaultConfig())
if err != nil {
panic(err)
}
myMapValues := map[string]interface{}{}
myMapValues["mykey"] = "someSecretValue"
_, err := client.Logical().Write("myV1SecretPath/hello", myMapValues)
if err != nil {
panic(err)
}
В контейнере Docker я вижу:
/ # ps aux | grep vault
6 vault 0:07 vault server -config=/vault/config -dev-root-token-id=devroot -dev-listen-address=0.0.0.0:8200 -dev
Я вижу там, что конфигурация Для местоположения задан каталог /vault/config
, который по умолчанию ничего не содержит. Чтение документации по конфигурации сервера Я не вижу способа указать конфигурацию по умолчанию для секретов.
Я хотел бы добавить файл конфигурации, который эмулирует эту команду:
vault secrets enable -address=http://127.0.0.1:8200 -version=1 -path=myV1SecretPath kv
Возможно ли это с помощью параметра конфигурации или мне просто нужно создать собственный Docker образ, чтобы выполнить sh это?