Pular para o conteúdo principal

⚙️ Configuração (ConfigMap)

Uma aplicação costuma precisar de ajustes: idioma, modo de execução, endereço de outro serviço. O ConfigMap guarda essas configurações fora da aplicação, como um "arquivo de configurações" separado do programa. Assim você muda um valor sem refazer a imagem do container.

aviso

ConfigMap é para dados não sensíveis. Para senhas, tokens e chaves, use Secrets.

informação

ConfigMaps são criados com o kubectl. O Painel Nuvion não tem uma tela para esse recurso.


🚀 Antes de começar​

🚀 1. Criar um ConfigMap​

kubectl create configmap app-config --from-literal=APP_MODE=producao --from-literal=APP_IDIOMA=pt-BR

Saída esperada: configmap/app-config created

🚀 2. Verificar o ConfigMap​

kubectl get configmap app-config
kubectl describe configmap app-config

O describe mostra as chaves (APP_MODE, APP_IDIOMA) e seus valores.

🚀 3. Usar o ConfigMap como variáveis de ambiente​

Crie o arquivo pod-config.yaml:

apiVersion: v1
kind: Pod
metadata:
name: pod-config
spec:
containers:
- name: app
image: busybox
command: ["sh", "-c", "echo Modo: $APP_MODE; echo Idioma: $APP_IDIOMA; sleep 3600"]
envFrom:
- configMapRef:
name: app-config

Aplique e veja o resultado:

kubectl apply -f pod-config.yaml
kubectl logs pod-config

Saída esperada:

Modo: producao
Idioma: pt-BR

🚀 4. Usar o ConfigMap como arquivo​

Algumas aplicações leem um arquivo de configuração. Crie um arquivo local chamado app.properties com este conteúdo:

cor=azul
logo=ativo

Crie o ConfigMap a partir do arquivo:

kubectl create configmap app-file --from-file=app.properties

Crie o arquivo pod-config-arquivo.yaml, que monta o ConfigMap na pasta /config:

apiVersion: v1
kind: Pod
metadata:
name: pod-config-arquivo
spec:
containers:
- name: app
image: busybox
command: ["sh", "-c", "sleep 3600"]
volumeMounts:
- name: config
mountPath: /config
volumes:
- name: config
configMap:
name: app-file
kubectl apply -f pod-config-arquivo.yaml
kubectl exec pod-config-arquivo -- cat /config/app.properties

🚀 5. Alterar um valor​

kubectl edit configmap app-config

Altere o valor desejado, salve e feche o editor.

aviso

As variáveis de ambiente só mudam quando o pod é recriado. Já os arquivos montados são atualizados sozinhos, com alguns segundos de atraso.

✅ Como saber se deu certo​

Os logs do passo 3 mostram os valores que você definiu, e o cat do passo 4 mostra o conteúdo do arquivo.

❗ Problemas comuns​

SintomaCausaSolução
Pod com CreateContainerConfigErrorO ConfigMap citado não existeConfira o nome com kubectl get configmap
Valor antigo no podVariável de ambiente não recarregaExclua e recrie o pod
configmap already existsNome já usadoUse outro nome ou exclua o existente

🧹 Limpeza​

kubectl delete pod pod-config pod-config-arquivo
kubectl delete configmap app-config app-file

➡️ Próximo passo: Secrets

🧠 Dúvidas?​

Fale com nosso time de suporte técnico da SaveinCloud!