Shinyproxy: [功能请求] 可以在 Kubernetes 上为 pod 添加注释

创建于 2019-05-22  ·  5评论  ·  资料来源: openanalytics/shinyproxy

大家好,

我想知道是否可以添加向 Kubernetes 上的 shinyproxy 启动的 pod 添加注释的可能性? 这将使我们能够将 AWS IAM 角色附加到容器并在闪亮的应用程序中使用 AWS 资源。

提前谢谢了! 并感谢所有伟大的工作。

干杯,

艾米莉

enhancement

最有用的评论

如果其他人遇到同样的问题,我找到了一种解决方法,可以为闪亮代理启动的 pod 添加注释和容忍度。
在我的设置中,闪亮的代理是将 pod 启动到一个专用的命名空间中。 我在 shinyproxy 旁边启动了另一个容器,它不断地注释和修补该命名空间中的任何 pod。

(在部署的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条评论

出于完全相同的原因,我还想为闪亮代理启动的 pod 添加注释。 我试图为此更改代码,但我的 Java 技能还不够好。

如果有人仍在维护该项目,这将是一个非常有用的功能!

如果其他人遇到同样的问题,我找到了一种解决方法,可以为闪亮代理启动的 pod 添加注释和容忍度。
在我的设置中,闪亮的代理是将 pod 启动到一个专用的命名空间中。 我在 shinyproxy 旁边启动了另一个容器,它不断地注释和修补该命名空间中的任何 pod。

(在部署的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

好主意! 完美的!

大家好

谢谢你的公关!
为了不必在 ContainerProxy 中实现所有 Kubernetes 功能,我们决定添加一种通用方法,将 Kubernetes 特定配置添加到 ContainerProxy 应用程序中。 此功能称为kubernetes-pod-patches ,允许在 ContainerProxy 创建 Pod 之前修补其规范。
可以在此处找到有关此功能的更多信息(您必须向下滚动一点)。
这应该涵盖您的用例。 如果您在使用此功能时遇到任何问题,请随时打开问题。
更改包含在刚刚的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>" }
此页面是否有帮助?
0 / 5 - 0 等级