Во-первых, спасибо за создание такой классной платформы - похоже, она удовлетворяет почти всем моим требованиям!
Одна вещь, которую я ищу, - это возможность динамически добавлять спецификации после запуска, чтобы нам не приходилось вручную перезапускать сервер для добавления нового приложения.
Я вижу, что 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.
Огромное спасибо!
Привет @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, для редактирования файла конфигурации.
По этой причине было бы здорово иметь возможность добавлять новые приложения с помощью пользовательского интерфейса администратора.
Теоретически и без усердного просмотра кода он должен быть таким же простым, как:
Будете ли вы открыты для Pull-запроса, добавляющего такие возможности?
Спасибо!
Привет @xtrasimplicity , Спасибо, что подумали. Мы работаем над механизмом делегирования добавления новых приложений, но на первом этапе он, вероятно, будет основываться на подходе GitOps, а не через пользовательский интерфейс.
Спасибо, @tverbeke. Вы знаете, когда, скорее всего, будет готов механизм делегирования? Или я могу как-то помочь в развитии этого?
GitOps полезен, но возможность делать это из графического интерфейса будет действительно полезна для сред, в которых GitOps на самом деле не используется!