From 811171cef9dc671f6f22a7e61a71569fa75003df Mon Sep 17 00:00:00 2001
From: Quentin Duchemin <quentinduchemin@tuta.io>
Date: Tue, 13 Oct 2020 10:32:07 +0200
Subject: [PATCH] [MetricsBot] Remove submodule, use release, and update to
 v1.0

---
 pica-metrics-bot/CHANGELOG.md                    |  8 ++++++++
 pica-metrics-bot/Dockerfile                      | 10 ++++++++--
 pica-metrics-bot/README.md                       | 15 ++-------------
 pica-metrics-bot/config.json                     |  8 ++++++++
 pica-metrics-bot/docker-compose.yml              |  4 ++--
 pica-metrics-bot/entrypoint.sh                   | 12 ++++++++++++
 pica-metrics-bot/picasoft-metrics-bot            |  1 -
 pica-metrics-bot/secrets/account.secrets.example |  2 ++
 8 files changed, 42 insertions(+), 18 deletions(-)
 delete mode 160000 pica-metrics-bot/picasoft-metrics-bot

diff --git a/pica-metrics-bot/CHANGELOG.md b/pica-metrics-bot/CHANGELOG.md
index d7c25cdf..b3b16d10 100644
--- a/pica-metrics-bot/CHANGELOG.md
+++ b/pica-metrics-bot/CHANGELOG.md
@@ -1,3 +1,11 @@
+Pour les prochaines versions, voir le changelog des releases ici : https://gitlab.utc.fr/picasoft/picasoft-metrics-bot
+Désormais, les images construites ici sont synchronisées avec le numéro de tag des releases.
+
+# Version 1.0
+
+* Synchronisation du numéro de version avec les tags sur le dépôt distant
+* Ajout de Wekan et meilleure gestion d'erreur pour Etherpad
+
 # Version 1.0.2
 
 * Mise à jour avec le code permettant de récupérer le nombre de connexion websocket sur Mattermost.
diff --git a/pica-metrics-bot/Dockerfile b/pica-metrics-bot/Dockerfile
index 3ea6c860..45cfacdb 100644
--- a/pica-metrics-bot/Dockerfile
+++ b/pica-metrics-bot/Dockerfile
@@ -1,9 +1,15 @@
 FROM python:3.8-alpine
 
 LABEL maintainer quentinduchemin@tuta.io
+ARG METRICS_BOT_VERSION=v1.0
 
-# Copy all code
-COPY picasoft-metrics-bot /code
+RUN apt-get install -y wget
+
+# Get release
+RUN wget -O code.tar.gz https://gitlab.utc.fr/picasoft/projets/picasoft-metrics-bot/-/archive/${METRICS_BOT_VERSION}/picasoft-metrics-bot-${METRICS_BOT_VERSION}.tar.gz \
+    && tar xvf code.tar.gz \
+    && mv picasoft-metrics-bot-${METRICS_BOT_VERSION} /code
+    && rm code.tar.gz
 
 # Custom Picasoft entrypoint
 COPY entrypoint.sh /code/entrypoint.sh
diff --git a/pica-metrics-bot/README.md b/pica-metrics-bot/README.md
index dab4b505..622a8fbc 100644
--- a/pica-metrics-bot/README.md
+++ b/pica-metrics-bot/README.md
@@ -2,12 +2,9 @@
 
 Dans ce dossier se trouvent les éléments de configuration permettant de faire fonctionner [Picasoft Metrics Bot](https://gitlab.utc.fr/picasoft/projets/picasoft-metrics-bot).
 
-C'est un projet indépendant ajouté en submodule dans le dossier [picasoft-metrics-bot](./picasoft-metrics-bot), car il est léger et car cela facilite la construction du Dockerfile.
-
 Par rapport au projet original :
 * La configuration en production est versionnée ici, et un Docker Compose adapté est proposé
 * Un [entrypoint](./entrypoint.sh) modifié permet d'injecter des secrets sous forme de variables d'environnement
-* La construction de l'image est gérée par la chaîne d'intégration et permet d'analyser la sécurité de l'image
 * Ajout d'InfluxDB directement adossé à Picasoft Metrics Bot, dans un seul Docker Compose
 
 ## Premier lancement
@@ -18,14 +15,6 @@ L'utilisateur InfluxDB qui doit être utilisé dans Picasoft Metrics Bot est cel
 
 ## Mise à jour
 
-Le projet Picasoft Metrics Bot n'a pas de numéro de version.
-
-À la place, chaque construction par la chaîne d'intégration utilisera le numéro de commit associé au submodule pour construire l'image avec le code du dépôt Picasoft Metrics Bots.
-
-Il suffit de lancer la commande suivante pour mettre à jour le submodule au dernier commit du dépôt contenant le code :
-
-```bash
-git submodule update --recursive --remote pica-metrics-bot
-```
+Il suffit de changer `METRICS_BOT_VERSION` du `Dockerfile` et d'ajuster le tag de l'image dans le fichier Compose.
 
-Puis de changer le tag dans le fichier Docker Compose, de pousser les changements et de lancer manuellement la construction au niveau du Pipeline du commit.
+Les releases sont disponibles ici : https://gitlab.utc.fr/picasoft/projets/picasoft-metrics-bot/-/releases
diff --git a/pica-metrics-bot/config.json b/pica-metrics-bot/config.json
index ee2dffcc..df3134d9 100644
--- a/pica-metrics-bot/config.json
+++ b/pica-metrics-bot/config.json
@@ -23,6 +23,14 @@
         "password" : "MATTERMOST_PASSWORD",
         "name" : "team.picasoft.net"
       }
