balena-supervisor/CHANGELOG.md

364 lines
13 KiB
Markdown
Raw Normal View History

* Fix nodejs for the i386 architectures [Theodor]
* Provide a better error message when app is not found for purging [Pablo]
* Only iterate through remote apps to set device config [Pablo]
2016-10-31 03:50:09 +00:00
# v2.8.1
* Properly delete dependent apps and their corresponding devices [Pablo]
2016-10-31 00:51:25 +00:00
# v2.8.0
* Add HostConfig in container create instead of start [Pablo]
* Make it clear in logs when container was already running [Pablo]
* Stop all apps before rebooting or shutting down [Pablo]
2016-10-23 23:24:36 +00:00
* Update request-progress to v2.0.1 [Pablo]
2016-10-24 19:27:31 +00:00
# v2.7.1
* Use multiArgs to promisify gosuper requests [Pablo]
* Also make it explicit in mixpanel events when it's a full image download [Pablo]
* Log whether deltas are being used when downloading an app [Pablo]
2016-10-23 23:17:29 +00:00
# v2.7.0
2016-10-21 22:13:31 +00:00
* Upgrade docker-progress to v2.3.1 [Pablo]
* Fixed multiple update loops appearing after a long period of updates failing. [Page]
* Avoid restarting the app if the device name changes [Pablo]
* Use appId in dependent app assets tar path, and only create the tar if it doesn't exist [Pablo]
* Support AUFS by upgrading node-docker-delta to 1.0.0 and docker-toolbelt to 1.3.0 [Pablo]
* Send the uuid as distinct_id for mixpanel events [Pablo]
2016-10-21 15:16:17 +00:00
* gosuper: support i386 platforms without MMX instructions [petrosagg]
2016-10-13 21:08:59 +00:00
# v2.6.3
* Properly set device name, and set undefined arguments to setConfig as null [Pablo]
2016-10-11 20:06:02 +00:00
# v2.6.2
2016-10-10 21:14:31 +00:00
* Updated knex to ~0.12.3
2016-10-11 16:05:20 +00:00
# v2.6.1
2016-10-10 21:14:31 +00:00
* Do not use parsed JSON to compare dep. device state [Pablo]
2016-10-10 22:01:00 +00:00
# v2.6.0
* Fix docker utils getImageEnv by correctly parsing the returned array [Pablo]
* Avoid installing npm dependencies twice [Pablo]
2016-10-06 01:28:43 +00:00
* Updated to bluebird 3 [Page]
* Better parameter handling in PUT /v1/devices/:uuid [Pablo]
* An update hook response of 200 will cause the proxyvisor to stop pinging the hook [Pablo]
* Allow deleting dependent apps and devices [Pablo]
* Implement delete dependent device hook [Pablo]
* Omit some fields when responding with a device object [Pablo]
* Add validation to dependent device provisioning [Pablo]
# v2.5.2
* Removed obsolete resolv.conf bind-mount [petrosagg]
2016-10-06 01:29:52 +00:00
* Updated to pinejs-client 2 [Page]
2016-10-06 11:57:06 +00:00
# v2.5.1
* Store config vars when there's nothing else to update [Pablo]
* Do not mark an update as failed if the hook failed [Pablo]
* When hitting the dependent devices hook, send appId as int [Pablo]
2016-10-03 20:25:08 +00:00
* Updated to lodash 4 [Page]
2016-10-05 19:41:54 +00:00
* Updated to coffeescript 1.11 [Page]
* In delete-then-download, only delete when a download is needed [Pablo]
* Compare config vars to trigger an app restart [Pablo]
* Fix disabling logs to display on newer OS with different service name [Pablo]
* In cleanup, normalize all image tags for comparison [Pablo]
* Use getRegistryAndName from docker-toolbelt 1.2.0 [Pablo]
2016-10-01 03:29:57 +00:00
# v2.5.0
* Switch to v2 api to be able to set is_online [Page]
* Implement proxyvisor API with dependent device handling [Pablo]
* Use the state endpoint from the API to get the full device state [Pablo]
* Add a deviceConfig db table to store host config separately, and allow deleting config.txt entries [Pablo]
* Expose RESIN_APP_NAME, RESIN_APP_RELEASE, RESIN_DEVICE_NAME_AT_INIT, RESIN_DEVICE_TYPE and RESIN_HOST_OS_VERSION env vars [Pablo]
* Add missing error handler on a stream in docker-utils [Pablo]
2016-09-30 22:23:55 +00:00
# v2.4.0
* On cleanup, force removal for images and containers, and remove container volumes [Pablo]
* Add system logs for Shutdown, Reboot and Purge [Pablo]
2016-09-26 20:32:57 +00:00
# v2.3.0
* Implement delete-then-download update strategy [Pablo]
2016-09-23 21:30:31 +00:00
* Bump node-docker-delta to 0.0.12 [Pablo, Kostas]
2016-09-26 14:32:43 +00:00
# v2.2.1
* Fix ENV bug in build process [petrosagg]
2016-09-23 14:38:08 +00:00
# v2.2.0
* Add resin-vpn interface IP filtering to gosupervisor [Praneeth]
* Compress go binary with upx [petrosagg]
* Switch to go version 1.6 [petrosagg]
* Print all logs to stdout of container instead of file [petrosagg]
* Upgrade nodejs to version 6.5 [petrosagg]
* Switch initsystem from supervisor to busybox init [petrosagg]
* Switch build to openembedded base images [petrosagg]
* DRY up calls to gosuper API, and use empty Host header [Pablo]
2016-09-09 12:24:04 +00:00
# v2.1.1
* Add iptables rules to allow resin-vpn named interface to be used by VPN [Praneeth]
2016-09-08 18:58:12 +00:00
* Updated to coffee-script ~1.10.0 [Page]
* Catch exec format error and provide friendlier error message [Aleksis]
2016-09-05 17:59:44 +00:00
# v2.1.0
* Pick up new variable from hostOS, pointing to the mount point of the hostOS's boot partition [Theodor]
2016-08-31 18:16:49 +00:00
# v2.0.0
* **[Breaking]** Change the logger to send at a specific interval and with a different message format [Pablo]
2016-08-16 21:02:30 +00:00
# v1.14.0
2016-08-15 21:25:31 +00:00
* Allow using an HTTP header for auth [Pablo]
2016-08-16 20:35:04 +00:00
* Add iptables rules to block requests to the supervisor API from all interfaces except vpn, docker and local [Pablo]
2016-08-09 18:23:27 +00:00
# v1.13.2
* bootstrap: if offlineMode is enabled, persist only the uuid [petrosagg]
2016-07-29 00:45:29 +00:00
# v1.13.1
* Using `links` in compose files is now allowed [petrosagg]
2016-07-27 09:54:42 +00:00
# v1.13.0
* Allow the supervisor to work in offline mode [Pablo]
* Fix duplicate logs issue [Kostas]
* **[Breaking]** Do not bind mount /run/dbus to /run/dbus [Pablo]
* Default to not bind mounting kmod if container distro can't be found [Pablo]
* Use log-timestamp to add timestamps to logs [Pablo]
2016-07-15 23:56:09 +00:00
# v1.12.2
* Bind mount kmod if the container is debian or raspbian [Pablo]
2016-07-08 17:02:06 +00:00
# v1.12.1
* Fix preloaded apps by passing appId to extendEnvVars
2016-06-28 17:50:12 +00:00
# v1.12.0
* Add endpoints for docker-compose up and down [Pablo]
2016-06-23 23:16:45 +00:00
# v1.11.6
* Fixed deltas for older docker daemon versions [petrosagg]
2016-06-23 20:21:06 +00:00
# v1.11.5
* Fix entry.sh when DOCKER_ROOT isn't set [Page]
2016-06-17 18:24:21 +00:00
# v1.11.4
* Cleanup docker images if delta failed [petrosagg]
2016-06-14 16:50:50 +00:00
* Make the data path configurable [Pablo]
2016-06-11 15:22:51 +00:00
# v1.11.3
* Add listener for container events and reattach on restart [Pablo]
* fix deltas by not using the supervisor as source [Pablo]
2016-06-10 19:45:13 +00:00
# v1.11.2
* fix delta error handling by listening for the 'error' event [petrosagg]
2016-06-09 14:17:07 +00:00
# v1.11.1
* Use sh for postinstall as alpine has no bash [Pablo]
* update docker-delta to 0.0.8 [petrosagg]
* symlink docker root to default path if not already there [petrosagg]
2016-06-07 16:01:38 +00:00
# v1.11.0
2016-06-07 15:50:25 +00:00
* Add restart policies and change default to auto-restart [Aleksis]
2016-06-07 14:30:44 +00:00
# v1.10.1
* Switch to docker-delta library to use deltas v2 [petrosagg]
* Correctly compare container image name on cleanup [Pablo]
* Log useful supervisor info to stdout/stderr [Kostas]
2016-05-26 14:49:40 +00:00
# v1.10.0
* Fix progress bars on docker version 1.10 [Aleksis]
2016-05-24 03:06:36 +00:00
# v1.9.0
* Fix reporting of supervisor version for alpine supervisor [Pablo]
2016-05-18 18:11:36 +00:00
* Use rwlock to block when pulling images [Pablo]
* Increase API timeout to 15 minutes, and make it configurable [Pablo]
* Add endpoint to load images from a docker save tar [Pablo]
* Add alpine supervisor build information [Trong]
* Add endpoints to manage images and containers locally [Pablo]
* Only use bodyParser for endpoints that need it [Pablo]
2016-05-09 22:35:35 +00:00
* Add RESIN_APP_ID variable [Pablo]
* Increase delta request timeout to 15 minutes [Pablo]
2016-04-25 10:38:01 +00:00
# v1.8.0
2016-04-27 18:50:40 +00:00
* Add endpoints to start, stop and get app [Pablo, Kostas]
* Removed a bunch ofobsolete code for the old terminal, reducing the supervisor size considerably. [Page]
2016-04-08 19:51:39 +00:00
2016-03-28 09:30:30 +00:00
# v1.7.0
2016-03-18 18:24:56 +00:00
* Add RESIN_HOST_LOG_TO_DISPLAY variable [Pablo]
* Add system logs for special actions and host config [Pablo]
* Fix setting config.txt for RPi 3 [Pablo]
* Fix saving config vars to DB before reboot [Pablo]
* Bind mount host /var/lib/connman to application /host_var/lib/connman [Aleksis]
* Add RESIN_SUPERVISOR_DELTA to special list so that app is not restarted when it changes [Pablo]
2016-03-08 15:31:48 +00:00
# v1.6.1
2016-03-04 18:26:26 +00:00
* Reduce noise in logs [Kostas]
2016-02-22 17:38:15 +00:00
# v1.6.0
2016-02-15 20:34:11 +00:00
* Add endpoint to get device state [Pablo]
* Check for valid strings or ints in all config values [Pablo]
2016-02-15 19:03:06 +00:00
* Remove quotes in OS version [Pablo]
2016-02-09 13:28:11 +00:00
# v1.5.0
2016-01-28 14:10:15 +00:00
* Add support for delta image download [petrosagg and Pablo]
2016-01-28 14:04:36 +00:00
# v1.4.0
2016-01-20 19:57:17 +00:00
* Report Host OS version to the API [Pablo]
* Use _.defaults instead of _.extend to ensure internal env vars are not overwritten [Pablo]
2016-01-21 20:50:47 +00:00
* Expose resin API key to apps [Pablo]
* On download start, set download_progress to 0. On finish, set state to Idle [Pablo]
* Set GOARM separately for each architecture [Pablo]
* Add armv5 (armel) build [Trong]
* Add OOM protection for the supervisor container, openvpn and connmand [Praneeth]
2015-12-17 19:44:11 +00:00
# v1.3.2
2015-12-10 15:26:36 +00:00
* Do not report the tun addresses to API [Praneeth]
2015-12-07 18:13:58 +00:00
# v1.3.1
* Only save the app if starting the container was successful [Pablo]
2015-12-01 18:10:40 +00:00
# v1.3.0
* Remove volumes when removing a container [Pablo]
* Refactor the still undocumented special env vars into RESIN_SUPERVISOR_ [Pablo]
* Implement several update strategies (kill before download, 0-downtime) [Pablo]
* Fix the error that comes up when no ip addresses are returned by gosuper [Praneeth]
* Switched to docker-progress for pull progress. [Page]
* Fix semver versioning in tcp-ping endpoint. [Praneeth]
2015-11-10 12:02:24 +00:00
2015-11-04 16:28:06 +00:00
# v1.2.1
2015-10-28 23:02:00 +00:00
* Use random name for PubNub channel and report to API [Pablo]
2015-10-16 15:37:49 +00:00
# v1.2.0
* Don't bind mount (the sometimes non-existent) docker.sock [Pablo]
* Expose a RESIN_SUPERVISOR_VERSION env var to app [Pablo]
2015-10-15 18:36:16 +00:00
# v1.1.1
* Prevent non-fatal errors from causing the supervisor to exit [Lorenzo]
* Use buildtime env vars as the default Pubnub and Mixpanel keys [Pablo]
2015-10-09 17:12:27 +00:00
# v1.1.0
* Switch back to using arch-based node images [Pablo]
* Don't allow bootstrap to delete apiSecret from DB [Pablo]
* Add API endpoint to expire and create new API key [Pablo]
* Enable control of API poll interval through Device Variables [Praneeth]
* Allow control of VPN + TCP check + Pub nub logs with Device Environment variables [Praneeth]
* Add GO api for openvpn control [Praneeth]
2015-10-08 14:10:33 +00:00
# v1.0.2
* Fix getting API key from DB by returning its .value [Pablo]
2015-10-07 21:06:31 +00:00
# v1.0.1
2015-10-02 17:18:23 +00:00
* Pass supervisor API key to app, don't regenerate the key, and authenticate ALL requests [Pablo]
* Use raspberrypi2 base image for armv7hf [Pablo]
2015-10-06 14:44:38 +00:00
* Bugfix: wrap all errors from update as Error objects - prevents image cleanup on download failures [Pablo]
* Wait 10 seconds after sending SIGTERM and before sending SIGKILL when stopping a container [petrosagg]
2015-10-02 14:38:06 +00:00
# v1.0.0
* Expose supervisor API to app by allowing all requests from 127.0.0.1 and passing address and port as env vars [Pablo]
* Only apply special actions / boot config on change, and always persist to DB [Pablo]
2015-10-01 18:32:18 +00:00
# v0.0.18
* Fix preloaded apps so that they have the complete environment [Pablo]
2015-09-29 20:13:02 +00:00
# v0.0.17
* Updated bases image to board-specific, and all node versions to 0.10.40-slim [Pablo]
2015-09-25 16:31:06 +00:00
* Allow changing RPi config.txt with environment variables [Pablo]
* Allow special env vars with a callback which don't cause an app restart [Pablo and Praneeth]
* Remove unused config.supervisorContainer in config.coffee [Praneeth]
* Implement and use golang endpoint for getting IPs of the device, also fixes duplicate IP reporting in the JS implementation [Praneeth]
2015-09-07 13:29:03 +00:00
* Refactor bootstrapping to run in background [Pablo]
* Run preloaded app images [Pablo]
* Add API endpoints for device reboot and shutdown [Pablo]
2015-09-08 15:59:30 +00:00
* Add /restart endpoint to restart container [Pablo]
2015-09-10 11:07:42 +00:00
* Add additional mount point for the host dbus on host_run/dbus [Praneeth]
* Switch to golang 1.5.1 for compiling [Praneeth]
2015-09-07 13:05:45 +00:00
* Allow /purge to be called with appId as string or number [Pablo]
* Fetch containerId from DB within lock [Pablo]
* Change update cycle to map by appId [Pablo]
* Allow updates to be forced via an env var or an API call [Pablo]
* Use lockfile to lock updates per app [Pablo]
# v0.0.16
2015-09-07 09:36:52 +00:00
* Disabled the TCP ping whilst the VPN is connected. [Praneeth]
* Added TCP ping enable/disable endpoints. [Praneeth]
* Added initial go supervisor, using it to purge the /data directory of apps. [Pablo]
* Mounted /lib/firmware into the user container. [Pablo]
* Fixed spaces in env vars for web terminal. [Petros]
* Added missing return when no app id specified. [Pablo]
* Try to populate the docker cache before building. [Page]
2015-07-23 14:55:01 +00:00
# v0.0.15
* Make resolv.conf writable from a user container. [Praneeth]
* Updated pubnub (3.7.13 doesn't seem to have the heartbeat unnecessarily)
* Fixed an issue where an image would not be cleaned up if it was tagged in multiple repos. [Page]
2015-07-15 21:25:35 +00:00
* Use JOBS=MAX for npm install. [Page]
* Updated pinejs-client so that valid ssl certificates are enforced by default. [Page]
* Write the `registered_at` time to config.json as well, in case there is a failure between writing to config.json and writing to knex [Page]
2015-05-12 09:13:01 +00:00
# v0.0.14
2015-05-07 15:27:27 +00:00
* Clean up tmp files left behind by npm [Page]
* Fix an error where mixpanel events would have the wrong uuid set on first provision. [Page]
2015-05-06 12:33:11 +00:00
* Update knexjs to ~0.8.3, which uses lodash 3 and means it will be deduplicated (reducing image size and runtime memory usage) [Page]
2015-05-04 11:45:50 +00:00
* Stop caching config.json, avoids a race that could cause getting stuck repeatedly trying to register [Page]
2015-05-05 14:32:38 +00:00
# v0.0.13
2015-04-30 09:43:00 +00:00
* Bind mount /etc/resolv.conf as ro for application containers and supervisor [Praneeth]
2015-05-05 14:32:38 +00:00
2015-04-15 18:13:39 +00:00
# v0.0.12
* Stopped displaying an error message when trying to start a container that is already started.
* Improved error messages reported to the user in the case of finding an empty string.
* Switched to using the dockerode pull progress mechanism.
* Fixed trying to delete supervisor container when it reports an alternate tag instead of the primary tag.
2015-04-15 18:13:39 +00:00
* Switched to using the i386-node image as a base for the i386-supervisor
* Fixed reporting error objects to mixpanel.