Plugin de Nomes de Contêineres Admin (Utilitário Sys Admin)

Estou feliz em compartilhar este plugin de administração do Discourse que adiciona os nomes dos containers (especificados no arquivo yml principal da aplicação) à aba de backups da página de administração. Este plugin utilitário é útil para administradores de sistemas do Discourse que executam configurações multi-container e desejam ver, de relance, qual container está em execução.

PRINTSCREEN

Este é um plugin simples, e meu primeiro “público”, então comentários e PRs são muito bem-vindos para melhorá-lo. As informações do container vêm de variáveis de ambiente no arquivo yml, por exemplo:

  • DISCOURSE_CONTAINER_MAIN
  • DISCOURSE_CONTAINER_DATA

Executamos vários containers simultaneamente para que possamos reconstruir os containers do Discourse e fazer a migração para eles com tempo de inatividade zero (alterando a configuração do proxy reverso), então, para nós, foi melhor codificar esse valor diretamente no arquivo yml em vez de obtê-lo de docker ps, pois docker ps não tem como saber qual container está habilitado pela configuração no proxy reverso.

A FAZER

Minhas habilidades com Ember são inferiores às dos especialistas em Discourse (ainda estou tentando aprender Ember), então tive alguns problemas em duas áreas, existindo pelo menos dois TODOs abertos. Agradeço um PR se alguém estiver interessado:

  1. Quando o aplicativo Discourse (GUI) está em execução e trocamos de containers (via alteração na configuração do proxy reverso), a página precisa ser recarregada (ou o plugin desabilitado e reabilitado). Não consegui fazer a propriedade computada atualizar automaticamente (tentei muitas técnicas diferentes).

  2. Não consegui fazer o I18N funcionar como esperado, então o elemento <span> está codificado no código JS em vez de residir na configuração de localidade (mas há espaços reservados no rascunho).

Como mencionado, PRs são bem-vindos, pois ainda sou um novato em plugins do Discourse!

Comentários e atualizações também são bem-vindos aqui:

PRs bem-vindos!

8 curtidas

Esse plugin parece realmente útil.
Obrigado!

3 curtidas

Não tenho ideia de como tornar o Ember reativo com propriedades computadas quando os containers são trocados via proxy reverso. Esse é, de fato, um tópico interessante e boa sorte com isso.

Apenas testei isso: troquei os containers alterando a configuração do proxy reverso e consegui atualizar desligando e ligando o plugin.

De qualquer forma… obrigado por esse plugin de utilidade, @neounix.

Aguardo futuras melhorias.

2 curtidas

Obrigado. Mas, na realidade, esse utilitário provavelmente é útil para menos de 1% de todos os administradores de sistema do Discourse, já que a maioria das instâncias do Discourse (uma suposição baseada nos posts no meta) executa um único container sem um proxy reverso (a configuração padrão suportada pelo Discourse).

Sim, tentei muitas maneiras diferentes, e o problema para mim, com base na minha “extrema inexperiência” em plugins do Discourse, é que só consegui ler a variável de ambiente GlobalSetting do yml em Ruby, mas o restante do plugin está escrito em JavaScript.

Também considerei reescrever o plugin para ser 100% Ruby, mas ainda não segui essa direção porque espero que alguém tenha uma ideia melhor ou até mesmo envie um PR com uma maneira de tornar as informações do container reativas no caso de alternância de proxy reverso, para que não seja necessário recarregar o aplicativo (reinicialização do plugin).

Obrigado pelo comentário.

2 curtidas