Configuração Geral
Para que serve a configuração
A configuração é a etapa em que adapta um componente TDP Kubernetes ao seu ambiente e ao seu modo de operação. Ela define como o componente será implantado, quais recursos utilizará, como será exposto, de quais dependências precisa e como se integrará aos demais serviços da plataforma.
Na prática, a configuração permite ajustar parâmetros como namespace, CPU, memória, armazenamento, secrets, acesso externo, persistência e integrações partilhadas — como base de dados, object storage e serviços de apoio. Com isso, o mesmo componente pode ser utilizado em contextos diferentes, como laboratório, homologação e produção, sem alterar a sua função principal.
Por exemplo:
- Ligar o Airflow à base de dados PostgreSQL do cluster em vez de utilizar a base interna
- Indicar ao Kafka quantas réplicas de broker e qual o fator de replicação mínimo a usar
- Informar ao NiFi onde está o servidor LDAP para autenticação
- Configurar o S3 Gateway do Ozone com as credenciais corretas para que o Spark possa gravar dados
Os parâmetros de configuração aplicam-se independentemente do método de instalação utilizado. O objetivo desta página é explicar o que normalmente pode ser configurado num componente TDP e como esses ajustes funcionam na prática.
Ao longo desta secção, encontrará os padrões de configuração mais comuns entre os componentes TDP:
| Área | O que define | Exemplos |
|---|---|---|
| Execução no cluster | Onde e com que recursos o componente será executado. | Namespace, CPU, memória, réplicas e limites. |
| Persistência | Como os dados serão armazenados. | Volumes, disco, storage class e retenção. |
| Exposição do serviço | Como o componente será acedido. | Service, porta, ingress, hostname e TLS. |
| Segurança e acesso | Como as credenciais e dados sensíveis serão fornecidos. | Secrets, utilizadores, palavras-passe, tokens e referências a secrets. |
| Integrações | Como o componente se liga a outros serviços. | PostgreSQL, S3/Ozone, endpoints e serviços partilhados. |
| Forma de aplicação | Como a configuração chega ao cluster. | Helm, ArgoCD/GitOps e futuramente tdpctl. |
Para detalhes exatos de cada componente e versão, consulte também a página específica do componente e os valores suportados pelo respetivo chart.
Execute helm show values oci://registry.tecnisys.com.br/tdp/charts/<chart> para exportar todos os parâmetros disponíveis com os seus valores predefinidos e comentários explicativos.
Os componentes são distribuídos como charts Helm e, em geral, aceitam personalização através de ficheiros de valores (YAML) passados na instalação ou na atualização (por exemplo com a opção -f).
Os excertos YAML e de linha de comandos nesta página são ilustrativos.
O prefixo raiz (tdp-airflow, tdp-trino, etc.) e a estrutura exata das chaves variam conforme o componente.
Utilize a página de configuração do componente neste guia e, para a sua versão exata do pacote, exporte os valores predefinidos com helm show values oci://registry.tecnisys.com.br/tdp/charts/<chart>.
Como aplicar a configuração
Os passos abaixo são os mesmos independentemente do componente. O que muda é o contexto do ambiente — os parâmetros em si provêm da página de configuração do componente.
- Via Helm
- Via ArgoCD
- Comandos
- Vídeos
Como funciona
O Helm utiliza ficheiros YAML chamados values para parametrizar os templates de cada chart. Você passa esses valores durante a instalação ou atualização do componente.
Existem três formas principais de fornecer valores:
Ficheiro de valores — a forma recomendada.
Crie um YAML com apenas as chaves que deseja alterar e passe com -f:
helm upgrade --install <release> oci://registry.tecnisys.com.br/tdp/charts/<chart> \
-n <namespace> --create-namespace \
-f meu-values.yaml
Flag --set — para alterações pontuais diretamente na linha de comandos:
helm upgrade --install <release> oci://registry.tecnisys.com.br/tdp/charts/<chart> \
-n <namespace> --create-namespace \
--set parametro.chave=valor
Combinação de ficheiros — múltiplos ficheiros mesclados em ordem, com os últimos tendo precedência:
helm upgrade --install <release> oci://registry.tecnisys.com.br/tdp/charts/<chart> \
-n <namespace> --create-namespace \
-f values-base.yaml \
-f values-producao.yaml
Passo a passo
- Antes de configurar, exporte os valores aceites pelo chart para conhecer os parâmetros disponíveis:
helm show values oci://registry.tecnisys.com.br/tdp/charts/<chart> > values-padrao.yaml

