From 9eaa4c068ddc72eb2764b171918281cad62212b5 Mon Sep 17 00:00:00 2001 From: Adrien Date: Mon, 27 Mar 2023 10:34:52 +0200 Subject: [PATCH 1/2] added integration folder with a docker compose file and some explanation --- integration/README.md | 11 +++++++++++ integration/config/bottin.json | 13 +++++++++++++ integration/docker-compose.yml | 16 ++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 integration/README.md create mode 100644 integration/config/bottin.json create mode 100644 integration/docker-compose.yml diff --git a/integration/README.md b/integration/README.md new file mode 100644 index 0000000..e8cc112 --- /dev/null +++ b/integration/README.md @@ -0,0 +1,11 @@ +# Intégration de Guichet dans un environnement de dev/test + +## Dev process + +On utilise `docker compose` pour mettre en place l'infrastructure dont dépend Guichet, que l'on développe. (On rajoutera Garage dedans plus tard.) + +On ne met pas Guichet dans le `compose` pour pouvoir itérer plus rapidement : un `go build` et on a la nouvelle version, sans avoir restart les dépendances (Bottin, Consul...). + +## Notes + +* Bien récupérer le password `admin` dans les logs de 1er lancement de Bottin : il ne sera pas réaffiché. \ No newline at end of file diff --git a/integration/config/bottin.json b/integration/config/bottin.json new file mode 100644 index 0000000..0b54e22 --- /dev/null +++ b/integration/config/bottin.json @@ -0,0 +1,13 @@ +{ + "suffix": "dc=bottin,dc=eu", + "bind": "bottin:389", + "consul_host": "consul:8500", + "acl": [ + "ANONYMOUS::bind:*,ou=users,dc=bottin,dc=eu:", + "ANONYMOUS::bind:cn=admin,dc=bottin,dc=eu:", + "*,dc=bottin,dc=eu::read:*:* !userpassword", + "*::read modify:SELF:*", + "cn=admin,dc=bottin,dc=eu::read add modify delete:*:*", + "*:cn=admin,ou=groups,dc=bottin,dc=eu:read add modify delete:*:*" + ] +} diff --git a/integration/docker-compose.yml b/integration/docker-compose.yml new file mode 100644 index 0000000..5ed0650 --- /dev/null +++ b/integration/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3' +services: + consul: + image: consul + restart: "always" + expose: + - "8500" + bottin: + image: dxflrs/bottin:dnp41vp8w24h4mbh0xg1mybzr1f46k41 + command: "-config /etc/bottin.json" + restart: "always" + depends_on: ["consul"] + expose: + - 389 + volumes: + - "./config/bottin.json:/etc/bottin.json" From 5fb0139a3fccde294ab35659ef839618400dcca2 Mon Sep 17 00:00:00 2001 From: Adrien Date: Mon, 27 Mar 2023 11:13:09 +0200 Subject: [PATCH 2/2] bridged Guichet (built directly with Go) with the integration docker-compose --- .gitignore | 1 + integration/README.md | 7 ++++++- integration/config/guichet.json | 34 +++++++++++++++++++++++++++++++++ integration/docker-compose.yml | 6 +++--- 4 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 integration/config/guichet.json diff --git a/.gitignore b/.gitignore index e1a6d79..3ff2a32 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ guichet.static config.json result .direnv/ +password diff --git a/integration/README.md b/integration/README.md index e8cc112..01cde3f 100644 --- a/integration/README.md +++ b/integration/README.md @@ -8,4 +8,9 @@ On ne met pas Guichet dans le `compose` pour pouvoir itérer plus rapidement : u ## Notes -* Bien récupérer le password `admin` dans les logs de 1er lancement de Bottin : il ne sera pas réaffiché. \ No newline at end of file +* Bien récupérer le password `admin` dans les logs de 1er lancement de Bottin : il ne sera pas réaffiché. +* Identifiant de l'admin sur Guichet : `cn=admin,dc=bottin,dc=eu` because il n'est pas dans `ou=users,dc=bottin,dc=eu` qui est l'organisation par défaut dans laquelle on va chercher les utilisateurs. + +## TODO + +* Bridger Garage/S3 (pour le moment ne sert que pour les avatars dans l'annuaire) \ No newline at end of file diff --git a/integration/config/guichet.json b/integration/config/guichet.json new file mode 100644 index 0000000..8f6c20b --- /dev/null +++ b/integration/config/guichet.json @@ -0,0 +1,34 @@ +{ + "http_bind_addr": ":9991", + "ldap_server_addr": "ldap://127.0.0.1:389", + + "base_dn": "dc=bottin,dc=eu", + "user_base_dn": "ou=users,dc=bottin,dc=eu", + "user_name_attr": "cn", + "group_base_dn": "ou=groups,dc=bottin,dc=eu", + "group_name_attr": "cn", + + "invitation_base_dn": "ou=invitations,dc=bottin,dc=eu", + "invitation_name_attr": "cn", + "invited_mail_format": "{}@bottin.eu", + "invited_auto_groups": [ + "cn=email,ou=groups,dc=bottin,dc=eu" + ], + + "web_address": "https://guichet.bottin.eu", + "mail_from": "welcome@bottin.eu", + "smtp_server": "smtp.bottin.eu", + "smtp_username": "guichet", + "smtp_password": "", + + "admin_account": "cn=admin,dc=bottin,dc=eu", + "group_can_admin": "gid=admin,ou=groups,dc=bottin,dc=eu", + "group_can_invite": "", + + "s3_endpoint": "garage.bottin.eu", + "s3_access_key": "", + "s3_secret_key": "", + "s3_region": "garage", + "s3_bucket": "bottin-pictures" +} + diff --git a/integration/docker-compose.yml b/integration/docker-compose.yml index 5ed0650..6331737 100644 --- a/integration/docker-compose.yml +++ b/integration/docker-compose.yml @@ -4,13 +4,13 @@ services: image: consul restart: "always" expose: - - "8500" + - 8500 bottin: image: dxflrs/bottin:dnp41vp8w24h4mbh0xg1mybzr1f46k41 command: "-config /etc/bottin.json" restart: "always" depends_on: ["consul"] - expose: - - 389 + ports: + - "389:389" volumes: - "./config/bottin.json:/etc/bottin.json"