Closed caiomarcatti12 closed 4 months ago
Fiz o push dos arquivos utilizados nessa poc em meu github
https://github.com/caiomarcatti12/magalu-cloud/tree/main/cli/docker
Introduzir uma maneira de fazer login automaticamente usando um token, ideal para automatizar processos em pipelines, onde não dá pra interagir manualmente.
Sugestão de Implementação:
Adicionar um argumento --token
que você pode usar para passar seu token de autenticação quando for executar a CLI:
mgc auth login --token seu-token-aqui
Impacto Esperado:
Todas essas mudanças vão tornar a CLI mais amigável e fácil de usar em qualquer ambiente, desde o desenvolvimento até a produção, e facilitar a vida de quem precisa lidar com diferentes configurações de rede ou segurança, além de ajudar em automações.
Proposta de Melhoria: Autenticação Automática com Token
Introduzir uma maneira de fazer login automaticamente usando um token, ideal para automatizar processos em pipelines, onde não dá pra interagir manualmente.
Sugestão de Implementação:
Adicionar um argumento
--token
que você pode usar para passar seu token de autenticação quando for executar a CLI:mgc auth login --token seu-token-aqui
Impacto Esperado:
Todas essas mudanças vão tornar a CLI mais amigável e fácil de usar em qualquer ambiente, desde o desenvolvimento até a produção, e facilitar a vida de quem precisa lidar com diferentes configurações de rede ou segurança, além de ajudar em automações.
Preciso disso nesse momento, estou montando uma pipeline no github actions, mas estou bloqueado por conta de autenticação de CLI, vou ter que fazer via kube config.
Estamos ai no aguardo, @joelsonm
Estamos ai no aguardo, @joelsonm
Estamos trabalhando nessa feature, mais novidades em breve :)
Tenta usar o mgc auth login --headless e com a config em mãos, configurar o $HOME/.config/mgc/default/auth.yaml
Tenta usar o mgc auth login --headless e com a config em mãos, configurar o $HOME/.config/mgc/default/auth.yaml
Opa @antonionovaesjr, pelo que a equipe da MGC me passou, esse token expira, ou seja, para fins de CI/CD é inviável.
Vamos trocar experiências https://t.me/openmagalucloud
@joelsonm saiu feature nova que pode te ajudar
@publi0 uma possibilidade em usar método semelhante da AWS quando usa sso, o Cli da AWS tem um mecanismo de confiar no dispositivo após uma autenticação válida, após isso o refresh do token eh automático
Vou realizar um teste nessa nova feature e te respondo em breve.
Estarei avaliando a usabilidade, pois lancando diretamente no terraform, nao tenho a mesma flexibilidade do cli
Muito obrigado
@joelsonm saiu feature nova que pode te ajudar
Opa @antonionovaesjr, vou dar uma olhada nisso, hoje estou acessando o k8s através do kube config, criei um secret no git action com o yaml. Ta rolando haha
@caiomarcatti12 a CLI ainda não foi lapidada para pleno funcionamento dentro de containers.
Porém, fizemos a inclusão de uma variavel de ambiente MGC_LISTEN_ADDRESS
que permite a alteração do ip que será feito o listen do callback.
Aguardo seu feedback para que possamos melhorar a CLI =) Att. Gefferson Ferraz DEV MGC CLI/TF
Encontrei um possivel bug ao tentar acessar aplicação de autenticação rodando dentro de um container Docker através do
localhost
no meu host. A aplicação está configurada para ouvir apenas em127.0.0.1
, o que impede o acesso externo, incluindo o acesso do host onde o Docker está rodando.Simulação:
Este comando irá inicializar um container interativo para uso do cli mgc.
Será produzido uma saída como esta.
A saída do comando anterior indica que a aplicação está sendo servida em 127.0.0.1:8095, confirmando que a aplicação só pode ser acessada de dentro do próprio host (neste caso, o container).
Proposta de Melhoria: Variavel de ambiente para host do servidor de autenticação
Seria útil se pudéssemos configurar o endereço IP em que o servidor da aplicação ouve. Isso não apenas resolveria o problema de acessar a aplicação através do Docker, mas também melhoraria a flexibilidade e adaptabilidade da aplicação em diferentes ambientes de deploy.
Sugestão de Implementação: Introduzir uma variável de ambiente, por exemplo,
HOST_AUTH_SERVER
, que pode ser usada para configurar o IP em que a aplicação deve ouvir. A implementação poderia verificar essa variável e, se não configurada, fallback para127.0.0.1
. Isso permitiria que a aplicação ouvisse em0.0.0.0
quando necessário, facilitando a conexão via Docker.Impacto Esperado: Esta mudança tornaria a aplicação mais amigável para uso em containers, permitindo acesso externo quando configurado para ouvir em todos os endereços IP. Além disso, aumentaria a versatilidade da aplicação em diferentes cenários de deployment, desde desenvolvimento até produção.
A sua análise e a proposta de melhoria são bastante relevantes para facilitar a utilização de aplicações em containers, e suas sugestões poderiam realmente melhorar a flexibilidade do sistema. Aqui estão duas propostas adicionais que complementam as suas ideias:
Proposta de Melhoria: Polling de Autenticação
Sugestão de Implementação: Introduzir um argumento opcional no comando de login, como
--watch
ou--poll
, que, quando utilizado, ativa um polling automático que verifica o estado do login em intervalos regulares. Isso eliminaria a necessidade do usuário verificar manualmente se o desafio de login foi completado. Por exemplo:Essa implementação poderia utilizar um loop simples que faz requisições para uma API ou endpoint que verifica o estado do desafio de autenticação até que uma resposta bem-sucedida seja retornada, facilitando o processo para o usuário.
Proposta de Melhoria: Personalização de Redirecionamento
Sugestão de Implementação: Permitir a configuração de uma URL de redirecionamento customizada por meio de uma variável de ambiente ou diretamente como um argumento de comando. Isso seria útil em cenários onde o acesso é feito através de um bastion ou quando há restrições de rede que exigem redirecionamentos específicos. Por exemplo:
Isso permitiria que o fluxo de autenticação seja integrado com sistemas externos e personalizados, adequando-se a várias configurações de rede ou segurança.
Impacto Esperado: Essas melhorias aumentariam a automação e a personalização do processo de autenticação, tornando a CLI mais adaptável a diferentes ambientes e necessidades dos usuários, e proporcionando uma experiência mais fluida e menos propensa a erros manuais.
Essas propostas alinham-se ao objetivo de tornar a CLI mais amigável e versátil, especialmente em ambientes complexos de TI, como em setups de desenvolvimento, testes e produção variados.