Skip to content

UnclePhil/dkst_diff

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Docker Stack Diff Tool (dkst_diff)

Un outil en ligne de commande pour analyser et comparer les stacks Docker Swarm à travers différents contextes et notifier des changements via une API externe.

Fonctionnalités

  • Supporte plusieurs contextes Docker pour la surveillance de multiples clusters
  • Capture l'état des stacks Docker Swarm (services, configurations, secrets)
  • Compare les états entre deux exécutions
  • Génère des rapports de différences détaillés par contexte
  • Traitement parallèle des contextes pour de meilleures performances
  • Envoie des notifications via une API externe configurable
  • Nettoyage automatique des anciens snapshots et diffs
  • Timeout configurable pour les opérations Docker
  • Support des formats de notification JSON et texte

Prérequis

  • Docker en mode Swarm
  • jq (pour le traitement JSON)
  • curl (pour les notifications API)
  • Contextes Docker configurés pour les clusters cibles

Installation

  1. Clonez le dépôt :
git clone https://github.com/votre-repo/dkst_diff.git
cd dkst_diff
  1. Rendez les scripts exécutables :
chmod +x src/dkst_diff.sh src/lib/utils.sh
  1. Créez votre configuration locale :
cp src/config.sh src/config.local.sh
  1. Éditez src/config.local.sh pour configurer :
    • Les contextes Docker à surveiller
    • L'URL de l'API de notification
    • Le token d'authentification
    • Le format des notifications (json/text)
    • Le répertoire de données
    • La période de rétention des fichiers
    • Le nombre maximum de contextes à traiter en parallèle
    • Le timeout des opérations Docker

Configuration

Exemple de configuration dans config.local.sh :

# Contextes Docker à surveiller
DOCKER_CONTEXTS="prod-cluster1 prod-cluster2 staging-cluster"

# Configuration des notifications
NOTIFICATION_API_URL="https://api.exemple.com/notifications"
NOTIFICATION_API_TOKEN="votre-token-api"
NOTIFICATION_FORMAT="json"  # ou "text"

# Paramètres avancés
MAX_PARALLEL_CONTEXTS=3
TIMEOUT_SECONDS=300

Utilisation

./src/dkst_diff.sh

Le script va :

  1. Traiter en parallèle chaque contexte Docker configuré
  2. Capturer l'état actuel des stacks pour chaque contexte
  3. Comparer avec le dernier état sauvegardé
  4. Générer un rapport des différences si des changements sont détectés
  5. Envoyer une notification si configuré

Structure des fichiers

.
├── src/
│   ├── dkst_diff.sh     # Script principal
│   ├── config.sh        # Configuration par défaut
│   ├── config.local.sh  # Configuration locale (ignorée par git)
│   └── lib/
│       └── utils.sh     # Fonctions utilitaires
├── data/                # Répertoire de données (créé automatiquement)
│   ├── snapshots/       # États des stacks (par contexte)
│   │   ├── cluster1/
│   │   └── cluster2/
│   └── diffs/          # Rapports de différences (par contexte)
│       ├── cluster1/
│       └── cluster2/
└── README.md

Format des notifications

JSON

{
  "title": "Docker Stack Changes - prod-cluster1",
  "content": "... contenu du diff ...",
  "context": "prod-cluster1",
  "timestamp": "2025-06-19T10:30:00Z"
}

Texte

Docker Stack Changes - prod-cluster1

Timestamp: 2025-06-19 10:30:00

... contenu du diff ...

Contribuer

Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages