adb-charts
Rôle
Repository Helm + Terraform qui orchestre le déploiement de l'ensemble de la plateforme sur Kubernetes. Multi-cloud (AKS Azure principal, AWS secondaire) et multi-environnement (dev / int / staging / preprod / prod).
C'est ici que sont définis :
- Le déploiement Kubernetes de chaque microservice (Deployments, Services, ConfigMaps, Secrets).
- Les routes Ingress (Traefik / Nginx) qui exposent l'API publique.
- La collecte de logs vers Elasticsearch (Filebeat).
- Le provisioning Neo4j via Terraform.
- La gestion des certificats TLS.
Stack
| Élément | Valeur |
|---|---|
| Helm | v3 |
| Terraform | (versions par module) |
| Kubernetes | AKS (Azure) primaire, AWS EKS secondaire |
| Logging | Filebeat → Elasticsearch / ELK |
| Ingress | Traefik (ingress-route/) ou Nginx selon env |
| Stockage logs | Elasticsearch managé |
Structure
adb-charts/
├── charts/
│ ├── services/ Services métier (dev/int/staging)
│ │ └── templates/
│ │ ├── adb-accounting.yaml
│ │ ├── adb-aggregates.yaml
│ │ ├── adb-contracts.yaml
│ │ ├── adb-files.yaml
│ │ ├── adb-parts.yaml
│ │ ├── adb-persons.yaml
│ │ ├── adb-reports.yaml
│ │ ├── adb-tickets.yaml
│ │ ├── adb-ui.yaml
│ │ ├── adb-utilities.yaml
│ │ └── adb-views.yaml
│ ├── services_prod/ Variante prod
│ ├── security/ UAA legacy + scopes OAuth
│ ├── filebeat/ Logs → ELK
│ ├── ingress-route/ Routes Traefik (nginx-ingress.yaml)
│ └── cert/ Certificats TLS
├── terraform/ Neo4j + autre infra
├── scripts/ Scripts Cypher pour Neo4j
└── mq.md Doc RabbitMQ pour adb-graph
Services déployés
11 services via charts/services/templates/ :
| Service | Présent dans le monorepo |
|---|---|
adb-accounting | ✓ |
adb-aggregates | ✓ |
adb-contracts | ✓ |
adb-files | ✓ |
adb-parts | ✓ |
adb-persons | ✓ |
adb-reports | ✓ |
adb-tickets | ✗ (dépôt externe) |
adb-ui | ✓ |
adb-utilities | ✓ |
adb-views | ✓ |
Notamment absents des charts (mais présents dans certains FQDN) : adb-notes (déprécié), adb-graph (incomplet), adb-notifications.
Architecture du déploiement
flowchart TB
subgraph K8s[Cluster Kubernetes]
subgraph Ingress[Traefik / Nginx]
R1[/persons → adb-persons]
R2[/contracts → adb-contracts]
R3[/parts → adb-parts]
R4[/accounting → adb-accounting]
Retc[...]
end
subgraph Services
P[adb-persons Pod]
C[adb-contracts Pod]
Pa[adb-parts Pod]
A[adb-accounting Pod]
Etc[... 8 autres pods]
end
Filebeat[Filebeat DaemonSet]
end
Mongo[(MongoDB Atlas<br/>externe)]
S3[(AWS S3<br/>externe)]
SQS[AWS SQS/SNS<br/>externe]
KC[Keycloak]
ELK[Elasticsearch]
Internet[Internet] --> Ingress
R1 --> P
R2 --> C
R3 --> Pa
R4 --> A
P --> Mongo
C --> Mongo
Pa --> Mongo
A --> Mongo
A --> S3
C --> S3
P -.events.-> SQS
C -.events.-> SQS
P --> KC
C --> KC
Filebeat --> ELK
subgraph Neo4j[Neo4j cluster<br/>via Terraform]
N[Neo4j]
end
Graph[adb-graph<br/>hors monorepo] --> N
Configuration multi-env
Chaque chart a des values-<env>.yaml :
values-dev.yamlvalues-int.yamlvalues-staging.yamlvalues-preprod.yamlvalues-prod.yaml
Variables principales par chart :
image.repository/image.tag- Resources (CPU, mémoire)
- Replicas
- Variables d'env (injectées depuis Secrets Kubernetes)
- Health checks (liveness / readiness probes)
- Service ports
Routes Ingress
charts/ingress-route/templates/nginx-ingress.yaml route :
/persons→adb-persons/parts→adb-parts/contracts→adb-contracts/accounting→adb-accounting/files→adb-files/utilities→adb-utilities/aggregates→adb-aggregates/view→adb-views/reports→adb-reports/tickets→adb-tickets/notes→adb-tickets(redirection —adb-notesdéprécié)/ui→adb-ui
Logging
charts/filebeat/ déploie un DaemonSet Filebeat qui collecte les stdout/stderr de tous les pods et les forwarde vers Elasticsearch. Pattern de logs JSON (Logstash Logback) parsé automatiquement.
Terraform
terraform/ contient les ressources non-Helm :
- Cluster Neo4j (utilisé par
adb-graph). - Possibles autres ressources Azure / AWS (à confirmer au cas par cas).
Scripts Cypher associés : scripts/cypher_r4.cypher.
Documentation
terraform.md— guide Terraformmq.md— config RabbitMQ pouradb-graph(exchanges, queues, DLX)
Liens
- Code :
adb-charts/ - Charts services :
adb-charts/charts/services/templates/ - Ingress :
adb-charts/charts/ingress-route/templates/nginx-ingress.yaml - Doc RabbitMQ :
adb-charts/mq.md