72 lines
1.7 KiB

#!/bin/bash
## Init is run on host
## For now it is run every time the script is launched, but
## it should be launched only once after build.
## Accessible variables are:
## - SERVICE_NAME Name of current service
## - DOCKER_BASE_IMAGE Base image from which this service might be built if any
## - SERVICE_DATASTORE Location on host of the DATASTORE of this service
## - SERVICE_CONFIGSTORE Location on host of the CONFIGSTORE of this service
. lib/common
set -e
if [ -e "$HOST_CONFIG_FILE" ]; then
echo > "$HOST_CONFIG_FILE"
else
mkdir -p "$(dirname "$HOST_CONFIG_FILE")"
touch "$HOST_CONFIG_FILE"
fi
init-config-add "
$SERVICE_NAME:
volumes:
- $HOST_CONFIG_FILE:$CONFIG_FILE
"
##
## Merge compose options
##
service_def=$(get_compose_service_def "$SERVICE_NAME") || return 1
options=$(e "$service_def" | shyaml -y get-value "options") || true
if [ "$options" ]; then
while read-0 key value; do
case "$key" in
users)
user_conf=$(make_users_config "$value") || exit 1
e "$user_conf" | ini_merge
;;
acl)
yaml_key_val_str "$key" "$value" | ini_merge
;;
*)
err "Unknown key '$key' in options."
exit 1
;;
esac
done < <(e "$options" | shyaml key-values-0)
fi
## XXXvlab: ports should be not repeated (is repeated in charm metadata, or docker image)
ini_merge <<EOF
server:
addr: ":5001"
EOF
ini_merge <<EOF
token:
issuer: "Acme auth server"
expiration: 900
EOF
## Can be modified by web-proxy relation
echo "http://$SERVICE_NAME:5001" > "$SERVICE_CONFIGSTORE/etc/docker-auth/realm"