Shinyproxy: Dynamisches Hinzufügen von Spezifikationen nach dem Start

Erstellt am 17. Okt. 2020  ·  5Kommentare  ·  Quelle: openanalytics/shinyproxy

Zunächst einmal vielen Dank, dass Sie eine so großartige Plattform erstellt haben - sie scheint fast alle meine Anforderungen zu erfüllen!

Eine Sache, die ich jedoch suche, ist die Möglichkeit, Spezifikationen nach dem Start dynamisch hinzuzufügen, damit wir den Server nicht manuell neu starten müssen, um eine neue App hinzuzufügen.

Ich kann sehen, dass ProxySpecs und ContainerSpecs (auf denen ShinyProxy basiert) dies mithilfe einer POST-Anfrage unterstützen, dies jedoch in ShinyProxy ausdrücklich nicht unterstützt wird.

ProxySpecs und ContainerSpecs können auch zur Laufzeit über den Textkörper einer POST-Anforderung bereitgestellt werden.
Hinweis: ShinyProxy lässt die Bereitstellung von Spezifikationen zur Laufzeit nicht zu. Es werden nur Spezifikationen aus der Datei application.yml akzeptiert.
Quelle

Mein Plan ist es, dies auf einem Server bereitzustellen und es bestimmten Personen innerhalb der Organisation zu ermöglichen, neue Anwendungen im Namen ihrer Projektteams zu registrieren, ohne dass ich ShinyProxy offline nehmen muss (auch nur für ein paar Sekunden), um eine neue Anwendung hinzuzufügen. Idealerweise würde diese Verwaltungsoberfläche innerhalb von ShinyProxy existieren, aber ich freue mich, mein eigenes kleines Dashboard zu erstellen, um dies zu handhaben.

Ich freue mich, bei Bedarf etwas Zeit bei der Entwicklung dieser Funktion zu leisten - wollte nur prüfen, ob es einen bestimmten Grund gibt, warum dies nicht unterstützt wird und ob Sie offen für diese Funktionalität wären.

Ich habe mir einige der älteren Tickets angesehen und gelesen, dass eine der Bedenken dabei ist, dass einige der anderen Serverkonfigurationen nicht im laufenden Betrieb neu geladen werden können, aber ich frage mich, ob dies durch Hinzufügen eines dynamic_specs umgangen werden könnte application.yml , damit Benutzer wählen können, ob sie dynamische Spezifikationen oder manuell definierte Spezifikationen unterstützen möchten (aber nicht unbedingt beides, wenn dies aus architektonischer Sicht zu erheblicher Komplexität führt)?

z.B

proxy:
  port: 8080
  ...
  dynamic_specs: true
  specs: # Left blank, if `dynamic_specs` is true.

Vielen Dank!

Alle 5 Kommentare

Hallo @xtrasimplicity Dies kann mit unserem ShinyProxy-Operator erreicht werden. Eine High-Level-Beschreibung wird in https://www.openanalytics.eu/blog/2020/10/12/shinyproxy-2.4.0/ angeboten und weitere Dokumentation ist in seinem dedizierten Github-Repository verfügbar

Danke, @tverbeke. Ich habe einen kurzen Blick darauf geworfen, aber es scheint mehr Kubernetes-zentriert zu sein. Funktioniert das auch mit Docker Swarm/Engine?

Edit: Außerdem sieht es etwas komplexer aus, als ich es mir vorgestellt hatte. Wenn ich eine PR für ShinyProxy einreichen würde, die Unterstützung für das Hinzufügen neuer Apps über die Admin-Benutzeroberfläche (und das Beibehalten einer solchen Konfiguration in einer Datenbank) hinzufügt, wären Sie bereit, sie zusammenzuführen?

Hallo @tverbeke , ich habe ShinyProxy Operator ein bisschen mehr gelesen und denke, ich habe meinen Kopf darüber.

Obwohl es die meisten meiner Probleme lösen würde, wäre es schön, das Hinzufügen neuer Apps an bestimmte Benutzer delegieren zu können, die sonst möglicherweise nicht mit der Bearbeitung von Konfigurationsdateien usw. vertraut sind - oder in Situationen, in denen ich dies nicht möchte. Gewähren Sie jemandem SSH-Zugriff (in jeder Form, egal wie eingeschränkt) auf den Server, auf dem ShinyProxy ausgeführt wird, um die Konfigurationsdatei zu bearbeiten.

Aus diesem Grund wäre es großartig, neue Apps über die Admin-Benutzeroberfläche hinzufügen zu können.

Theoretisch und ohne den Code _stark_ überprüft zu haben, _sollte_ er so einfach sein wie:

  1. Hinzufügen der Möglichkeit, Spezifikationsdefinitionen aus einer Datenbank (sqlite sollte ausreichen?) zu holen, zusätzlich zur Konfigurationsdatei.
  2. Aktualisieren der Admin-Benutzeroberfläche, um die Registrierung neuer Spezifikationsdefinitionen und deren Speicherung in der Datenbank zu unterstützen.

Wären Sie offen für eine Pull-Anfrage, die solche Funktionen hinzufügt?

Vielen Dank!

Hallo @xtrasimplicity , vielen Dank fürs Mitdenken. Wir arbeiten an einem Mechanismus, um das Hinzufügen neuer Apps zu delegieren, aber in einer ersten Phase wird dies wahrscheinlich eher durch einen GitOps-Ansatz als durch eine Benutzeroberfläche gesteuert.

Danke, @tverbeke. Wissen Sie, wann der Delegationsmechanismus voraussichtlich fertig sein wird? Oder kann ich bei der Entwicklung irgendwie helfen?

GitOps ist nützlich, aber dies über die GUI tun zu können, wäre auch für Umgebungen sehr nützlich, in denen GitOps nicht wirklich verwendet wird!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

jat255 picture jat255  ·  6Kommentare

fmmattioni picture fmmattioni  ·  3Kommentare

jat255 picture jat255  ·  4Kommentare

lucius-verus-fan picture lucius-verus-fan  ·  8Kommentare

PauloJhonny picture PauloJhonny  ·  8Kommentare