Configuração do ArgoCD
O que é o ArgoCD?
O ArgoCD é a ferramenta de entrega contínua GitOps do TDP.
Ele monitora um repositório Git e garante que o que está no cluster Kubernetes esteja sempre sincronizado com o que está no Git — se você alterar um arquivo de configuração no repositório, o ArgoCD detecta a mudança e aplica no cluster automaticamente.
No TDP Kubernetes, o ArgoCD é usado principalmente para gerenciar o ciclo de vida dos próprios charts TDP no modelo App of Apps: uma Application ArgoCD raiz que gerencia outras Applications, cada uma responsável por um componente TDP.
Isso é descrito em detalhes nos guias de instalação e atualização.
O ArgoCD usa o Helm por baixo dos panos para renderizar e aplicar os charts. A diferença é que você não executa helm upgrade manualmente — o ArgoCD faz isso automaticamente ao detectar mudanças no Git. O fluxo de configuração (arquivos de values, secrets) permanece o mesmo.
O chart tdp-argo empacota o Argo CD 2.12.1 como wrapper sobre o chart upstream argo-cd.
Estrutura de valores (Helm)
Todos os valores devem ficar sob tdp-argo: (alias da dependência no Chart.yaml).
tdp-argo:
server:
resources:
requests:
cpu: "250m"
memory: "256Mi"
Pré-requisitos: CRDs (tdp-argo-crds)
Obrigatório instalar os CRDs antes do chart principal:
helm upgrade --install argocd-crds \
oci://registry.tecnisys.com.br/tdp/charts/tdp-argo-crds \
--namespace <namespace> --create-namespace
O chart principal mantém tdp-argo.crds.install=false para evitar conflitos de ciclo de vida dos CRDs no Helm.
Instalação
Desenvolvimento
helm upgrade --install <release> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-argo \
-n <namespace> --create-namespace
Produção
helm upgrade --install <release> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-argo \
-n <namespace> --create-namespace
Acesso e credenciais
- Usuário:
admin - Senha inicial: Secret
argocd-initial-admin-secret:
kubectl -n <namespace> get secret argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -d
URL pública (configs.cm.url)
Alinhe a URL à forma como os usuários acessam o Argo CD (relevante para Dex/LDAP):
tdp-argo:
configs:
cm:
url: https://<host>
LDAP / Dex e RBAC
Consulte Segurança — ArgoCD.
NetworkPolicy
Por padrão tdp-argo.global.networkPolicy.create: false (sem NetworkPolicies).
Para criar as policies allow-all do upstream:
tdp-argo:
global:
networkPolicy:
create: true
defaultDenyIngress: false
Os templates upstream não permitem customizar regras via valores Helm; para restrição real, aplique uma NetworkPolicy própria. Exemplo genérico:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: argocd-restrict-ingress
namespace: <namespace>
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchExpressions:
- key: kubernetes.io/metadata.name
operator: In
values:
- <trusted-namespace>
Verificação
ConfigMap de instalação
kubectl get configmap tdp-argo-argo-install-properties -n <namespace> \
-o jsonpath='{.data.install\.properties}' | tail -10
RBAC
kubectl get serviceaccount -n <namespace> | grep argo
kubectl get role -n <namespace> | grep argo
kubectl get rolebinding -n <namespace> | grep argo
Dex (LDAP)
kubectl get pods -n <namespace> | grep dex
kubectl get svc -n <namespace> | grep dex
Parâmetros principais
| Parâmetro | Descrição |
|---|---|
tdp-argo.crds.install | Instalar CRDs pelo chart principal (false) |
tdp-argo.dex.enabled | Dex (necessário para LDAP) |
tdp-argo.configs.cm.url | URL externa |
tdp-argo.configs.secret.* | Secrets (ex.: bind LDAP) |
tdp-argo.rbacConfig | Políticas RBAC |
tdp-argo.global.networkPolicy.* | NetworkPolicies upstream |
Desinstalação
helm -n <namespace> uninstall <release>
Limpeza adicional opcional: remova PVC, ConfigMap ou Secret órfãos se a política do cluster o exigir.