- Crie um ficheiro (exemplo:
meu-values.yaml) com os valores a alterar:
code .\meu-values.yaml
- Ajuste os parâmetros pretendidos, como namespace, recursos ou integrações:
resources:
requests:
cpu: "500m"
memory: "1Gi"
limits:
cpu: "1"
memory: "2Gi"
Não é necessário copiar todo o ficheiro padrão do chart. Inclua apenas os valores que deseja substituir.
- Aplique a configuração com o ficheiro criado:
helm upgrade --install <release> oci://registry.tecnisys.com.br/tdp/charts/<chart> \
-n <namespace> --create-namespace \
-f meu-values.yaml

- Verifique se os valores configurados foram aplicados:
helm get values <release> -n <namespace>

- Verifique os pods:
kubectl get pods -n <namespace>

Para componentes stateful, como o PostgreSQL, valide também:
kubectl get statefulset -n <namespace>

Para componentes que utilizam Deployment, valide também:
kubectl get deploy -n <namespace>
- Confirme que o release está com estado
deployede com a revisão atualizada:
helm list -n <namespace>

- helm show values
- helm upgrade --install
- helm get values
- kubectl get pods
- kubectl get statefulset
- helm list
- Comandos
- Vídeos
Como funciona
No fluxo GitOps com ArgoCD, a configuração é declarada em ficheiros versionados no repositório Git — não em comandos executados diretamente no cluster. O ArgoCD monitoriza o repositório continuamente e reconcilia o estado do cluster com o que está declarado no Git.
Três conceitos centrais orientam este fluxo:
Application — recurso Kubernetes gerido pelo ArgoCD que aponta para um chart Helm e um ficheiro de valores no repositório. Cada componente TDP tem a sua própria Application.
Sincronização (Sync) — processo pelo qual o ArgoCD compara o estado declarado no Git com o estado atual do cluster e aplica as diferenças.
Pode ser automática (quando automated está ativado na Application) ou manual (argocd app sync).
Reconciliação contínua — quando selfHeal: true está configurado, o ArgoCD corrige automaticamente qualquer desvio entre o cluster e o Git, mesmo que alguém tenha alterado algo diretamente no cluster.
Para alterar a configuração de um componente, edite o ficheiro de valores no repositório e faça push. O ArgoCD deteta a alteração e aplica — sem necessidade de executar comandos de instalação.
Passo a passo
- Aceda ao repositório GitOps:
cd ./tdp-GitOps
- Abra o ficheiro de valores do componente indicado na página específica do componente:
code .\caminho\do\ficheiro.yaml
Ou, se preferir:
notepad .\caminho\do\ficheiro.yaml

- Ajuste os parâmetros pretendidos no ficheiro:
primary:
resources:
requests:
memory: 4Gi
cpu: "1"
persistence:
size: 25Gi
primary:
resources:
requests:
memory: 4Gi
cpu: "1"
persistence:
size: 25Gi

- Guarde e envie a alteração:
git add .
git commit -m "config: ajustar parâmetros do componente"
git push origin main

O ArgoCD detetará automaticamente a alteração e iniciará a sincronização.
- Verifique se a Application evolui para
SyncedeHealthy:
argocd app list

- Para inspecionar a Application do componente em detalhe:
argocd app get <componente>

- Se a sincronização automática não estiver ativada, ou para aplicar a alteração imediatamente:
argocd app sync <componente>

