Как выполнить команды bash из configmap kubernetes?

Я использую рулевые диаграммы для создания и развертывания контейнеров в моем кластере K8. Один из моих модулей требует файл конфигурации с ключом SDK, чтобы он мог запускаться и функционировать должным образом. Этот ключ SDK считается секретным и хранится в секретном менеджере AWS. Следовательно, я не хочу запекать конфигурационный файл в моем образе докера. Я хочу иметь возможность монтировать этот файл конфигурации во время выполнения. Configmap, по-видимому, является хорошим вариантом в этом случае, за исключением того, что я не смог выяснить, как получить этот ключ SDK из диспетчера секретов во время установки helm chart. Часть моего configmap выглядит так

   data:
      app.conf: |
      [sdkkey] # I want to be able to retrieve sdk from aws secrets manager

Я искал способы написания команд bash с использованием aws cli для получения секретов, но не видел способа выполнения команд bash из карты конфигурации.

Есть идеи или альтернативные решения?

Ура K

1 ответ

Решение

ТЛ; др; Вы не можете выполнить что-либо из ConfigMap, это просто статический манифест. Вместо этого используйте контейнер init.

ConfigMaps - это просто статический манифест, который можно прочитать из API Kubernetes или внедрить в контейнер во время выполнения в виде файла или переменных среды. Нет способа выполнить ConfigMap.

Учитывая ваше описание, звучит так, что вам лучше всего использовать контейнер init для получения учетных данных и записи их на общий том emptyDir, смонтированный в контейнере, с приложением, которое будет использовать эти учетные данные.

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