46
Roadmap
wpetit edited this page 2024-03-01 11:43:25 +01:00
Feuille de route
Épiques
(PRIO:2) Journaux d'évènement et amélioration des échanges réseaux
Référence
Objectifs
- Implémenter un flux d'évènements (séquence de données structurées et horodatées) associé à un agent (avec persistence du flux sur le serveur Emissary) permettant de suivre le cycle de vie de celui ci;
- Améliorer la fréquence des échanges réseaux entre les agents Emissary et le serveur notamment sur la remontée de métadonnées.
Scénarios
- #9 - Formaliser la notion de flux d'événements associé à un agent
- #10 - Implémenter une API Go permettant à un contrôleur de générer un événement
- #11 - Implémenter une API HTTP permettant de consulter le journal d'évènement d'un agent
- #12 - Améliorer la mécanique de remontée de métadonnées des agents sur le serveur Emissary (envoi des données uniquement suite à modification de celles-ci)
(PRIO:1) Ségrégation des ressources et contrôle des d'accès
Référence
Objectifs
- Implémenter une ségrégation des ressources au niveau du serveur Emissary pour permettre un fonctionnement par "tenant";
- Implémenter les contrôles nécessaires à la mise en place d'une politique de gestion des accès de type
RBAC
;
Scénarios
- #18 - Formaliser les principes de ségrégation de ressources et de contrôle des d'accès
- #17 - Implémenter la notion de "tenant" associé à une ressource "Agent"
- #21 - Interface d'enrôlement simplifié sur l'agent
(PRIO:3) Client web et mise en place des "aspects"
Référence
Objectifs
- Mettre en place un MVP du projet arcad/emissary-hq avec les fonctionnalités de gestion des agents de base (gestion de l'appairage d'un agent, opérations CRUD sur les spécifications associées à l'agent);
- Formaliser et implémenter une première version des "aspects" (module d'édition contextualisé et focalisé sur un aspect métier d'un agent);
- Stabiliser l'API REST du serveur Emissary.
Scénarios
- #13 - Implémenter les éléments d'interface permettant d'effectuer les différentes opérations de gestion d'un agent
- #14 - Implémenter une API REST de mise à jour par lot des spécifications d'un agent
- #15 - Formaliser la notion d'aspect
- Implémenter un premier "aspect" fonctionnel (modification de la configuration WiFi ? gestion firewall ?)
- Générer et diffuser le schéma de l'API REST du serveur Emissary
(PRIO:4) Modularisation des contrôleurs
Référence
Objectifs
- Transformer le modèle monolithique actuel des contrôleurs en mode "plugin" permettant ainsi d'étendre les fonctionnalités de l'agent à la demande;
- Porter les contrôleurs actuels sur le nouveau modèle de plugins;
Scénarios
- Élire un SDK pour la mise en place des plugins (candidats: https://github.com/hashicorp/go-plugin, https://github.com/knqyf263/go-plugin)
- Implémenter les interfaces Go nécessaires à la mise en place du mécanisme de plugins au sein de l'agent Emissary
- Créer une spécification et un contrôleur intégré dont le rôle est de charger des plugins dynamiquement
- Porter les contrôleurs actuels en plugins
- Mettre en place les éléments de CI pour la construction et la diffusion des plugins
(PRIO:5) Contrôleur "conteneur"
Référence
Objectifs
- Créer un contrôleur capable d'exécuter des conteneurs arbitraires à partir d'une spécification Emissary
Scénarios
- Élire une librairie client pour Docker et/ou Podman
- Implémenter une spécification permettant de définir des conteneurs à démarrer sur l'agent Emissary
- Implémenter le contrôleur