やあみんな、
シャイニープロキシが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
良いアイデア! 完全!
こんにちは、みんな
PRありがとうございます!
ContainerProxyにすべてのKubernetes機能を実装する必要がないように、ContainerProxyアプリにKubernetes固有の構成を追加する一般的な方法を追加することにしました。 この機能はkubernetes-pod-patches
と呼ばれ、ContainerProxyによって作成される前にポッドの仕様にパッチを適用できます。
この機能の詳細については、こちらをご覧ください(少し下にスクロールする必要があります)。
これはあなたのユースケースをカバーするはずです。 この機能で問題が発生した場合は、遠慮なく問題を開いてください。
この変更は、 ShinyProxy2.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
セクション内):