Minha organização está usando o Openshift para executar vários aplicativos. Nossa política até agora tem sido sempre armazenar valores confidenciais (senhas de banco de dados, chaves de API, etc.) em variáveis de ambiente e nunca como parte da base de código. No entanto, vários projetos, cada um com instâncias de Dev, QA e Prod, levam a muitas variáveis de ambiente que precisam ser gerenciadas.
Para ajudar com isso, escrevi algumas ferramentas para podermos rastrear variáveis em arquivos YAML e, em seguida, aplicá-las declarativamente a uma configuração de implantação do Openshift. Até agora, esses arquivos YAML estão em um repositório git somente local na minha estação de trabalho. Isso, porém, tem as desvantagens óbvias de torná-lo inutilizável para outras pessoas da equipe de desenvolvimento. No entanto, lidar com isso como todos os nossos outros repositórios git e enviá-lo para o Gitlab ou Github parece inaceitavelmente arriscado.
Talvez pudéssemos escrever ganchos git para criptografar automaticamente os arquivos pelo GPG antes de confirmar e descriptografar após extrair? Qual é a maneira recomendada de armazenar e compartilhar repositórios confidenciais como esse entre as equipes?
Responder1
Nós usamostranscreverpara esse tipo de coisa e acho que funciona muito bem.
Outra opção é usar um sistema de armazenamento secreto adequado como o da HashiCorpCofre.