Pular para o conteúdo principal

Config Maps

1. Visão Geral

Config Maps armazenam valores de configuração não sensíveis, visíveis a qualquer momento — URLs, nomes de host, flags, etc. — configuráveis por ambiente. É o equivalente a uma variável de ambiente "global" da aplicação, como a URL de um banco de dados de test versus a de production.

Use Config Maps quando o valor precisa variar por ambiente mas não é sigiloso — o valor pode ser consultado por qualquer pessoa com acesso à tela. Quando o valor é uma credencial ou dado sensível (senha, token), use uma Secret no lugar.

2. Criando um Config Map

A tela de criação segue a mesma estrutura da tela de Secrets:

Basic Information

CampoObrigatórioDescrição
Config MapSimNome do config map. Precisa seguir convenções do Kubernetes: apenas letras minúsculas, números e hífens.
TypeSimEscopo de dono do config map. Ex: Squad.
SquadSimSquad dono do config map (aparece quando Type = Squad). Padrão: Default.
DescriptionNãoDescrição livre do propósito do config map.

Properties

Um config map pode ter uma ou mais properties — pares chave/valor. Clique em + Add Property para adicionar uma nova.

CampoDescrição
Property NameNome da propriedade dentro do config map (ex: DB_URL, API_BASE_URL).
Values by EnvironmentUm valor diferente por ambiente (ex: test, production). Diferente de uma Secret, o valor fica visível normalmente, sem mascaramento.

Exemplo: um config map db-config com a property URL, com um valor para test (ex: URL do banco de testes) e outro para production (ex: URL do banco de produção).

Clique em Save para concluir.

3. Usando um Config Map em Flows, Backend e Frontend Apps

Assim como uma Secret, um config map precisa ser explicitamente vinculado ao Flow, Backend App ou Frontend App que vai usá-lo, na aba de configuração de acesso a secrets/config maps daquele Flow/App.

Depois de vinculado, o valor de uma property é acessado pela expressão:

{$.env.configmap_name.property_name}

Por exemplo, para acessar a property URL do config map db-config:

{$.env.db-config.URL}

O valor retornado é o correspondente ao ambiente em que o Flow/App está rodando.

4. Diferença entre Secret e Config Map

Config MapSecret
Uso típicoValores não sensíveis, configuráveis por ambiente (URLs, nomes de host, flags)Valores sensíveis (senhas, tokens, chaves)
Visibilidade do valorVisível normalmenteMascarado, mesmo após salvo
Formulário de criaçãoBasic Information + Properties (por ambiente)Basic Information + Properties (por ambiente)
Forma de acesso no Flow/App{$.env.nome.property}{$.env.nome.property}
Vinculação ao Flow/AppExplícita, na aba de secrets/config mapsExplícita, na aba de secrets/config maps

Na dúvida: se o valor pode ser exibido em texto puro sem risco (uma URL, por exemplo), use Config Map. Se o valor concede acesso a algo (senha, token, chave de API), use Secret.

5. Perguntas frequentes

Um config map pode ser usado por mais de um Flow ou App? TODO: confirmar se o mesmo config map pode ser vinculado a múltiplos Flows/Apps simultaneamente.

Dá para converter um Config Map em Secret (ou vice-versa) depois de criado? TODO: confirmar se existe conversão ou se é preciso recriar como o outro tipo.