Saltar para o conteúdo principal
Versão Next

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 ficheiro 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 não substitui o Helm

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:

Terminal input
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

Terminal input
helm upgrade --install <release> \
oci://registry.tecnisys.com.br/tdp/charts/tdp-argo \
-n <namespace> --create-namespace

Produção

Terminal input
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:
Terminal input
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 predefiniçã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

Terminal input
kubectl get configmap tdp-argo-argo-install-properties -n <namespace> \
-o jsonpath='{.data.install\.properties}' | tail -10

RBAC

Terminal input
kubectl get serviceaccount -n <namespace> | grep argo
kubectl get role -n <namespace> | grep argo
kubectl get rolebinding -n <namespace> | grep argo

Dex (LDAP)

Terminal input
kubectl get pods -n <namespace> | grep dex
kubectl get svc -n <namespace> | grep dex

Parâmetros principais

ParâmetroDescrição
tdp-argo.crds.installInstalar CRDs pelo chart principal (false)
tdp-argo.dex.enabledDex (necessário para LDAP)
tdp-argo.configs.cm.urlURL externa
tdp-argo.configs.secret.*Secrets (ex.: bind LDAP)
tdp-argo.rbacConfigPolíticas RBAC
tdp-argo.global.networkPolicy.*NetworkPolicies upstream

Desinstalação

Terminal input
helm -n <namespace> uninstall <release>

Limpeza adicional opcional: remova PVC, ConfigMap ou Secret órfãos se a política do cluster o exigir.