- Verifique os pods:
kubectl get pods -n <namespace>

Para componentes stateful, como o PostgreSQL, valide também:
kubectl get statefulset -n <namespace>

Para componentes que utilizam Deployment, valide também:
kubectl get deploy -n <namespace>
Confirme que os pods estão em Running e que os workloads mostram todas as réplicas prontas.
- Ajustar parâmetros
- git push
- argocd app list
- argocd app get
- argocd app sync
- kubectl get pods
- kubectl get statefulset
Padrões comuns entre os charts TDP
Os charts do TDP Kubernetes compartilham alguns padrões de uso, mas a estrutura exata das chaves pode variar de componente para componente.
Confirme os parâmetros suportados na documentação do componente aqui e, se necessário, na saída de helm show values para a versão que você está instalando.
Namespace
Cada componente pode ser instalado em um namespace dedicado ou compartilhar um namespace com outros componentes, de acordo com a estratégia do ambiente:
# Namespace dedicado (exemplo ilustrativo)
helm upgrade --install <release> oci://registry.tecnisys.com.br/tdp/charts/<chart> \
-n <namespace> --create-namespace
# Mesmo chart em namespace compartilhado com outros componentes
helm upgrade --install <release> oci://registry.tecnisys.com.br/tdp/charts/<chart> \
-n <namespace> --create-namespace
Recursos (CPU e memória)
Muitos charts permitem configurar requests e limits de CPU e memória para os principais pods. A posição dessas chaves pode variar no arquivo de valores do componente:
<prefixo-do-chart>:
resources:
requests:
cpu: "500m"
memory: "1Gi"
limits:
cpu: "2"
memory: "4Gi"
Sempre defina requests e limits para garantir que o Kubernetes faça agendamento adequado dos pods e evite problemas de falta de recursos.
Persistência de dados
Os charts que requerem armazenamento persistente costumam expor opções de PVC (Persistent Volume Claim).
O caminho pode variar conforme o componente:
<prefixo-do-chart>:
persistence:
enabled: true
size: 10Gi
storageClassName: "<storage-class>"
accessMode: ReadWriteOnce
Para componentes que executam em múltiplos nós e precisam de acesso simultâneo ao mesmo volume, utilize ReadWriteMany (RWX) no accessMode.
Certifique-se de que o seu StorageClass suporta este modo.
Ingress
Alguns charts suportam exposição externa via Ingress.
Quando essa opção existir, os parâmetros normalmente ficam agrupados em um bloco específico do componente:
<prefixo-do-chart>:
ingress:
enabled: true
ingressClassName: "nginx"
hostname: "<host-do-componente>"
path: /
pathType: Prefix
tls: true
Serviços (NodePort vs ClusterIP)
Quando o chart expõe opções de Service, os tipos mais comuns são ClusterIP, NodePort e LoadBalancer:
<prefixo-do-chart>:
service:
type: ClusterIP
Arquivo de values customizado
A abordagem recomendada é criar um ficheiro de values específico para o seu ambiente:
- Exporte os values padrão do chart:
helm show values oci://registry.tecnisys.com.br/tdp/charts/<chart> > values-padrao.yaml
- Crie uma cópia com apenas os valores que pretende modificar:
cp values-padrao.yaml meu-values.yaml
-
Edite o ficheiro
meu-values.yamlcom as configurações pretendidas. -
Aplique durante a instalação ou atualização:
helm upgrade --install <release> oci://registry.tecnisys.com.br/tdp/charts/<chart> \
-n <namespace> --create-namespace \
-f meu-values.yaml
Configuração por ambiente
Ambiente de desenvolvimento
Para ambientes de desenvolvimento, utilize recursos reduzidos e desabilite opções de alta disponibilidade quando fizer sentido para o componente:
<prefixo-do-chart>:
resources:
requests:
cpu: "250m"
memory: "512Mi"
limits:
cpu: "500m"
memory: "1Gi"
replicaCount: 1