Как использовать роль AWS IAM для команды сборки упаковщика внутри конвейера Jenkins с использованием Kubernetes / Docker Slave

#amazon-web-services #kubernetes #jenkins-pipeline #amazon-iam #packer

#amazon-web-services #kubernetes #дженкинс-конвейер #amazon-iam #упаковщик

Вопрос:

Я использую конвейер Jenkins и Packer для создания AMI внутри учетной записи AWS.

  • Дженкинс использует кластер Kubernetes в качестве подчиненного устройства (используя облачный плагин, который позволяет мне настраивать параметры шаблона docker pods),
  • У меня есть конвейер, который извлекает проект git с шаблоном упаковщика в нем и запускает команду проверки упаковщика, которая прошла успешно. Затем он запускает сборку упаковщика, и я получаю следующую ошибку:

[1;Ошибка 31mBuild ‘Amazon Linux 2 Classic’: не найдено действительных источников учетных данных для AWS Builder. Пожалуйста, смотрите https://www.packer.io/docs/builders/amazon.html#specifying-amazon-credentials для получения дополнительной информации о предоставлении учетных данных для AWS Builder.[0m

Я также использую Kube2iam для предоставления ролей в моих подчиненных контейнерах.

В моем шаблоне упаковщика я не определяю никаких учетных данных aws, поскольку хочу использовать не его, а роль. Вы не знаете, нужно ли мне что-то сделать внутри шаблона упаковщика, чтобы указать роль для использования?

С наилучшими пожеланиями,

Тони.

Ответ №1:

Насколько я понимаю, вы используете Jenkins внутри кластера Kubernetes, работающего на экземплярах AWS EC2? Если это так, агенты Jenkins, выполняющие сборку, должны иметь возможность считывать доступные роли из метаданных экземпляра, на котором они выполняются.

В этом случае процесс будет заключаться в назначении роли desire IAM экземплярам, и Kubernetes должен быть в состоянии справиться с этим.