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

#4

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)

Estimation "Guesstimate"

(PRIO:1) Ségrégation des ressources et contrôle des d'accès

Référence

#5

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

Estimation "Guesstimate"

(PRIO:3) Client web et mise en place des "aspects"

Référence

#6

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

Estimation "Guesstimate"

(PRIO:4) Modularisation des contrôleurs

Référence

#7

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

Estimation "Guesstimate"

(PRIO:5) Contrôleur "conteneur"

Référence

#8

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

Estimation "Guesstimate"