Skip to content

Onboarding de Nova Aplicação

Checklist completo para adicionar uma nova aplicação à plataforma.

Visão Geral

flowchart LR
    A[1. Helm Chart] --> B[2. Pipeline CI/CD]
    B --> C[3. Vault Secrets]
    C --> D[4. Tenants Config]
    D --> E[5. ArgoCD Sync]

Passo 1: Criar Helm Chart

No repositório ads-helm-charts, criar charts/{app-name}/:

charts/{app-name}/ ├── Chart.yaml ├── values.yaml ├── templates/ │ ├── _helpers.tpl │ ├── deployment.yaml │ ├── service.yaml │ ├── serviceaccount.yaml │ ├── hpa.yaml │ ├── http-route.yaml │ ├── eso-config.yaml │ ├── eso-imagepull-secrets.yaml │ └── NOTES.txt └── README.md

values.yaml Essenciais

```yaml image: repository: gru.ocir.io/grbtf2fwsmfh/{app-name} tag: latest

containerPort: 6001 # APIs: 6001-6003, UIs: 80 domain: nox.app.br

config: remoteSecretPath: "tenants/{{ .Release.Namespace }}/{app-name}/config" secretStore: vault

replicaCount: 1 ```

ESO Template (eso-config.yaml)

yaml apiVersion: external-secrets.io/v1 kind: ExternalSecret metadata: name: {{ include "app.fullname" . }}-config spec: secretStoreRef: name: {{ .Values.config.secretStore }} kind: ClusterSecretStore target: name: {{ include "app.fullname" . }}-config data: - secretKey: DB_PASSWORD remoteRef: key: {{ .Values.config.remoteSecretPath }} property: DB_PASSWORD

Publicar o Chart

```bash cd ads-helm-charts

O workflow de CI publica automaticamente charts modificados

Ou manualmente:

make publish ```

Passo 2: Configurar Pipeline CI/CD

No Repositório da Aplicação

  1. Copiar o template de pipeline: bash cp ads-automations/templates/application-pipeline.yml \ {app-repo}/.github/workflows/application-pipeline.yml

  2. Adicionar Dockerfile baseado no template apropriado:

=== "Java" bash cp ads-automations/templates/Dockerfile-java {app-repo}/Dockerfile Ajustar JAVA_VERSION se diferente de 21.

=== "Node/Angular" bash cp ads-automations/templates/Dockerfile-node {app-repo}/Dockerfile

  1. Configurar secrets do repositório no GitHub:
Secret Descrição
PIPELINE_SECRETS JSON com credenciais compartilhadas
OCI_RUNNER_ID OCID do Container Instance do runner
TOKEN GitHub token para operações cross-repo
  1. Primeiro build — Crie um PR e faça merge para gerar a primeira imagem Docker.

Passo 3: Criar Secrets no Vault

Para cada tenant que usará a aplicação:

```bash

Opção 1: Copiar de outra app do mesmo tenant

./scripts/vault/vault-backup.sh -cp \ -m secret/HML \ -sp tenants/tre/app-existente/config \ -dp tenants/tre/{app-name}/config

Opção 2: Criar manualmente via Vault UI

Path: secret/HML/tenants/{tenant}/{app-name}/config

Adicionar: DB_URL, DB_PASSWORD, etc.

```

Repetir para todos os tenants e ambientes (HML e NOX).

Passo 4: Configurar Tenants

Adicionar Templates

Criar templates/{env}/{app-name}/ no ads-tenants-config:

app-config.yaml: yaml chartVersion: 1.0.0

values.yaml (HML): yaml env: hml image: tag: 1.0.0-DEV@sha256:abc123...

values.yaml (NOX): yaml env: nox image: tag: v1.0.0@sha256:abc123...

Adicionar a Cada Tenant

Criar diretório tenants/oci/{env}/{tenant}/{app-name}/ com os mesmos 2 arquivos para cada tenant que deve receber a aplicação.

Automatizar com script

Para adicionar a todos os tenants de uma vez: bash for tenant in afpes cisne cmd fusex hic nfb rjv rvt scz tre; do mkdir -p tenants/oci/hml/$tenant/{app-name} cp templates/hml/{app-name}/* tenants/oci/hml/$tenant/{app-name}/ done

Commit e Push

bash git add templates/ tenants/ git commit -m "feat: add {app-name} to all tenants" git push

Passo 5: Verificar Deploy

Após o push para main do ads-tenants-config:

  1. ArgoCD detecta os novos app-config.yaml automaticamente
  2. O ApplicationSet gera uma Application por tenant
  3. O sync automático instala o chart em cada namespace

Verificar no ArgoCD

```bash

Verificar applications criadas

kubectl get applications -n argocd | grep {app-name}

Verificar status de um deploy específico

kubectl get all -n {tenant} -l app.kubernetes.io/name={app-name} ```

Checklist Resumo

1. [ ] Criar Helm chart em ads-helm-charts/charts/{app-name}/ 2. [ ] Publicar chart no registry OCI 3. [ ] Adicionar Dockerfile ao repositório da aplicação 4. [ ] Copiar application-pipeline.yml para .github/workflows/ 5. [ ] Configurar secrets do repo (PIPELINE_SECRETS, OCI_RUNNER_ID, TOKEN) 6. [ ] Fazer primeiro build (PR + merge ou tag manual) 7. [ ] Criar secrets no Vault para cada tenant 8. [ ] Adicionar app aos templates em ads-tenants-config 9. [ ] Adicionar app a cada tenant em tenants/oci/{env}/{tenant}/ 10. [ ] Commit e push — ArgoCD sync automático 11. [ ] Verificar deploy no ArgoCD 12. [ ] (Se necessário) Provisionar infra: DB dedicado, FSS, etc.