Configuração do Argo CD
O que é o Argo CD?
O Argo CD é 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 Argo CD detecta a mudança e aplica no cluster automaticamente.
No TDP Kubernetes, o Argo CD é usado principalmente para gerenciar o ciclo de vida dos próprios charts TDP no modelo App of Apps: uma Application raiz que gerencia outras Applications, cada uma responsável por um componente TDP.
Isso é descrito em detalhes nos guias de instalação via Argo CD e atualização.
O Argo CD utiliza o Helm para renderizar os charts e aplicar os recursos no cluster. A diferença é que você não executa helm upgrade manualmente — o Argo CD 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 3.2.5 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"
Visão geral
| Propriedade | Valor |
|---|---|
| Chart | tdp-argo |
| Versão do Argo CD | 3.2.5 |
| Versão do chart | 3.0.1 |
| Upstream | chart argo-cd |
| Modelo | App of Apps (GitOps) |
| Recursos suportados | LDAP, Ingress e Gateway API |
Páginas relacionadas
- Segurança — Argo CD — LDAP via Dex, RBAC e NetworkPolicy
- Exposição externa: Ingress e Gateway API — exposição HTTP/HTTPS da UI
- Instalação via Argo CD — bootstrap GitOps e App of Apps
- Atualização do Argo CD — atualização das versões dos charts
Configurações TDP específicas
O chart inclui configurações específicas do TDP, fora do escopo do upstream:
skipCrdCheck— valida se otdp-crdsestá instalado antes do deploy.TDP-Settings.gateway— controle de exposição via Ingress ou Gateway API.gatewayApi— configuração do Gateway API para os HTTPRoutes.
Pré-requisitos: CRDs (tdp-crds)
Obrigatório instalar os CRDs antes do chart principal:
helm upgrade --install tdp-crds \
oci://registry.tecnisys.com.br/tdp/charts/tdp-crds \
-n <NAMESPACE> --create-namespace
O chart principal mantém tdp-argo.crds.install=false para evitar conflitos de ciclo de vida dos CRDs no Helm. O tdp-crds consolida os CRDs de todos os componentes da plataforma (Argo CD, Kafka, NiFiKop, ClickHouse, OpenMetadata e cert-manager) num único release.
- Instalação
- Parâmetros principais
- Detalhes de configuração
- Acesso & Segurança
- Desinstalação
Instalação
Via Script deploy.sh (Recomendado)
O script deploy.sh automatiza a instalação completa do Argo CD:
./deploy.sh --install -v variables.env.local
O que é executado:
helm registry login→ autentica no OCI registryhelm upgrade --install tdp-crds→ instala os CRDshelm upgrade --install tdp-argo→ instala o Argo CDkubectl rollout status→ aguarda os pods prontos- Renderiza os templates → popula
current/ - Aplica os recursos comuns (AppProject, Secrets, App of Apps)
O fluxo GitOps completo (estrutura do repositório, variables.env.local, bootstrap e sincronização) está documentado em Instalação via Argo CD.
Via Helm Direto
Para instalação manual via Helm:
helm upgrade --install tdp-argo \
oci://registry.tecnisys.com.br/tdp/charts/tdp-argo \
-n <NAMESPACE> --create-namespace \
--set skipCrdCheck=false
Verificação
ConfigMap de instalação
kubectl get configmap tdp-argo-argo-install-properties -n <NAMESPACE> \
-o jsonpath='{.data.install\.properties}' | tail -10
kubectl get configmap tdp-argo-argo-install-properties -n <NAMESPACE> -o jsonpath='{.data.argo-admin-install\.properties}' | tail -10
Pods
kubectl get pods -n <NAMESPACE>
Todos os pods devem estar em status Running.
Parâmetros principais
| Parâmetro | Descrição | Padrão |
|---|---|---|
skipCrdCheck | Pula a validação de CRDs (use apenas para helm template) | false |
tdp-argo.crds.install | Instala CRDs via upstream (deve ser false) | false |
tdp-argo.dex.enabled | Habilita Dex para LDAP | false |
tdp-argo.configs.cm.url | URL pública do Argo CD | https://argo.tdp.local |
tdp-argo.configs.secret.* | Secrets para credenciais | — |
tdp-argo.rbacConfig | Configuração RBAC | — |
tdp-argo.global.networkPolicy.* | Configurações de NetworkPolicy | create: false |
TDP-Settings.gateway.ingress.enabled | Habilita Ingress | false |
TDP-Settings.gateway.gatewayApi.enabled | Habilita Gateway API | false |
tdp-argo.openshift.enabled | Compatibilidade OpenShift | false |
Configurações principais
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://<ARGOCD_HOSTNAME>
Application namespaces
Por padrão, o Argo CD gerencia Applications em todos os namespaces (application.namespaces: "*"):
tdp-argo:
configs:
params:
application.namespaces: "*"
Para restringir a um conjunto específico (por exemplo, apenas <NAMESPACE>):
tdp-argo:
configs:
params:
application.namespaces: "<NAMESPACE>"
HTTP vs HTTPS
Por padrão, o acesso HTTP é habilitado (server.insecure: "true"), útil atrás de Ingress, service mesh ou proxy terminador de TLS:
tdp-argo:
configs:
params:
server.insecure: "true"
Para forçar HTTPS, defina o valor como "false".
Compatibilidade OpenShift
Para deploy em OpenShift, habilite a compatibilidade:
tdp-argo:
openshift:
enabled: true
Alternativamente, é possível habilitar a compatibilidade diretamente na instalação:
helm upgrade --install tdp-argocd \
oci://registry.tecnisys.com.br/tdp/charts/tdp-argo \
--namespace argocd --create-namespace \
--set tdp-argo.openshift.enabled=true \
--set tdp-argo.redis.securityContext.runAsUser=null \
--set tdp-argo.redis.securityContext.fsGroup=null
Isso cria a RoleBinding da SCC anyuid para o Redis e ajusta os security contexts conforme necessário.
Dimensionamento de recursos
Configurações de recursos recomendadas por componente do Argo CD:
tdp-argo:
server:
resources:
requests:
cpu: "250m"
memory: "512Mi"
limits:
cpu: "1"
memory: "2Gi"
repoServer:
replicas: 2
resources:
requests:
cpu: "250m"
memory: "256Mi"
limits:
cpu: "1"
memory: "2Gi"
controller:
replicas: 2
resources:
requests:
cpu: "500m"
memory: "1Gi"
limits:
cpu: "2"
memory: "4Gi"
redis:
resources:
requests:
cpu: "50m"
memory: "64Mi"
limits:
cpu: "250m"
memory: "512Mi"
dex:
resources:
requests:
cpu: "50m"
memory: "64Mi"
limits:
cpu: "250m"
memory: "256Mi"
Overlays Disponíveis
O chart inclui overlays para cenários específicos:
values-ldap.yaml— Configuração LDAP pré-preenchidavalues-openshift.yaml— OpenShift SCC compatibilidadevalues-tdp-gateway.yaml— Gateway API configuraçãovalues-tdp-ingress.yaml— Ingress configuraçãovalues-tdp-ingress-openshift.yaml— Ingress + OpenShift
Uso:
helm upgrade --install tdp-argo \
oci://registry.tecnisys.com.br/tdp/charts/tdp-argo \
-n <NAMESPACE> \
-f values-ldap.yaml \
-f values-tdp-gateway.yaml
Acesso e credenciais
- Usuário:
admin - Senha inicial: armazenada no Secret
argocd-initial-admin-secret:
kubectl -n <NAMESPACE> get secret argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -d
Altere a senha após o primeiro acesso na interface do Argo CD (Settings → Account → Update Password).
Segurança
O Argo CD suporta autenticação LDAP via Dex (tdp-argo.dex.enabled), com mapeamento de grupos LDAP para roles em tdp-argo.rbacConfig. Para a configuração completa — criação do Secret de bind, dex.config, política RBAC e solução de problemas — consulte Segurança — Argo CD.
Exposição externa
A UI/API do Argo CD pode ser exposta via Ingress ou Gateway API (mutuamente exclusivos), controlados por TDP-Settings.gateway. Para os exemplos completos de Ingress e Gateway API, consulte Exposição externa.
NetworkPolicy
Por padrão, o chart não cria NetworkPolicies (tdp-argo.global.networkPolicy.create: false), mantendo o tráfego liberado. Para habilitar as policies allow-all do upstream ou aplicar uma restrição de rede própria, consulte Segurança — Argo CD.
Desinstalação
helm -n <NAMESPACE> uninstall tdp-argo
Remove todos os recursos do release. Limpeza adicional opcional: remova PVC, ConfigMap ou Secret órfãos se a política do cluster o exigir:
kubectl delete pvc -n <NAMESPACE> --all
kubectl delete configmap -n <NAMESPACE> --all
kubectl delete secret -n <NAMESPACE> --all
Atualização
Para atualizar o Argo CD:
# Via deploy.sh
./deploy.sh --install -v variables.env.local
# Via Helm direto
helm upgrade tdp-argo \
oci://registry.tecnisys.com.br/tdp/charts/tdp-argo \
-n <NAMESPACE> \
--set skipCrdCheck=false
Para o procedimento completo de atualização, consulte Atualização do Argo CD.