+    ],
+    "wekan" : [
+      {
+        "url" : "https://kanban.picasoft.net",
+        "user" : "KANBAN_USER",
+        "password" : "KANBAN_PASSWORD",
+        "name" : "kanban.picasoft.net"
+      }
     ]
   }
 }
diff --git a/pica-metrics-bot/docker-compose.yml b/pica-metrics-bot/docker-compose.yml
index d7324522..2694d2ea 100644
--- a/pica-metrics-bot/docker-compose.yml
+++ b/pica-metrics-bot/docker-compose.yml
@@ -11,13 +11,13 @@ networks:
 
 services:
   metrics-bot:
-    image: registry.picasoft.net/pica-metrics-bot:v1.0.2
+    image: registry.picasoft.net/pica-metrics-bot:v1.0
     build: .
     container_name: pica-metrics-services
     volumes:
       - ./config.json:/config.json
     environment:
-      - INTERVAL_SECONDS=60
+      - INTERVAL_SECONDS=120
     env_file: ./secrets/account.secrets
     networks:
       - metrics
diff --git a/pica-metrics-bot/entrypoint.sh b/pica-metrics-bot/entrypoint.sh
index 84bafdf1..4a4078a5 100644
--- a/pica-metrics-bot/entrypoint.sh
+++ b/pica-metrics-bot/entrypoint.sh
@@ -20,6 +20,16 @@ fi
 if [ -z "${MATTERMOST_PASSWORD}" ]; then
 	echo >&2 'Error : missing required ${MATTERMOST_PASSWORD} environment variable, exiting.'
 	exit 1
+fi.
+
+if [ -z "${WEKAN_USER}" ]; then
+	echo >&2 'Error : missing required ${WEKAN_USER} environment variable, exiting.'
+	exit 1
+fi
+
+if [ -z "${WEKAN_PASSWORD}" ]; then
+	echo >&2 'Error : missing required ${WEKAN_PASSWORD} environment variable, exiting.'
+	exit 1
 fi
 
 cp /config.json /code/config/config.json
@@ -27,6 +37,8 @@ sed -i "s/INFLUXDB_USER/${INFLUXDB_USER}/g" /code/config/config.json
 sed -i "s/INFLUXDB_PASSWORD/${INFLUXDB_PASSWORD}/g" /code/config/config.json
 sed -i "s/MATTERMOST_USER/${MATTERMOST_USER}/g" /code/config/config.json
 sed -i "s/MATTERMOST_PASSWORD/${MATTERMOST_PASSWORD}/g" /code/config/config.json
+sed -i "s/WEKAN_USER/${WEKAN_USER}/g" /code/config/config.json
+sed -i "s/WEKAN_PASSWORD/${WEKAN_PASSWORD}/g" /code/config/config.json
 
 INTERVAL_SECONDS=${INTERVAL_SECONDS:-60}
 
diff --git a/pica-metrics-bot/picasoft-metrics-bot b/pica-metrics-bot/picasoft-metrics-bot
deleted file mode 160000
index 7fb6d529..00000000
--- a/pica-metrics-bot/picasoft-metrics-bot
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7fb6d5299125c25358171f70e6f62d96f149e061
diff --git a/pica-metrics-bot/secrets/account.secrets.example b/pica-metrics-bot/secrets/account.secrets.example
index 3610e14b..a9bc3322 100644
--- a/pica-metrics-bot/secrets/account.secrets.example
+++ b/pica-metrics-bot/secrets/account.secrets.example
@@ -2,3 +2,5 @@ INFLUXDB_USER=picasoft-write
 INFLUXDB_PASSWORD=password
 MATTERMOST_USER=user
 MATTERMOST_PASSWORD=password
+WEKAN_USER=user
+WEKAN_PASSWORD=password
-- 
GitLab