From 5077bbd1b62d5b78da0c213c212b2f0b4574a2ec Mon Sep 17 00:00:00 2001 From: Felix Bartels <1257835+fbartels@users.noreply.github.com> Date: Wed, 23 Oct 2019 14:54:25 +0200 Subject: [PATCH] improve config options for grapi (#269) * make it possible to configure grapi through its cfg * add test for config setting in grapi * add volume for persistent data * chown and add tests for dir --- Makefile | 1 + core/commander/grapi/commander.yaml | 17 +++++++++++++++++ core/commander/spooler/commander.yaml | 5 ++++- core/goss/grapi/goss.yaml | 13 +++++++++++++ core/start-service.sh | 12 ++++++++---- docker-compose.yml | 3 +++ 6 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 core/commander/grapi/commander.yaml diff --git a/Makefile b/Makefile index eab4bb9..ff6826b 100644 --- a/Makefile +++ b/Makefile @@ -409,6 +409,7 @@ test-commander: ## Test scripts with commander commander test tests/commander.yaml COMMANDER_OPTS="--concurrent 1" COMMANDER_FILES_PATH=core/commander/server dccommander run kopano_server COMMANDER_OPTS="--concurrent 1" COMMANDER_FILES_PATH=core/commander/spooler dccommander run kopano_spooler + COMMANDER_OPTS="--concurrent 1" COMMANDER_FILES_PATH=core/commander/grapi dccommander run kopano_grapi COMMANDER_OPTS="--concurrent 1" COMMANDER_FILES_PATH=webapp dccommander run kopano_webapp COMMANDER_OPTS="--concurrent 1" COMMANDER_FILES_PATH=zpush dccommander run kopano_zpush COMMANDER_OPTS="--concurrent 1" COMMANDER_FILES_PATH=scheduler dccommander run kopano_scheduler diff --git a/core/commander/grapi/commander.yaml b/core/commander/grapi/commander.yaml new file mode 100644 index 0000000..a30c08b --- /dev/null +++ b/core/commander/grapi/commander.yaml @@ -0,0 +1,17 @@ +tests: + start-service script: + command: bash -c "shopt -s expand_aliases; alias exec='echo'; . /kopano/start-service.sh && env" + exit-code: 0 + stdout: + contains: + - enable_experimental_endpoints=true + config: + env: + KCCONF_GRAPI_ENABLE_EXPERIMENTAL_ENDPOINTS: true +config: + env: + DEBUG: ${DEBUG} + GRAPI_BACKEND: ${GRAPI_BACKEND} + LANG: ${LANG} + SERVICE_TO_START: ${SERVICE_TO_START} + PATH: ${PATH} diff --git a/core/commander/spooler/commander.yaml b/core/commander/spooler/commander.yaml index 3358d9a..5ae4db2 100755 --- a/core/commander/spooler/commander.yaml +++ b/core/commander/spooler/commander.yaml @@ -1,7 +1,10 @@ tests: test sending mail: - command: apt update && apt install -y swaks netbase && dockerize -wait tcp://"$KCCONF_SPOOLER_SMTP_SERVER":25 -timeout 1080s swaks --to user1@kopano.demo --server $KCCONF_SPOOLER_SMTP_SERVER + command: apt update && apt install -y swaks netbase && dockerize -wait tcp://"$KCCONF_SPOOLER_SMTP_SERVER":25 -timeout 1080s && swaks --to user1@kopano.demo --server $KCCONF_SPOOLER_SMTP_SERVER exit-code: 0 + stdout: + contains: + - "250 2.0.0 Ok: queued as" config: env: diff --git a/core/goss/grapi/goss.yaml b/core/goss/grapi/goss.yaml index 69859e8..4a67bee 100644 --- a/core/goss/grapi/goss.yaml +++ b/core/goss/grapi/goss.yaml @@ -1,7 +1,20 @@ file: + /var/lib/kopano-grapi: + exists: true + mode: "0755" + size: 4096 + owner: kapi + group: kopano + filetype: directory /var/run/kopano/grapi: exists: true mode: "0755" owner: kapi group: kopano filetype: directory +mount: + /var/lib/kopano-grapi: + exists: true + opts: + - rw + - relatime diff --git a/core/start-service.sh b/core/start-service.sh index 73113f9..a46e252 100755 --- a/core/start-service.sh +++ b/core/start-service.sh @@ -22,7 +22,7 @@ ADDITIONAL_KOPANO_PACKAGES=$(echo "$ADDITIONAL_KOPANO_PACKAGES" | tr -d '"') fi done -mkdir -p /kopano/data/attachments /kopano/data/kapi-kvs /tmp/"$SERVICE_TO_START" /var/run/kopano +mkdir -p /kopano/data/attachments /kopano/data/kapi-kvs /tmp/"$SERVICE_TO_START" /var/run/kopano /var/lib/kopano-grapi echo "Configure core service '$SERVICE_TO_START'" | ts /usr/bin/python3 /kopano/"$SERVICE_TO_START".py @@ -31,7 +31,8 @@ echo "Configure core service '$SERVICE_TO_START'" | ts rm -f /var/run/kopano/"$SERVICE_TO_START".pid echo "Set ownership" | ts -chown kopano:kopano /kopano/data/ /kopano/data/attachments +chown kopano:kopano /kopano/data/ /kopano/data/attachments +chown kapi:kopano /var/lib/kopano-grapi # allow helper commands given by "docker-compose run" if [ $# -gt 0 ]; then @@ -127,6 +128,9 @@ grapi) fi ;; esac + sed s/\ *=\ */=/g /etc/kopano/grapi.cfg > /tmp/grapi-env + # shellcheck disable=SC2046 + export $(grep -v '^#' /tmp/grapi-env | xargs -d '\n') # cleaning up env variables unset "${!KCCONF_@}" # the backend option is only available in more recent versions of grapi @@ -151,9 +155,9 @@ kapi) -timeout 360s fi LC_CTYPE=en_US.UTF-8 - sed -i s/\ *=\ */=/g /etc/kopano/kapid.cfg + sed s/\ *=\ */=/g /etc/kopano/kapid.cfg > /tmp/kapid-env # shellcheck disable=SC2046 - export $(grep -v '^#' /etc/kopano/kapid.cfg | xargs -d '\n') + export $(grep -v '^#' /tmp/kapid-env | xargs -d '\n') kopano-kapid setup # cleaning up env variables unset "${!KCCONF_@}" diff --git a/docker-compose.yml b/docker-compose.yml index de9bcd1..8a3b711 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -227,9 +227,11 @@ services: - kopano_server volumes: - kopanosocket/:/run/kopano + - kopanograpi/:/var/lib/kopano-grapi environment: - SERVICE_TO_START=grapi - TZ=${TZ} + - KCCONF_GRAPI_ENABLE_EXPERIMENTAL_ENDPOINTS=false env_file: - kopano_grapi.env networks: @@ -477,6 +479,7 @@ volumes: mtaconfig: mysql: kopanodata: + kopanograpi: kopanossl: kopanosocket: kopanowebapp: