Shinyproxy: Динамическое добавление спецификаций после запуска

Созданный на 17 окт. 2020  ·  5Комментарии  ·  Источник: openanalytics/shinyproxy

Во-первых, спасибо за создание такой классной платформы - похоже, она удовлетворяет почти всем моим требованиям!

Одна вещь, которую я ищу, - это возможность динамически добавлять спецификации после запуска, чтобы нам не приходилось вручную перезапускать сервер для добавления нового приложения.

Я вижу, что ProxySpecs и ContainerSpecs (на которых основан ShinyProxy ) предлагают поддержку для этого с помощью запроса POST, но это явно не поддерживается в ShinyProxy . Есть ли для этого конкретная причина? Вы готовы добавить это?

ProxySpecs и ContainerSpecs также могут быть предоставлены во время выполнения через тело запроса POST.
Примечание. ShinyProxy не позволяет предоставлять спецификации во время выполнения. Принимаются только спецификации из файла application.yml.
Источник

Я планирую развернуть это на сервере и разрешить определенным людям в организации регистрировать новые приложения от имени своих проектных групп, без необходимости отключать ShinyProxy (даже на несколько секунд) для добавления нового приложения. В идеале этот интерфейс управления должен существовать в ShinyProxy, но я счастлив создать свою небольшую панель управления, чтобы справиться с этим.

Я счастлив потратить некоторое время на помощь в разработке этого, если потребуется - просто хотел проверить, есть ли какая-то конкретная причина, по которой это не поддерживается, и готовы ли вы использовать эту функцию.

Я просмотрел некоторые из старых билетов и прочитал, что одна из проблем, связанных с этим, заключается в том, что некоторая другая конфигурация сервера не может быть перезагружена в горячем режиме, но мне интересно, можно ли это обойти, добавив dynamic_specs атрибут файла application.yml , чтобы пользователи могли выбирать, хотят ли они поддерживать динамические спецификации или определенные вручную (но не обязательно и то, и другое, если это вносит значительную сложность с архитектурной точки зрения)?

например

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

Огромное спасибо!

Все 5 Комментарий

Привет @xtrasimplicity Этого можно добиться с помощью нашего оператора ShinyProxy. Описание высокого уровня предлагается в https://www.openanalytics.eu/blog/2020/10/12/shinyproxy-2.4.0/, а дополнительная документация доступна в специальном репозитории Github.

Спасибо, @tverbeke. Я быстро посмотрел, но он кажется более ориентированным на Kubernetes. Работает ли это и с Docker swarm / engine?

Изменить: Кроме того, это выглядит немного сложнее, чем я имел в виду. Если бы я отправил PR для ShinyProxy, который добавляет поддержку для добавления новых приложений с использованием пользовательского интерфейса администратора (и сохранения такой конфигурации в базе данных), вы бы открыли для ее объединения?

Привет @tverbeke , я немного больше читал ShinyProxy Operator, и я думаю, что у меня есть голова вокруг.

Хотя это решило бы большинство моих проблем, было бы неплохо иметь возможность делегировать добавление новых приложений конкретным пользователям, которые в противном случае могли бы не быть знакомы с редактированием файлов конфигурации и т. Д. - или в ситуациях, когда я не хочу предоставить кому-либо доступ по SSH (в любой форме, независимо от степени ограничения) к серверу, на котором запущен ShinyProxy, для редактирования файла конфигурации.

По этой причине было бы здорово иметь возможность добавлять новые приложения с помощью пользовательского интерфейса администратора.

Теоретически и без усердного просмотра кода он должен быть таким же простым, как:

  1. Добавление возможности получения определений спецификаций из базы данных (должно быть достаточно sqlite?) В дополнение к из файла конфигурации.
  2. Обновление пользовательского интерфейса администратора для поддержки регистрации новых определений спецификаций и их сохранения в базе данных.

Будете ли вы открыты для Pull-запроса, добавляющего такие возможности?

Спасибо!

Привет @xtrasimplicity , Спасибо, что подумали. Мы работаем над механизмом делегирования добавления новых приложений, но на первом этапе он, вероятно, будет основываться на подходе GitOps, а не через пользовательский интерфейс.

Спасибо, @tverbeke. Вы знаете, когда, скорее всего, будет готов механизм делегирования? Или я могу как-то помочь в развитии этого?

GitOps полезен, но возможность делать это из графического интерфейса будет действительно полезна для сред, в которых GitOps на самом деле не используется!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги