Shinyproxy: [機能リクエスト]Kubernetesのポッドにアノテーションを追加する可能性

作成日 2019年05月22日  ·  5コメント  ·  ソース: openanalytics/shinyproxy

やあみんな、

シャイニープロキシがKubernetesで起動したポッドにアノテーションを追加する可能性を追加できるかどうか疑問に思いました。 これにより、AWS IAMロールをコンテナーにアタッチし、光沢のあるアプリでAWSリソースを使用できるようになります。

よろしくお願いします! そして、すべての素晴らしい仕事に感謝します。

乾杯、

エメリー

enhancement

最も参考になるコメント

他の誰かが同じ問題を抱えている場合は、光沢のあるプロキシによって起動されたポッドに注釈と許容値を追加するための回避策を見つけました。
私のセットアップでは、光沢のあるプロキシはポッドを専用の名前空間に起動します。 その名前空間内のポッドに常に注釈を付けてパッチを適用する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

全てのコメント5件

また、まったく同じ理由で、光沢のあるプロキシによって起動されたポッドに注釈を追加したいと思います。 この目的のためにコードを変更しようとしましたが、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>" }
このページは役に立ちましたか?
0 / 5 - 0 評価