-
Notifications
You must be signed in to change notification settings - Fork 1
Sealed Secrets
Antes de executar os passos anteriores, é necessário configurar o acesso ao Google Cloud e Kubernetes.
Siga a documentação oficial
ou execute:
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-linux-x86_64.tar.gz
tar -xf google-cloud-cli-linux-x86_64.tar.gz
./google-cloud-sdk/install.shApós a instalação, abra um novo terminal.
No WSL, o navegador pode não abrir automaticamente. Copie e cole o link exibido no terminal em seu navegador para concluir a autenticação.
gcloud auth login
gcloud config set project basedosdados-devgcloud components install kubectl
kubectl version --clientVerifique o plugin do GKE:
gke-gcloud-auth-plugin --versionSe o comando não existir:
gcloud components install gke-gcloud-auth-plugin
gke-gcloud-auth-plugin --versiongcloud container clusters get-credentials basedosdados-dev-gke --location=us-central1-ckubectl get namespaces
Se listar os namespaces corretamente, a configuração está concluída.
Para mudar ou criar uma secret no Agente do Kubernetes é preciso seguir os seguintes passos:
Antes de criar ou atualizar uma Secret, é necessário converter o valor em Base64.
- Utilize a ferramenta Base64Encode.org.
- Insira o valor puro (texto original) e copie o valor convertido.
Exemplo:
Valor original: shablauzin
Valor codificado (base64): c2hhYmxhdXppbg==
Crie um novo arquivo temporário com as Secrets codificadas.
-
Localize a pasta do ambiente onde deseja modificar a Secret.
Exemplo:k8s/website/django/development -
Se o arquivo existente for
secret-01_sealed.yaml, nomeie o novo arquivo comosecret-01.yaml.
Template de exemplo:
apiVersion: v1
kind: Secret
metadata:
name: gcp-credentials
namespace: prefect-agent-basedosdados-perguntas
data:
MOVIE_A: S1VOR19GVV9NQU5HQQ==
MOVIE_B: REVTSVJDQUJMRV9NRQ==🔹 Atenção:
- O campo
metadata.nameemetadata.namespacedevem ser os mesmos do arquivo que será substituído (secret-0X_sealed.yaml).- Em
data, inclua as variáveis e valores codificados em Base64.
- Instale o kubeseal
- No terminal, vá até o diretório onde o arquivo
secret_0X.yamlfoi criado:cd k8s/website/django/development - Execute o comando:
kubeseal --format yaml < secret-01.yaml > new-sealed-secrets.yaml
Aguarde até o terminal finalizar a execução.
O arquivonew-sealed-secrets.yamlserá criado com os valores protegidos (Base64 + Kubeseal).
- Copie o conteúdo do arquivo
new-sealed-secrets.yaml. - Crie um novo arquivo selado incrementando o número da versão anterior.
Exemplo:
secret-01_sealed.yaml→secret-02_sealed.yaml - Mantenha todas as variáveis antigas, adicionando apenas as novas ou atualizadas.
Antes de aplicar, valide o novo arquivo:
cat secret-02_sealed.yaml | kubeseal --validate- Sem erros: prossiga.
- Erro encontrado: revise os passos 2 a 4 e gere novamente a Secret.
Para aplicar as mudanças:
kubectl apply -f secret-02_sealed.yamlA saída deve indicar que o recurso foi configurado com sucesso.
- Acesse:
GCP Console → Kubernetes → Secrets & ConfigMaps - Abra a Secret do ambiente atualizado.
- Clique em GET YAML no Cloud Shell.
- Copie o valor da variável e valide o Base64 com:
echo <secret_value> | base64 -d
- Compare com o valor original.
- Se estiver correto, a atualização foi bem-sucedida.
- Caso contrário, repita o passo 6 e reinicie o pod para recarregar as variáveis.
Após validar, crie um Pull Request para a branch main, incluindo apenas o arquivo atualizado:
secret-02_sealed.yaml
Mantenha o repositório sempre atualizado — isso garante o histórico de alterações e facilita auditorias futuras.