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.

52 lines
1.2 KiB

  1. #!/bin/bash
  2. ## Should be executable N time in a row with same result.
  3. . lib/common
  4. set -e
  5. named_uid_gid=$(docker_get_uid_gid "$SERVICE_NAME" "named" "named")
  6. uid=${named_uid_gid%%$'\n'*}
  7. gid=${named_uid_gid#*$'\n'}
  8. LOGS=/var/log/bind
  9. mkdir -p "$SERVICE_DATASTORE/$LOGS"
  10. chown -R "$named_uid" "$SERVICE_DATASTORE/$LOGS"
  11. rotated_count=$(relation-get rotated-count 2>/dev/null) || true
  12. rotated_count=${rotated_count:-52}
  13. ## XXXvlab: a lot of this intelligence should be moved away into ``logrotate`` charm
  14. DST="$CONFIGSTORE/$TARGET_SERVICE_NAME/etc/logrotate.d/$SERVICE_NAME"
  15. file_put "$DST" <<EOF
  16. /var/log/docker/$SERVICE_NAME/*.log
  17. {
  18. weekly
  19. missingok
  20. dateext
  21. dateyesterday
  22. dateformat _%Y-%m-%d
  23. extension .log
  24. rotate $rotated_count
  25. compress
  26. delaycompress
  27. notifempty
  28. create 0640 :$uid :$gid
  29. sharedscripts
  30. postrotate
  31. dc exec $SERVICE_NAME /usr/sbin/rndc reconfig > /dev/null 2>/dev/null || true
  32. endscript
  33. }
  34. EOF
  35. config-add "\
  36. services:
  37. $MASTER_TARGET_SERVICE_NAME:
  38. volumes:
  39. - $DST:/etc/logrotate.d/docker-${SERVICE_NAME}:ro
  40. - $SERVICE_DATASTORE$LOGS:/var/log/docker/$SERVICE_NAME:rw
  41. $MASTER_BASE_SERVICE_NAME:
  42. volumes:
  43. - $SERVICE_DATASTORE$LOGS:$LOGS:rw
  44. "