Plugin de noms de conteneurs Admin (utilitaire d'administration système)

Je suis ravi de partager ce plugin d’administration Discourse qui ajoute les noms des conteneurs (spécifiés dans le fichier yml de l’application principale) à l’onglet Sauvegardes de la page d’administration. Ce plugin utilitaire est utile pour les administrateurs système Discourse qui gèrent des configurations multi-conteneurs et souhaitent voir d’un coup d’œil quel conteneur est en cours d’exécution.

CAPTURE D’ÉCRAN

Il s’agit d’un plugin simple, et mon premier « public », donc les commentaires et les demandes de fusion (PR) sont les bienvenus pour l’améliorer. Les informations sur les conteneurs proviennent des variables d’environnement dans le fichier yml, par exemple :

  • DISCOURSE_CONTAINER_MAIN
  • DISCOURSE_CONTAINER_DATA

Nous exécutons plusieurs conteneurs en direct simultanément afin de pouvoir reconstruire les conteneurs Discourse et basculer vers eux sans temps d’arrêt (en modifiant la configuration du proxy inverse). Pour nous, il était donc préférable d’écrire cette valeur en dur dans le fichier yml plutôt que de la récupérer via docker ps, car docker ps ne peut pas savoir quel conteneur est activé par la configuration du proxy inverse.

À FAIRE

Mes compétences en Ember sont faibles par rapport à celles des experts Discourse (j’essaie encore d’apprendre Ember), j’ai donc rencontré des problèmes dans deux domaines. Il y a donc au moins deux éléments TODO ouverts, et je serais ravi de recevoir une PR si quelqu’un est intéressé :

  1. Lorsque l’application Discourse (interface graphique) est en cours d’exécution et que nous changeons de conteneur (via un changement de configuration du proxy inverse), la page doit être rechargée (ou le plugin désactivé puis réactivé). Je n’ai pas réussi à faire en sorte que la propriété calculée se mette à jour automatiquement (j’ai essayé de nombreuses techniques différentes).

  2. Je n’ai pas réussi à faire fonctionner I18N comme prévu, l’élément <span> est donc écrit en dur dans le code JS plutôt que d’être défini dans la configuration de localisation (mais des espaces réservés pour le brouillon sont présents).

Comme mentionné, les PR sont les bienvenus, car je suis encore un novice dans les plugins Discourse !

Commentaires et mises à jour également les bienvenus ici :

PRs les bienvenus !

8 « J'aime »

Ce plugin semble vraiment utile. Merci !

3 « J'aime »

Je ne sais pas comment rendre Ember réactif avec des propriétés calculées lorsque les conteneurs sont changés via un proxy inverse. C’est en effet un sujet intéressant, et bonne chance avec ça.

Je viens de tester cela : en changeant de conteneur via la modification de la configuration du proxy inverse, j’ai obtenu une mise à jour en désactivant puis en réactivant le plugin.

Quoi qu’il en soit… merci pour ce plugin utilitaire @neounix.

J’attends avec impatience les futures améliorations.

2 « J'aime »

Merci. Mais en réalité, cet utilitaire est probablement utile pour moins de 1 % de tous les administrateurs système de Discourse, car la plupart des instances Discourse (une estimation sauvage basée sur les posts sur Meta) fonctionnent avec un seul conteneur sans proxy inverse (la configuration standard prise en charge par Discourse).

Oui, j’ai essayé de nombreuses façons différentes, et le problème pour moi, basé sur mon « extrême inexpérience » dans les plugins Discourse, est que je ne pouvais lire que la variable d’environnement GlobalSetting depuis le fichier yml en Ruby, tandis que le reste du plugin est écrit en JavaScript.

J’ai également envisagé de réécrire le plugin pour qu’il soit 100 % Ruby, mais je ne suis pas encore allé dans cette direction car j’espère que quelqu’un aura une meilleure idée, ou même proposera une PR pour rendre les informations du conteneur réactives dans le cas d’un basculement via proxy inverse, afin qu’un rechargement de l’application (réinitialisation du plugin) ne soit pas nécessaire.

Merci pour votre commentaire.

2 « J'aime »