forked from 0k/0k-charms
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.7 KiB
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"
|