Привет ребят,
Мне было интересно, можно ли добавить аннотации к модулям, запускаемым с помощьюshininproxy в Kubernetes? Это позволило бы нам прикрепить роль AWS IAM к контейнеру и использовать ресурсы AWS в блестящих приложениях.
Спасибо заранее! И спасибо за всю отличную работу.
Ваше здоровье,
Эмели
Точно по той же причине я хотел бы добавить аннотации к подам, запускаемым блестящим прокси. Я пытался изменить код с этой целью, но мои навыки Java недостаточно хороши.
Если кто-то все еще поддерживает проект, это будет действительно полезная функция!
На случай, если у кого-то еще возникнет такая же проблема, я нашел обходной путь для добавления аннотаций и допусков к модулям, запущенным блестящим прокси.
В моей настройке блестящий прокси-сервер запускает модули в выделенное пространство имен. Я запустил еще один контейнер вместе с ShinyProxy, который постоянно аннотирует и исправляет любые модули в этом пространстве имен.
(в разделе развертывания spec
):
- name: shiny-role-spammer
image: zlabjp/kubernetes-resource
command:
- "/bin/bash"
- "-c"
- |
while [ 1 ]; do
# Add annotation for kube2iam
kubectl -n external annotate pods --all iam.amazonaws.com/role="arn:aws:iam::123456654321:role/shiny-external";
# Add tolerations
kubectl -n external get pods -o jsonpath='{.items[*].metadata.name}' | grep sp- | \
xargs kubectl -n external patch -p \
'{"spec":{"tolerations":[{"key":"purpose", "operator": "Equal", "value": "external", "effect": "NoSchedule"}]}}' \
pod
sleep 2;
done
хорошая идея! Идеально!
всем привет
Спасибо за ваш пиар!
Чтобы не реализовывать каждую функцию Kubernetes в ContainerProxy, мы решили добавить общий способ добавления конкретной конфигурации Kubernetes в приложение ContainerProxy. Эта функция называется kubernetes-pod-patches
и позволяет исправить спецификацию пода до того, как он будет создан ContainerProxy.
Более подробную информацию об этой функции можно найти здесь (вам нужно немного прокрутить вниз).
Это должно охватывать ваш вариант использования. Не стесняйтесь открывать вопрос, если у вас возникнут какие-либо проблемы с этой функцией.
Изменение включено только в ShinyProxy 2.4.0
Еще раз спасибо за ваш вклад.
Спасибо @LEDfan , это действительно отличное решение — просто посмотрите на него сейчас!
После некоторых проб и ошибок мне удалось заставить его работать для добавления аннотаций ролей IAM следующим образом:
- id: 01_hello
displayName: Hello Application
description: Application which demonstrates the basics of a Shiny app
containerCmd: ["R", "-e", "shinyproxy::run_01_hello()"]
containerImage: openanalytics/shinyproxy-demo
kubernetes-pod-patches: |
- op: add
path: /metadata/annotations
value: { "iam.amazonaws.com/role": "<YOUR-IAM-ROLE>" }
Самый полезный комментарий
На случай, если у кого-то еще возникнет такая же проблема, я нашел обходной путь для добавления аннотаций и допусков к модулям, запущенным блестящим прокси.
В моей настройке блестящий прокси-сервер запускает модули в выделенное пространство имен. Я запустил еще один контейнер вместе с ShinyProxy, который постоянно аннотирует и исправляет любые модули в этом пространстве имен.
(в разделе развертывания
spec
):