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.

40 lines
1.1 KiB

  1. #!/bin/bash
  2. ## Init is run on host
  3. ## For now it is run every time the script is launched, but
  4. ## it should be launched only once after build.
  5. ## Accessible variables are:
  6. ## - SERVICE_NAME Name of current service
  7. ## - DOCKER_BASE_IMAGE Base image from which this service might be built if any
  8. ## - SERVICE_DATASTORE Location on host of the DATASTORE of this service
  9. ## - SERVICE_CONFIGSTORE Location on host of the CONFIGSTORE of this service
  10. set -e
  11. service_def=$(get_compose_service_def "$SERVICE_NAME")
  12. keys=$(echo "$service_def" | shyaml get-value options.keys 2>/dev/null) || true
  13. [ "$keys" ] || exit 0
  14. local_path_key=/etc/rsync/keys
  15. host_path_key="$SERVICE_CONFIGSTORE${local_path_key}"
  16. key_nb=0
  17. volume_keys=()
  18. while read-0 key; do
  19. debug "Creating access key ${key_nb}" || true
  20. echo "$key" | file_put "$host_path_key/key_${key_nb}.pub"
  21. ((key_nb++)) || true
  22. done < <(echo "$keys" | shyaml get-values-0)
  23. volume_keys+=("$host_path_key:$local_path_key:ro")
  24. init-config-add "\
  25. $SERVICE_NAME:
  26. volumes:
  27. - $host_path_key:$local_path_key:ro
  28. "