поток данных Spring: назначение роли IAM модулям с использованием аннотаций модуля - PullRequest
5 голосов
/ 23 октября 2019

В настоящее время мы внедряем новое потоковое приложение для потоков данных в нашем кластере AWS EKS. Как часть этого, для модулей, запущенных шкипером, должны быть определены роли IAM, указанные в аннотации, чтобы они могли получить доступ к необходимым службам AWS. Я создал требуемую роль iam в учетной записи AWS и пытаюсь передать роль, используя свойство pod-annotations в потоке развертывания для приложения,

пример свойства развертывания:

deployer.datastreamdemosource.kubernetes.pod-annotations=iam.amazonaws.com/role: arn:aws:iam::XXXXXXXX:role/spring-dataflow-test-role

Шкипер может запускать модули в кластере, но я вижу, что запрошенная аннотация не назначена шаблону модуля,

Значение аннотации, назначенное модулю, равно

Использую ли я правильное свойствоназначить требуемую роль IAM? или как назначить роли IAM модулям, запущенным шкипером как часть потока? Мы не хотим использовать глобальную роль IAM для потоков, поскольку некоторые модули имеют дополнительные разрешения, которые им не нужны. Кто-нибудь успешно развернул приложения потоковой передачи данных в AWS EKS с ролями iam для каждого модуля?

Ответы [ 2 ]

1 голос
/ 23 октября 2019

После прочтения документов в течение нескольких часов я нашел необходимые конфигурации в приведенной ниже ссылке

https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#_annotations

Так что вам нужно использовать приведенные ниже определения свойств в разделе Платформа развертывания в ваших потоках, которые будутразрешить шкиперу запускать капсулы с необходимыми аннотациями.

 deployer.data-stream-demo-source.kubernetes.podAnnotations=iam.amazonaws.com/role: arn:aws:iam::XXXXXXX:role/spring-dataflow-test-role
 deployer.data-stream-demo-sink.kubernetes.podAnnotations=iam.amazonaws.com/role: arn:aws:iam::XXXXXX:role/spring-dataflow-test-role

Свойство pod-аннотации по умолчанию в определении потока развертывания работает не так, как ожидалось, и не уверен, что это из-за опечатки в pod-аннотациях.

То же самое относится и к другим аннотациям (аннотации заданий, аннотации сервисов).

На данный момент вы можете определить необходимое определение аннотации на вкладке свободного текста или определить на уровне свойств приложения при регистрации приложений на сервере потока данных. Кстати, я использую spring-cloud-dataflow-server Версия: 2.2.1.RELEASE

0 голосов
/ 24 октября 2019

То, что вы пробовали в качестве свойства развертывания, действительно содержит опечатку. Чтобы переопределить podAnnotations на каждом уровне потокового приложения, вы должны использовать его как deployer.<app-name>.kubernetes.podAnnotations для каждого из требуемых приложений в определении потока.

SCDF K8s-deployer специальноожидает свойство в этом формате, и поэтому оно не анализируется и не аннотируется правильно в развернутых приложениях. Однако, если вы используете пользовательский интерфейс, мы попытаемся автоматически перечислить все свойства развертывателя в диалоговом окне, чтобы вы ожидали от вас значения.

Недавно было обсуждение volumeMounts в том же ключе в SCDF Канал Гиттера . Фон, обсуждаемый на канале, может быть полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...