Atualizar uma repository secret do ArgoCD
Use este procedimento quando o ArgoCD perder acesso a um repositório privado — por exemplo, após rotacionar um token de acesso pessoal (PAT) ou chave SSH.
Pré-requisitos
kubectlconfigurado com acesso ao cluster- O novo token ou chave SSH disponível
Procedimento
1. Identificar a secret existente
As repository secrets ficam no namespace argocd e possuem a label argocd.argoproj.io/secret-type: repository.
kubectl get secrets -n argocd -l argocd.argoproj.io/secret-type=repository
Identifique o nome da secret correspondente ao repositório que deseja atualizar.
2. Verificar o conteúdo atual
kubectl get secret <nome-da-secret> -n argocd -o yaml
Os valores são encodados em base64. Para decodificar:
kubectl get secret <nome-da-secret> -n argocd \
-o jsonpath='{.data.url}' | base64 -d
3. Atualizar o token ou chave
Para autenticação via HTTPS (token):
kubectl patch secret <nome-da-secret> -n argocd \
--type='json' \
-p='[{"op": "replace", "path": "/data/password", "value": "'$(echo -n "<novo-token>" | base64)'"}]'
Para autenticação via SSH (chave privada):
kubectl patch secret <nome-da-secret> -n argocd \
--type='json' \
-p='[{"op": "replace", "path": "/data/sshPrivateKey", "value": "'$(base64 -w0 < ~/.ssh/id_ed25519)'"}]'
4. Forçar o ArgoCD a recarregar
O ArgoCD detecta a mudança automaticamente em alguns segundos. Se o erro persistir, force o refresh manualmente:
kubectl rollout restart deployment argocd-repo-server -n argocd
5. Verificar
No ArgoCD UI, acesse Settings → Repositories e confirme que o status do repositório está Successful. Alternativamente:
kubectl logs -n argocd -l app.kubernetes.io/name=argocd-repo-server --tail=50
Criar uma nova secret do zero
Se a secret não existir, crie-a com o seguinte manifesto:
apiVersion: v1
kind: Secret
metadata:
name: repo-<nome-descritivo>
namespace: argocd
labels:
argocd.argoproj.io/secret-type: repository
type: Opaque
stringData:
type: git
url: https://github.com/Invasor-de-Fronteiras/<repo>.git
username: <usuario-github>
password: <token>
kubectl apply -f repo-secret.yaml
Nunca commite esse arquivo. Use-o apenas localmente e delete após aplicar.
argocd-repo-homelab
Comando pronto para atualizar o token do repositório homelab:
kubectl patch secret argocd-repo-homelab -n argocd \
--type='json' \
-p='[{"op": "replace", "path": "/data/password", "value": "'$(echo -n "<novo-token>" | base64 -w0)'"}]'
Substitua <novo-token> pelo PAT gerado no GitHub com permissão repo.
Nunca compartilhe o token em chats, issues ou logs. O GitHub possui secret scanning ativo e revoga automaticamente tokens expostos publicamente — inclusive em ferramentas de IA. Gere o token e execute o comando acima diretamente no terminal.