infrastructure/app
2021-01-18 08:18:21 +01:00
..
backup Proposal: reorganize app/ folder by modules 2021-01-16 17:07:01 +01:00
core/deploy Proposal: reorganize app/ folder by modules 2021-01-16 17:07:01 +01:00
directory Proposal: reorganize app/ folder by modules 2021-01-16 17:07:01 +01:00
dummy/secrets/dummy secretmgr.py does quite a few things! 2021-01-16 20:03:00 +01:00
email Document secrets and add stub utility to manage them 2021-01-16 17:37:34 +01:00
garage Proposal: reorganize app/ folder by modules 2021-01-16 17:07:01 +01:00
im Document secrets and add stub utility to manage them 2021-01-16 17:37:34 +01:00
jitsi Document secrets and add stub utility to manage them 2021-01-16 17:37:34 +01:00
nextcloud Proposal: reorganize app/ folder by modules 2021-01-16 17:07:01 +01:00
platoo Document secrets and add stub utility to manage them 2021-01-16 17:37:34 +01:00
plume secretmgr.py does quite a few things! 2021-01-16 20:03:00 +01:00
postgres secretmgr.py does quite a few things! 2021-01-16 20:03:00 +01:00
science/deploy Proposal: reorganize app/ folder by modules 2021-01-16 17:07:01 +01:00
seafile Document secrets and add stub utility to manage them 2021-01-16 17:37:34 +01:00
traefik Proposal: reorganize app/ folder by modules 2021-01-16 17:07:01 +01:00
web_static Merge pull request 'Reorganize app/ and add script for secret management' (#29) from test_reorganize into master 2021-01-18 08:18:21 +01:00
.gitignore secretmgr.py does quite a few things! 2021-01-16 20:03:00 +01:00
docker-compose.yml Proposal: reorganize app/ folder by modules 2021-01-16 17:07:01 +01:00
README.md Add hierarchy to the README 2021-01-18 08:08:48 +01:00
requirements.txt Add some documentation + add a requirements file 2021-01-18 08:06:19 +01:00
secretmgr.py secretmgr.py does quite a few things! 2021-01-16 20:03:00 +01:00

Understand this folder hierarchy

This folder contains the following hierarchy:

  • <module>/build/<image_name>/: folders with dockerfiles and other necessary resources for building container images
  • <module>/config/: folder containing configuration files, referenced by deployment file
  • <module>/secrets/: folder containing secrets, which can be synchronized with Consul using secretmgr.py
  • <module>/deploy/: folder containing the HCL file(s) necessary for deploying the module
  • <module>/integration/: folder containing files for integration testing using docker-compose

How to install secretmgr.py dependencies

How to install its dependencies:

# on fedora:
dnf install -y openldap-devel
# on ubuntu:
apt-get install -y libldap2-dev

# for eveyrone:
pip3 install --user --requirement requirements.txt

How to use secretmgr.py

Check that all secrets are correctly deployed for app dummy:

./secretmgr.py check dummy

Generate secrets for app dummy if they don't already exist:

./secretmgr.py gen dummy

Rotate secrets for app dummy, overwriting existing ones (be careful, this is dangerous!):

./secretmgr.py regen dummy

How to upgrade our packaged apps to a new version?

  1. Edit docker-compose.yml
  2. Change the VERSION variable to the desired version
  3. Increment the docker image tag by 1 (eg: superboum/riot:v13 -> superboum/riot:v14)
  4. Run docker-compose build
  5. Run docker-compose push
  6. Done