80 lines
1.9 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
"
ini_merge <<EOF || exit 1
version: 0.1
storage:
filesystem:
rootdirectory: /var/lib/docker-registry
http:
addr: $SERVICE_NAME:5000
net: tcp
host: http://$SERVICE_NAME:5000
## XXXvlab: not used for now
#secret: asecretforlocaldevelopment
relativeurls: false
# debug:
# addr: localhost:5001
# headers:
# X-Content-Type-Options: [nosniff]
# http2:
# disabled: false
EOF
##
## 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
auth|storage|middleware|reporting|http|redis|version)
err "You should not configure '$key' in this charm."
exit 1
;;
log|loglevel|notifications|health|proxy|compatibility|validation)
continue
;;
*)
err "Unknown key '$key' in options."
exit 1
;;
esac
done < <(e "$options" | shyaml key-values-0)
e "$options" | ini_merge || exit 1
fi