TODO: mise a jour 2026-06-04 - cleanup massif, helms ansible generés
This commit is contained in:
185
TODO.md
185
TODO.md
@@ -1,100 +1,129 @@
|
||||
# Smart City Digital Twin — TODO List
|
||||
|
||||
> Dernière mise à jour : 2026-06-01 22:00 (session continue - smart app + ditto)
|
||||
> Dernière mise à jour : 2026-06-04 00:30 (finalisation documentation)
|
||||
|
||||
## ✅ Complété (session 2026-06-01)
|
||||
## ✅ Complété (session 2026-06-03 / 06-04)
|
||||
|
||||
| ID | Tâche | Détail |
|
||||
|----|-------|--------|
|
||||
| jupyterhub-fix | JupyterHub DB path | `sqlite:////srv/jupyterhub/jupyterhub.sqlite` (absolute path, 4 slashes) |
|
||||
| jupyterhub-rebuild | Rebuild Dockerfile | Supprimé double-nested `/srv/jupyterhub/srv/jupyterhub` |
|
||||
| jupyterhub-spawner | Spawner config | `SimpleLocalProcessSpawner`, timeout 300s |
|
||||
| jupyterhub-user | User eric | Créé id=2, admin, authorized |
|
||||
| jupyterhub-sudo | sudo + eric user in container | Dockerfile modifié, spawn vérifié fonctionnel |
|
||||
| hermes-dashboard | Dashboard WebUI+TUI | systemd service, localhost:9119, auto-boot |
|
||||
| or-mbtiles-metadata | Bounds monde + center Martinique | `sqlite3` UPDATE sur metadata |
|
||||
| or-map-settings | mapsettings.json vérifié | center=[-61,14.5], bounds=Martinique, minZoom=0 |
|
||||
| or-mbtiles-location | mbtiles actif = /storage/map/ | PAS /opt/map/ (écrasé par volume) |
|
||||
| trino-fix | node.properties créé | `node.environment=production`, `node.id=trino-lakehouse-01` |
|
||||
| trino-config | config.properties nettoyé | `plugin.bundles` retiré (incompatible Trino 435) |
|
||||
| kafka-fix | Kafka KRaft env vars | `KAFKA_CFG_*` → `KAFKA_*`, `CLUSTER_ID` ajouté, volumes recréés |
|
||||
| git-push | Commits | Pushé sur Gitea (smart-city-digital-twin-martinique + lakehouse) |
|
||||
| **smart-app-mvp** | **Smart App City MVP complet** | **Voir détail ci-dessous** |
|
||||
| honcho-api | Honcho API déployée | `honcho-api-1` — Up sur `honcho.digitribe.fr`, workspace `hermes-agent` |
|
||||
| honcho-plugin | Plugin mémoire Hermes ↔ Honcho | `~/.hermes/honcho.json` configuré, baseUrl `http://127.0.0.1:8089` |
|
||||
| honcho-mémoire | Mémoire Honcho fonctionnelle | Stockage messages OK. Dialectic chat → nécessite clé LLM valide |
|
||||
| cicd-pipeline | Gitea Actions CI/CD | Workflow lint + build + deploy, runner docker-runner-01 |
|
||||
| ci-cd-secrets | Secrets Gitea Actions | SERVER_HOST, SERVER_USER, SSH_PRIVATE_KEY configurés |
|
||||
| smart-app-docker | Dockerfile web + Traefik | Multi-stage node + nginx, SPA routing, smartapp.digitribe.fr |
|
||||
| smart-app-deploy | Script de déploiement | `deploy.sh` — web/docker/api/all |
|
||||
| localai-fix | LocalAI Bad Gateway | Container n'existe plus, config Traefik supprimée |
|
||||
| ditto-mongodb-fix | MongoDB connection | `-Dditto.mongodb.uri` dans JAVA_TOOL_OPTIONS |
|
||||
| ditto-secrets | Nouveaux secrets JWT/devops | Générés aléatoirement, sauvegardés `.env.ditto` |
|
||||
| ditto-official-images | Gateway custom → latest | `eclipse/ditto-gateway:latest` officiel |
|
||||
| airflow-deploy | Apache Airflow déployé | `airflow.digitribe.fr` — Python 3.11, LocalExecutor |
|
||||
| openfn-cleanup | OpenFN supprimé | Race condition Cachex/Ecto non résolue |
|
||||
| ditto-cleanup | Stack Ditto supprimée | API v2 non fonctionnelle (schema-versions) |
|
||||
| openremote-cleanup | Stack OpenRemote supprimée | Patches bundle appliqués |
|
||||
| gravitino-cleanup | Gravitino supprimé | Unhealthy |
|
||||
| fiware-gis-cleanup | FIWARE GIS Quickstart supprimé | |
|
||||
| contexus-cleanup | Contexus supprimé | Unhealthy |
|
||||
| kafka-cleanup | Kafka supprimé | Unhealthy + sera redeployé via Helm |
|
||||
| flink-cleanup | Flink supprimé | Dépendances kafka |
|
||||
| bi-cleanup | Superset + Metabase supprimés | Seront redeployés via Helm |
|
||||
| mindsdb-cleanup | MindsDB supprimé | Autoheal unhealthy |
|
||||
| odk-cleanup | ODK Central supprimé | Sera redeployé via Helm |
|
||||
| jupyterhub-cleanup | JupyterHub supprimé | Sera redeployé via Helm |
|
||||
| zeppelin-cleanup | Zeppelin supprimé | Sera redeployé via Helm |
|
||||
| gis-cleanup | MapStore + GeoServer + FROST supprimés | Seront redeployés via Helm |
|
||||
| iot-cleanup | Node-RED + phpIPAM + EMQX + Mosquitto + BunkerM + ChirpStack supprimés | Seront redeployés via Helm |
|
||||
| monitoring-cleanup | Grafana + Loki + Prometheus + InfluxDB + Telegraf supprimés | Seront redeployés via Helm |
|
||||
| storage-cleanup | MinIO + PostgreSQL + PostGIS + Redis + Zookeeper supprimés | Seront redeployés via Helm |
|
||||
| misc-cleanup | AgentGateway + Esperotech + Redpanda Console + Docker exporter + Simulator supprimés | |
|
||||
| backups | Sauvegardes config | Fichiers sauvegardés dans /home/eric/backups/2026-06-03/ |
|
||||
| helms-ansible | Fichiers Helm/Ansibles générés | 25+ rôles dans /home/eric/helms/ |
|
||||
| helms-readme | README déploiement K8s | Architecture, installation, troubleshooting |
|
||||
| helms-vault | Template vault.yml | Variables chiffrées pour le déploiement |
|
||||
|
||||
## 🔴 En cours
|
||||
|
||||
| ID | Tâche | Raison | Prochaine action |
|
||||
|----|-------|--------|------------------|
|
||||
| or-map-bounds | MapService retourne bounds Pays-Bas | Bug MapResourceImpl.java: mbtiles metadata bounds prioritaire sur mapsettings.json | Générer vrai mbtiles MVT Martinique OU patcher code source OR |
|
||||
| (aucune) | — | — | — |
|
||||
|
||||
## ⏳ En attente
|
||||
## ⏳ En attente (déploiement Kubernetes via Ansible)
|
||||
|
||||
| ID | Tâche |
|
||||
|----|-------|
|
||||
| or-mbtiles-martinique | Générer mbtiles MVT PBF pour Martinique (tippecanoe depuis GeoJSON filtré) |
|
||||
| p1-or-map | Vérifier carte Martinique après fix bounds |
|
||||
| p1-contexus-60 | Configurer les 60 devices Contexus |
|
||||
| p3-analyse | GeoMesa + KeplerGL |
|
||||
| p0-chirpstack | ChirpStack login API gRPC-REST |
|
||||
| p1-thingsboard | Relancer ThingsBoard (si CPU dispo) |
|
||||
| smart-app Phase 1 | MVP React Native |
|
||||
| p2-geoserver | GeoServer + PostGIS couches Martinique |
|
||||
| k8s-cluster | Créer le cluster Kubernetes (3 nœuds minimum) |
|
||||
| nfs-server | Configurer le serveur NFS pour le storage |
|
||||
| traefik-deploy | Déployer Traefik via Helm |
|
||||
| cert-manager-deploy | Déployer cert-manager pour TLS |
|
||||
| storage-deploy | Déployer NFS provisioner + StorageClass |
|
||||
| monitoring-deploy | Déployer Prometheus + Grafana + Loki |
|
||||
| databases-deploy | Déployer PostgreSQL HA + Redis + MinIO |
|
||||
| kafka-deploy | Déployer Kafka (Strimzi) |
|
||||
| flink-deploy | Déployer Apache Flink |
|
||||
| airflow-deploy | Déployer Apache Airflow |
|
||||
| iot-deploy | Déployer EMQX + Mosquitto + Node-RED + phpIPAM |
|
||||
| gitea-deploy | Déployer Gitea |
|
||||
| jupyterhub-deploy | Déployer JupyterHub |
|
||||
| bi-deploy | Déployer Superset + Metabase |
|
||||
| mindsdb-deploy | Déployer MindsDB |
|
||||
| odk-deploy | Déployer ODK Central |
|
||||
| gis-deploy | Déployer MapStore + GeoServer + FROST |
|
||||
| clickhouse-deploy | Déployer ClickHouse (`clickhouse.digitribe.fr`) |
|
||||
| starrocks-deploy | Déployer StarRocks (`starrocks.digitribe.fr`) |
|
||||
| trino-deploy | Déployer Trino (`trino.digitribe.fr`) |
|
||||
| deltalake-deploy | Déployer Delta Lake (`deltalake.digitribe.fr`) |
|
||||
| streamlit-deploy | Déployer Streamlit (`streamlit.digitribe.fr`) |
|
||||
| duckdb-deploy | Déployer DuckDB (`duckdb.digitribe.fr`) |
|
||||
| smartapp-deploy | Déployer Smart App (`smartapp.digitribe.fr`) |
|
||||
| backup-deploy | Déployer Velero pour les sauvegardes |
|
||||
|
||||
## 📝 Notes techniques 2026-06-01
|
||||
## 📁 Fichiers Helm / Ansible générés
|
||||
|
||||
### OpenRemote mbtiles — Points critiques
|
||||
- Fichier actif : `/storage/map/mapdata.mbtiles` (volume Docker), PAS `/opt/map/`
|
||||
- OR 1.24.0 ne sert que du **PBF vectoriel** — PNG raster = 404
|
||||
- Bug : MapService.java donne priorité aux bounds du mbtiles metadata sur mapsettings.json
|
||||
- Fix : bounds mbtiles metadata = monde (`-180,-85,180,85`), bounds mapsettings = zone désirée
|
||||
- Pour mettre à jour : `docker cp file.mbtiles openremote-manager:/storage/map/mapdata.mbtiles`
|
||||
```
|
||||
helms/
|
||||
├── README.md # Documentation déploiement
|
||||
├── deploy.yml # Playbook principal
|
||||
├── undeploy.yml # Playbook de suppression
|
||||
├── inventory/
|
||||
│ └── hosts.yml # Inventory des nœuds K8s
|
||||
├── group_vars/
|
||||
│ ├── all.yml # Variables globales
|
||||
│ └── vault.yml # Variables chiffrées (template)
|
||||
└── roles/ # 25+ rôles Ansible
|
||||
├── prerequisites/
|
||||
├── namespaces/
|
||||
├── storage/
|
||||
├── traefik/
|
||||
├── cert-manager/
|
||||
├── monitoring/
|
||||
├── databases/
|
||||
├── kafka/
|
||||
├── flink/
|
||||
├── airflow/
|
||||
├── iot/
|
||||
├── gitea/
|
||||
├── jupyterhub/
|
||||
├── bi/
|
||||
├── mindsdb/
|
||||
├── odk/
|
||||
├── gis/
|
||||
├── clickhouse/
|
||||
├── starrocks/
|
||||
├── trino/
|
||||
├── deltalake/
|
||||
├── streamlit/
|
||||
├── duckdb/
|
||||
├── nodered/
|
||||
├── phpipam/
|
||||
├── smartapp/
|
||||
└── backup/
|
||||
```
|
||||
|
||||
### JupyterHub
|
||||
- Port : 8000 (pas 8080) — accessible via https://jupyter.digitribe.fr
|
||||
- User eric : id=2, admin, créé via NativeAuthenticator
|
||||
- Config : `SimpleLocalProcessSpawner`, timeout 300s
|
||||
- DB : `sqlite:////srv/jupyterhub/jupyterhub.sqlite` (absolute path, 4 slashes)
|
||||
- `eric` OS user avec sudo NOPASSWD dans le container
|
||||
- `jupyterhub-singleuser --version` = 5.3.0, `jupyter-lab --version` = 4.5.7
|
||||
## 📝 Infrastructure actuelle (10 containers Docker)
|
||||
|
||||
### Kafka (KRaft)
|
||||
- `apache/kafka:3.9.0` utilise `KAFKA_*` (pas `KAFKA_CFG_*` qui est Bitnami)
|
||||
- `CLUSTER_ID=MkU3OEVBNTcwNTJENDM2Qk` requis pour storage formatting
|
||||
- 2 brokers en mode KRaft (broker+controller), pas de ZooKeeper
|
||||
|
||||
### Trino
|
||||
- Config dans `/home/eric/lakehouse/docker-compose/config/trino/`
|
||||
- `node.id=trino-lakehouse-01` (pas `_internal_`)
|
||||
- `plugin.bundles` retiré de config.properties (incompatible Trino 435)
|
||||
|
||||
### Infrastructure
|
||||
- 86+ conteneurs Docker
|
||||
- Kafka, Trino, JupyterHub = UP ✅ (fixes appliqués cette session)
|
||||
- Tous les autres services principaux = UP ✅
|
||||
| Service | Image | Statut |
|
||||
|---------|-------|--------|
|
||||
| airflow-scheduler | apache/airflow:2.9.3-python3.11 | ✅ healthy |
|
||||
| airflow-webserver | apache/airflow:2.9.3-python3.11 | ✅ healthy |
|
||||
| airflow-init | apache/airflow:2.9.3-python3.11 | 🔄 restarting (one-shot) |
|
||||
| airflow-postgres | postgres:16 | ✅ healthy |
|
||||
| smartapp-api | smartapp-api:latest | ✅ Up 38h |
|
||||
| smartapp-web | nginx:alpine | ✅ Up 38h |
|
||||
| gitea-runner | gitea/act_runner:latest | ✅ Up 2 days |
|
||||
| traefik | traefik:v3.1 | ✅ Up 2 days |
|
||||
| smart-city-kepler | smart-city-kepler:latest | ✅ Up 2 weeks |
|
||||
| gitea | gitea/gitea:latest | ✅ Up 2 jours |
|
||||
|
||||
## Credentials
|
||||
|
||||
- **Contexus**: iotevadmin / Digitribe972
|
||||
- **OpenRemote**: admin / Digitribe972
|
||||
- **PostgreSQL Contexus**: contexus / Digitribe972
|
||||
- **Redis Contexus**: Digitribe972
|
||||
- **Telegraf InfluxDB**: token=my-super-token, org=digitribe, bucket=smartcity
|
||||
- **Grafana**: admin / Digitribe972
|
||||
- **Superset**: admin / Digitribe972
|
||||
- **Metabase**: admin@digitribe.fr / Digitribe972
|
||||
- **BunkerM MQTT**: bunker / bunker
|
||||
- **ChirpStack**: admin / Digitribe972
|
||||
- **ODK Central**: efelixine@digitribe.fr / Digitribe972
|
||||
- **JupyterHub**: eric / admin (admin) — via NativeAuthenticator
|
||||
- **MindsDB**: admin@digitribe.fr / Digitribe972
|
||||
- **Gitea** : eric / (voir config)
|
||||
- **Airflow** : admin / (changé par Eric)
|
||||
|
||||
Reference in New Issue
Block a user