Plugin de Nombres de Contenedores para Administradores (Utilidad de Sys Admin)

Estoy muy contento de compartir este plugin de administración de Discourse que añade los nombres de los contenedores (especificados en el archivo yml de la aplicación principal) a la pestaña de copias de seguridad de la página de administración. Esta utilidad es muy útil para los administradores de sistemas de Discourse que ejecutan configuraciones de múltiples contenedores y desean ver de un vistazo qué contenedor está en ejecución.

CAPTURA DE PANTALLA

Este es un plugin sencillo, y mi primer “público”, así que los comentarios y las PRs son muy bienvenidos para mejorarlo. La información del contenedor proviene de variables de entorno en el archivo yml, por ejemplo:

  • DISCOURSE_CONTAINER_MAIN
  • DISCOURSE_CONTAINER_DATA

Ejecutamos múltiples contenedores en vivo al mismo tiempo para poder reconstruir los contenedores de Discourse y cambiar a ellos con tiempo de inactividad cero (cambiando la configuración del proxy inverso), por lo que para nosotros fue mejor codificar este valor directamente en el archivo yml en lugar de obtenerlo de docker ps, ya que docker ps no tiene forma de saber qué contenedor está habilitado por la configuración en el proxy inverso.

POR HACER

Mis habilidades con Ember son pobres en comparación con los expertos de Discourse (todavía estoy tratando de aprender Ember), por lo que tuve algunos problemas en dos áreas, así que hay al menos dos tareas pendientes abiertas, y agradezco una PR si alguien está interesado:

  1. Cuando la aplicación de Discourse (GUI) está en ejecución y cambiamos de contenedor (mediante un cambio en la configuración del proxy inverso), la página debe recargarse (o el plugin debe deshabilitarse y volver a habilitarse). No pude lograr que la propiedad calculada se actualice automáticamente (probé muchas técnicas diferentes).

  2. No pude hacer que I18N funcionara como se esperaba, por lo que el elemento <span> está codificado directamente en el código JS en lugar de residir en la configuración de localización (aunque los marcadores de posición de borrador están presentes).

Como se mencionó, las PRs son bienvenidas, ¡ya que todavía soy un novato en plugins de Discourse!

Comentarios y actualizaciones también bienvenidos aquí:

¡PRs bienvenidas!

8 Me gusta

Este complemento parece realmente útil.
¡Gracias!

3 Me gusta

No tengo idea de cómo hacer que Ember sea reactivo con propiedades calculadas cuando se cambian los contenedores a través de un proxy inverso. Es, de hecho, un tema interesante y mucha suerte con ello.

Acabo de probar esto: cambié de contenedor modificando la configuración del proxy inverso y logré que se actualizara desactivando y volviendo a activar el plugin.

De todos modos… gracias por este plugin de utilidad, @neounix.

Espero con interés las mejoras futuras.

2 Me gusta

Gracias. Pero en realidad, esta utilidad probablemente sea útil para menos del 1% de todos los administradores de sistemas de Discourse, ya que la mayoría de las instancias de Discourse (una suposición arriesgada basada en los posts en meta) ejecutan un solo contenedor sin un proxy inverso (la configuración estándar admitida por Discourse).

Sí, probé muchas formas diferentes, y el problema para mí, basándome en mi “extrema novatada” en los plugins de Discourse, es que solo podía leer la variable de entorno GlobalSetting desde yml en Ruby, pero el resto del plugin está escrito en JavaScript.

También consideré reescribir el plugin para que fuera 100% Ruby, pero aún no seguí esa dirección porque espero que alguien tenga una mejor idea o incluso haga un PR con una forma de hacer que la información del contenedor sea reactiva en el caso de cambio de proxy inverso, para que no sea necesario recargar la aplicación (reinicialización del plugin).

Gracias por comentar.

2 Me gusta