Kubernetes - configurações diferentes por ambiente
Temos um aplicativo que roda no GKE Kubernetes e espera que um URL de autenticação (para o qual o usuário será redirecionado através do navegador) seja transmitido como variável de ambiente.
Estamos usando diferentes namespaces por ambiente
Portanto, nossa configuração atual do pod é mais ou menos assim:
env:
- name: ENV
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: AUTH_URL
value: https://auth.$(ENV).example.org
E tudo funciona surpreendentemente, podemos ter quantos ambientes dinâmicos quisermos, apenas aplicamos -f config.yaml e funciona perfeitamente sem alterar um único arquivo de configuração e sem scripts de terceiros.
Agora, para produção, queremos usar um domínio diferente, então o padrão geralhttps://auth.$(ENV).example.org
não funciona mais.
Que opções temos?
Como as configurações estão no git repo, crie uma ramificação separada paraprod
meio AmbienteTenha um ConfigMap padrão e um específico para o ambiente prod e execute-o através de algum script (se existir)prod-config.yaml
então use isso, então useconfig.yaml
) - mas com essa abordagem, não podemos mais usar o kubectl diretamenteMova essa configuração para o nível do aplicativo e tenha um arquivo de configuração separado paraprod
env - mas esse tipo de ação é contra o aplicativo 12factor?De outros...?