* explicitly specify the dirs that are getting rotated
* app log rules are now moved to logrotate.ejs
* we keep task logs for a week
Some testing notes:
* touch -d "10 days ago" foo
* logrotate /etc/logrotate.conf -v to test rotation. there is a state
file created in /var/lib/logrotate/status. If we have a 'daily' rule,
it will get processed only after a log line in status exists and it's atleast
1 day old timestamp.
https://github.com/logrotate/logrotate/blob/master/logrotate.c is quite
readable
We want to keep updates automatic and don't want to keep reminding
users that apps are getting updated etc (i.e beyong the weekly
digest). The reason to remind them is so they can check if the
app updated correctly. in some very corner cases, the app is not
really checked upon for a while and people forget about them until
they check them later. in such cases, it's too late to recover because
the backpus gets cleaned up. this preserve seconds fields, let's us
mark 'update' backups for preservation for 3 weeks.
If volume location changes, we re-create the volume. However, volume
can only be removed if all the containers using it are deleted. For
example, the scheduler might be running a container using it.
this allows to hyphenate the subdomain correctly in all places
the original issue was that altDomain in caas was not working
because waitForDnsRecord was not hyphenating.
During restore, only the superfluous addons are teardown. Rest of
the addons are kept as-is. This is done to preserve the addon
configuration across restores (thus preserving db passwords).
We then rely on the restoreApp logic to call restore in each addon.
Each restore currently setup, clear and them imports the backup.
With the volume changes, we have moved volume create/delete to the
localstorage addon. Currently, the localstorage addon has no concept of restore
because the backup download extracts it directly into the volume.
Because of the above, during the restore code path, we don't teardown
the localstorage addon and thus files are left behind in appid/data/. This
prevents deleteAppDir() from removing the appid/ directory.
The fix is to add a new 'clear' command to addons. Before restore, we
clear the addons.