Shinyproxy: [Funktionsanfrage] Möglichkeit, Anmerkungen zu Pods in Kubernetes hinzuzufügen

Erstellt am 22. Mai 2019  ·  5Kommentare  ·  Quelle: openanalytics/shinyproxy

Hallo Leute,

Ich habe mich gefragt, ob die Möglichkeit hinzugefügt werden könnte, Anmerkungen zu Pods hinzuzufügen, die von Shinyproxy auf Kubernetes gestartet wurden. Dies würde es uns ermöglichen, eine AWS IAM-Rolle an einen Container anzuhängen und AWS-Ressourcen in glänzenden Apps zu verwenden.

Vielen Dank im Voraus! Und danke für die tolle Arbeit.

Prost,

Emelie

enhancement

Hilfreichster Kommentar

Falls jemand anderes das gleiche Problem hat, habe ich eine Problemumgehung gefunden, um Anmerkungen und Toleranzen zu Pods hinzuzufügen, die von Shiny Proxy gestartet werden.
In meinem Setup startet Shiny Proxy Pods in einem dedizierten Namespace. Ich habe neben Shinyproxy einen weiteren Container gestartet, der ständig alle Pods in diesem Namespace kommentiert und patcht.

(im Abschnitt spec der Bereitstellung):

- 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

Alle 5 Kommentare

Aus genau dem gleichen Grund möchte ich auch Anmerkungen zu Pods hinzufügen, die von Shiny Proxy gestartet werden. Ich habe versucht, den Code zu diesem Zweck zu ändern, aber meine Java-Kenntnisse sind nicht gut genug.

Wenn jemand das Projekt noch pflegt, wäre dies eine wirklich nützliche Funktion!

Falls jemand anderes das gleiche Problem hat, habe ich eine Problemumgehung gefunden, um Anmerkungen und Toleranzen zu Pods hinzuzufügen, die von Shiny Proxy gestartet werden.
In meinem Setup startet Shiny Proxy Pods in einem dedizierten Namespace. Ich habe neben Shinyproxy einen weiteren Container gestartet, der ständig alle Pods in diesem Namespace kommentiert und patcht.

(im Abschnitt spec der Bereitstellung):

- 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

gute Idee! Perfekt!

Hallo alle

Danke für deine PN!
Um nicht jede Kubernetes-Funktion in ContainerProxy implementieren zu müssen, haben wir uns entschieden, eine generische Methode zum Hinzufügen einer Kubernetes-spezifischen Konfiguration zu einer ContainerProxy-App hinzuzufügen. Diese Funktion heißt kubernetes-pod-patches und ermöglicht es, die Spezifikation des Pods zu patchen , bevor er von ContainerProxy erstellt wird.
Weitere Informationen zu dieser Funktion finden Sie hier (Sie müssen etwas nach unten scrollen).
Dies sollte Ihren Anwendungsfall abdecken. Fühlen Sie sich frei, ein Problem zu öffnen, wenn Sie ein Problem mit dieser Funktion haben.
Die Änderung ist nur im ShinyProxy 2.4.0 enthalten

Nochmals danke für deinen Beitrag.

Danke @LEDfan , diese Lösung ist wirklich großartig - sehen Sie es sich jetzt an!

Nach einigem Ausprobieren gelang es mir, es zum Hinzufügen von IAM-Rollenanmerkungen auf folgende Weise zum Laufen zu bringen:

  - 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>" }
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen