Shinyproxy: Penambahan spesifikasi yang dinamis pasca-startup

Dibuat pada 17 Okt 2020  ·  5Komentar  ·  Sumber: openanalytics/shinyproxy

Pertama, terima kasih telah membuat platform yang luar biasa - ini sepertinya memenuhi hampir semua persyaratan saya!

Namun, satu hal yang saya cari adalah kemampuan untuk menambahkan spesifikasi secara dinamis setelah pengaktifan, sehingga kita tidak perlu me-restart server secara manual untuk menambahkan aplikasi baru.

Saya dapat melihat bahwa ProxySpecs dan ContainerSpecs (yang menjadi dasar ShinyProxy ) menawarkan dukungan untuk ini menggunakan permintaan POST, tetapi secara eksplisit tidak didukung di ShinyProxy . Apakah ada alasan khusus untuk ini? Apakah ini sesuatu yang ingin Anda tambahkan?

ProxySpecs dan ContainerSpecs juga dapat diberikan saat runtime, melalui isi permintaan POST.
Catatan: ShinyProxy tidak mengizinkan spesifikasi disediakan saat runtime. Hanya spesifikasi dari file application.yml yang diterima.
Sumber

Rencana saya adalah untuk menyebarkan ini di server dan mengizinkan orang-orang tertentu dalam organisasi untuk mendaftarkan aplikasi baru atas nama tim proyek mereka, tanpa saya harus membuat ShinyProxy offline (bahkan selama beberapa detik) untuk menambahkan aplikasi baru. Idealnya, antarmuka manajemen ini akan ada di dalam ShinyProxy, tetapi saya senang membuat dasbor kecil saya sendiri untuk menangani ini.

Saya senang untuk berkontribusi beberapa waktu untuk membantu pengembangan ini, jika diperlukan - hanya ingin memeriksa untuk melihat apakah ada alasan khusus mengapa ini tidak didukung, dan apakah Anda akan terbuka untuk memiliki fungsi ini.

Saya telah melihat-lihat beberapa tiket yang lebih lama dan telah membaca bahwa salah satu masalah dengan ini adalah bahwa beberapa konfigurasi server lain tidak dapat dimuat ulang, tetapi saya bertanya-tanya apakah ini dapat diselesaikan dengan menambahkan dynamic_specs atribut ke file application.yml , sehingga pengguna dapat memilih apakah mereka ingin mendukung spesifikasi dinamis atau ditentukan secara manual (tetapi tidak harus keduanya, jika itu menimbulkan kompleksitas yang signifikan dari perspektif arsitektur)?

misalnya

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

Terima kasih banyak!

Semua 5 komentar

Hai @xtrasimplicity Ini dapat dicapai dengan menggunakan operator ShinyProxy kami. Deskripsi tingkat tinggi ditawarkan di https://www.openanalytics.eu/blog/2020/10/12/shinyproxy-2.4.0/ dan dokumentasi lebih lanjut tersedia di repositori Github khusus

Terima kasih, @tverbeke. Saya melihat sekilas, tetapi tampaknya lebih Kubernetes sentris. Apakah ini bekerja dengan kawanan/mesin Docker juga?

Sunting: Juga, ini terlihat sedikit lebih kompleks daripada yang ada dalam pikiran saya. Jika saya mengirimkan PR untuk ShinyProxy yang menambahkan dukungan untuk menambahkan aplikasi baru menggunakan UI admin (dan mempertahankan konfigurasi seperti itu dalam database), apakah Anda bersedia untuk menggabungkannya?

Hai @tverbeke , Saya telah membaca lebih banyak tentang Operator ShinyProxy dan saya pikir saya sudah memahaminya.

Meskipun itu akan menyelesaikan sebagian besar masalah saya, akan menyenangkan untuk dapat mendelegasikan penambahan aplikasi baru ke pengguna tertentu yang mungkin tidak terbiasa mengedit file konfigurasi, dll - atau dalam situasi di mana saya tidak ingin melakukannya berikan seseorang akses SSH (dalam bentuk apa pun, tidak peduli seberapa terbatasnya) ke server yang menjalankan ShinyProxy untuk mengedit file konfigurasi.

Untuk alasan ini, akan sangat bagus untuk dapat menambahkan aplikasi baru menggunakan UI Admin.

Secara teoritis, dan tanpa _heavily_ meninjau kode, _seharusnya_ sesederhana:

  1. Menambahkan kemampuan untuk mengambil definisi spesifikasi dari database (sqlite harus cukup?), Selain dari file konfigurasi.
  2. Memperbarui UI admin untuk mendukung pendaftaran definisi spesifikasi baru dan menyimpannya dalam database.

Apakah Anda terbuka untuk permintaan Tarik yang menambahkan kemampuan seperti itu?

Terima kasih!

Hai @xtrasimplicity , Terima kasih banyak telah berpikir bersama. Kami sedang mengerjakan mekanisme untuk mendelegasikan penambahan aplikasi baru, tetapi pada tahap pertama mungkin akan didorong oleh pendekatan GitOps daripada melalui antarmuka pengguna.

Terima kasih, @tverbeke. Apakah Anda tahu kapan mekanisme pendelegasian kemungkinan akan siap? Atau bisakah saya membantu pengembangan ini?

GitOps berguna, tetapi dapat melakukan ini dari GUI akan sangat berguna untuk lingkungan di mana GitOps tidak benar-benar digunakan juga!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

PauloJhonny picture PauloJhonny  ·  8Komentar

fmmattioni picture fmmattioni  ·  3Komentar

algo-se picture algo-se  ·  6Komentar

lucius-verus-fan picture lucius-verus-fan  ·  7Komentar

chienyuchuan picture chienyuchuan  ·  8Komentar