# Smart City Digital Twin — TODO List > Dernière mise à jour : 2026-06-04 02:00 (finalisation) ## ✅ Complété (session 2026-06-03 / 06-04) | ID | Tâche | Détail | |----|-------|--------| | 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-04/ | | helms-ansible | Fichiers Helm/Ansibles générés | 25+ rôles dans helms/ | | helms-readme | README déploiement K8s | Architecture, installation, troubleshooting | | helms-vault | Template vault.yml | Variables chiffrées pour le déploiement | | git-push | Push sur Gitea | 2 commits pushés (TODO + helms) | ## 🔴 En cours | ID | Tâche | Raison | Prochaine action | |----|-------|--------|------------------| | (aucune) | — | — | — | ## ⏳ En attente (déploiement Kubernetes via Ansible) | ID | Tâche | |----|-------| | 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 | ## 📁 Fichiers Helm / Ansible générés Le répertoire `helms/` (dans le repo Gitea) contient les fichiers pour un déploiement modulaire sur Kubernetes via Ansible. ### Structure ``` 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 ├── group_vars/vault.yml # Variables chiffrées (template) └── roles/ # 25+ rôles Ansible ``` ### Utilisation ```bash cd helms/ ansible-playbook deploy.yml --ask-vault-pass ansible-playbook deploy.yml --tags clickhouse --ask-vault-pass ansible-playbook undeploy.yml ``` ## 📝 Infrastructure actuelle (10 containers Docker) | 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 | ## 📊 Statistiques - **Containers Docker** : 10 (down from 72) - **Stacks supprimées** : 6 (OpenFN, Ditto, OpenRemote, Gravitino, FIWARE GIS, Contexus) - **Services unhealthy** : 0 - **Fichiers Helm/Ansible** : 33 fichiers - **Rôles Ansible** : 25+ - **Namespaces K8s prévus** : 18 ## Credentials - **Gitea** : eric / (voir config) - **Airflow** : admin / (changé par Eric)