balena-supervisor/CHANGELOG.md
Pablo Carranza Velez 50b865737b Start using versionist for versioning and changelog
We use the default versionist configuration.
Changelog has been edited to match the versionist format as much as possible.

Change-Type: patch
Signed-off-by: Pablo Carranza Velez <pablo@resin.io>
2016-12-15 19:14:07 -03:00

16 KiB

Changelog for resin-supervisor

All notable changes to this project will be documented in this file automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY! This project adheres to Semantic Versioning.

v2.8.3 - 2016-11-23

  • Fallback to DROP when iptables REJECT is not available [Pablo Carranza Velez]

v2.8.2 - 2016-11-07

  • Update the supervisor base to 20161103 to include the i386 fix [Pablo Carranza Velez]
  • Fix an error when trying to call logSystemEvent with an undefined app [Pagan Gazzard]
  • Fix nodejs for the i386 architectures [Theodor Gherzan]
  • Provide a better error message when app is not found for purging [Pablo Carranza Velez]
  • Only iterate through remote apps to set device config [Pablo Carranza Velez]

v2.8.1 - 2016-10-31

  • Properly delete dependent apps and their corresponding devices [Pablo Carranza Velez]

v2.8.0 - 2016-10-30

  • Add HostConfig in container create instead of start [Pablo Carranza Velez]
  • Make it clear in logs when container was already running [Pablo Carranza Velez]
  • Stop all apps before rebooting or shutting down [Pablo Carranza Velez]
  • Update request-progress to v2.0.1 [Pablo Carranza Velez]

v2.7.1 - 2016-10-24

  • Use multiArgs to promisify gosuper requests [Pablo Carranza Velez]
  • Also make it explicit in mixpanel events when it's a full image download [Pablo Carranza Velez]
  • Log whether deltas are being used when downloading an app [Pablo Carranza Velez]

v2.7.0 - 2016-10-23

  • Upgrade docker-progress to v2.3.1 [Pablo Carranza Velez]
  • Fixed multiple update loops appearing after a long period of updates failing. [Pagan Gazzard]
  • Avoid restarting the app if the device name changes [Pablo Carranza Velez]
  • Use appId in dependent app assets tar path, and only create the tar if it doesn't exist [Pablo Carranza Velez]
  • Support AUFS by upgrading node-docker-delta to 1.0.0 and docker-toolbelt to 1.3.0 [Pablo Carranza Velez]
  • Send the uuid as distinct_id for mixpanel events [Pablo Carranza Velez]
  • gosuper: support i386 platforms without MMX instructions [Petros Angelatos]

v2.6.3 - 2016-10-13

  • Properly set device name, and set undefined arguments to setConfig as null [Pablo Carranza Velez]

v2.6.2 - 2016-10-11

  • Updated knex to ~0.12.3

v2.6.1 - 2016-10-11

  • Do not use parsed JSON to compare dep. device state [Pablo Carranza Velez]

v2.6.0 - 2016-10-10

  • Fix docker utils getImageEnv by correctly parsing the returned array [Pablo Carranza Velez]
  • Avoid installing npm dependencies twice [Pablo Carranza Velez]
  • Updated to bluebird 3 [Pagan Gazzard]
  • Better parameter handling in PUT /v1/devices/:uuid [Pablo Carranza Velez]
  • An update hook response of 200 will cause the proxyvisor to stop pinging the hook [Pablo Carranza Velez]
  • Allow deleting dependent apps and devices [Pablo Carranza Velez]
  • Implement delete dependent device hook [Pablo Carranza Velez]
  • Omit some fields when responding with a device object [Pablo Carranza Velez]
  • Add validation to dependent device provisioning [Pablo Carranza Velez]

v2.5.2 - 2016-10-07

  • Removed obsolete resolv.conf bind-mount [Petros Angelatos]
  • Updated to pinejs-client 2 [Pagan Gazzard]

v2.5.1 - 2016-10-06

  • Store config vars when there's nothing else to update [Pablo Carranza Velez]
  • Do not mark an update as failed if the hook failed [Pablo Carranza Velez]
  • When hitting the dependent devices hook, send appId as int [Pablo Carranza Velez]
  • Updated to lodash 4 [Pagan Gazzard]
  • Updated to coffeescript 1.11 [Pagan Gazzard]
  • In delete-then-download, only delete when a download is needed [Pablo Carranza Velez]
  • Compare config vars to trigger an app restart [Pablo Carranza Velez]
  • Fix disabling logs to display on newer OS with different service name [Pablo Carranza Velez]
  • In cleanup, normalize all image tags for comparison [Pablo Carranza Velez]
  • Use getRegistryAndName from docker-toolbelt 1.2.0 [Pablo Carranza Velez]

v2.5.0 - 2016-10-01

  • Switch to v2 api to be able to set is_online [Pagan Gazzard]
  • Implement proxyvisor API with dependent device handling [Pablo Carranza Velez]
  • Use the state endpoint from the API to get the full device state [Pablo Carranza Velez]
  • Add a deviceConfig db table to store host config separately, and allow deleting config.txt entries [Pablo Carranza Velez]
  • Expose RESIN_APP_NAME, RESIN_APP_RELEASE, RESIN_DEVICE_NAME_AT_INIT, RESIN_DEVICE_TYPE and RESIN_HOST_OS_VERSION env vars [Pablo Carranza Velez]
  • Add missing error handler on a stream in docker-utils [Pablo Carranza Velez]

v2.4.0 - 2016-09-30

  • On cleanup, force removal for images and containers, and remove container volumes [Pablo Carranza Velez]
  • Add system logs for Shutdown, Reboot and Purge [Pablo Carranza Velez]

v2.3.0 - 2016-09-26

  • Implement delete-then-download update strategy [Pablo Carranza Velez]
  • Bump node-docker-delta to 0.0.12 [Pablo, Kostas]

v2.2.1 - 2016-09-26

  • Fix ENV bug in build process [Petros Angelatos]

v2.2.0 - 2016-09-23

  • Add resin-vpn interface IP filtering to gosupervisor [Praneeth]
  • Compress go binary with upx [Petros Angelatos]
  • Switch to go version 1.6 [Petros Angelatos]
  • Print all logs to stdout of container instead of file [Petros Angelatos]
  • Upgrade nodejs to version 6.5 [Petros Angelatos]
  • Switch initsystem from supervisor to busybox init [Petros Angelatos]
  • Switch build to openembedded base images [Petros Angelatos]
  • DRY up calls to gosuper API, and use empty Host header [Pablo Carranza Velez]

v2.1.1 - 2016-09-09

  • Add iptables rules to allow resin-vpn named interface to be used by VPN [Praneeth]
  • Updated to coffee-script ~1.10.0 [Pagan Gazzard]
  • Catch exec format error and provide friendlier error message [Aleksis]

v2.1.0 - 2016-09-05

  • Pick up new variable from hostOS, pointing to the mount point of the hostOS's boot partition [Theodor Gherzan]

v2.0.0 - 2016-08-31

  • [Breaking] Change the logger to send at a specific interval and with a different message format [Pablo Carranza Velez]

v1.14.0 - 2016-08-16

  • Allow using an HTTP header for auth [Pablo Carranza Velez]
  • Add iptables rules to block requests to the supervisor API from all interfaces except vpn, docker and local [Pablo Carranza Velez]

v1.13.2 - 2016-08-09

  • bootstrap: if offlineMode is enabled, persist only the uuid [Petros Angelatos]

v1.13.1 - 2016-07-28

  • Using links in compose files is now allowed [Petros Angelatos]

v1.13.0 - 2016-07-27

  • Allow the supervisor to work in offline mode [Pablo Carranza Velez]
  • Fix duplicate logs issue [Kostas Lekkas]
  • [Breaking] Do not bind mount /run/dbus to /run/dbus [Pablo Carranza Velez]
  • Default to not bind mounting kmod if container distro can't be found [Pablo Carranza Velez]
  • Use log-timestamp to add timestamps to logs [Pablo Carranza Velez]

v1.12.2 - 2016-07-15

  • Bind mount kmod if the container is debian or raspbian [Pablo Carranza Velez]

v1.12.1 - 2016-07-08

  • Fix preloaded apps by passing appId to extendEnvVars

v1.12.0 - 2016-06-28

  • Add endpoints for docker-compose up and down [Pablo Carranza Velez]

v1.11.6 - 2016-06-23

  • Fixed deltas for older docker daemon versions [Petros Angelatos]

v1.11.5 - 2016-06-23

  • Fix entry.sh when DOCKER_ROOT isn't set [Pagan Gazzard]

v1.11.4 - 2016-06-17

  • Cleanup docker images if delta failed [Petros Angelatos]
  • Make the data path configurable [Pablo Carranza Velez]

v1.11.3 - 2016-06-11

  • Add listener for container events and reattach on restart [Pablo Carranza Velez]
  • fix deltas by not using the supervisor as source [Pablo Carranza Velez]

v1.11.2 - 2016-06-10

  • fix delta error handling by listening for the 'error' event [Petros Angelatos]

v1.11.1 - 2016-06-09

  • Use sh for postinstall as alpine has no bash [Pablo Carranza Velez]
  • update docker-delta to 0.0.8 [Petros Angelatos]
  • symlink docker root to default path if not already there [Petros Angelatos]

v1.11.0 - 2016-06-07

  • Add restart policies and change default to auto-restart [Aleksis]

v1.10.1 - 2016-06-07

  • Switch to docker-delta library to use deltas v2 [Petros Angelatos]
  • Correctly compare container image name on cleanup [Pablo Carranza Velez]
  • Log useful supervisor info to stdout/stderr [Kostas Lekkas]

v1.10.0 - 2016-05-26

  • Fix progress bars on docker version 1.10 [Aleksis]

v1.9.0 - 2016-05-24

  • Fix reporting of supervisor version for alpine supervisor [Pablo Carranza Velez]
  • Use rwlock to block when pulling images [Pablo Carranza Velez]
  • Increase API timeout to 15 minutes, and make it configurable [Pablo Carranza Velez]
  • Add endpoint to load images from a docker save tar [Pablo Carranza Velez]
  • Add alpine supervisor build information [Trong]
  • Add endpoints to manage images and containers locally [Pablo Carranza Velez]
  • Only use bodyParser for endpoints that need it [Pablo Carranza Velez]
  • Add RESIN_APP_ID variable [Pablo Carranza Velez]
  • Increase delta request timeout to 15 minutes [Pablo Carranza Velez]

v1.8.0 - 2016-04-25

  • Add endpoints to start, stop and get app [Pablo, Kostas]
  • Removed a bunch ofobsolete code for the old terminal, reducing the supervisor size considerably. [Pagan Gazzard]

v1.7.0 - 2016-03-28

  • Add RESIN_HOST_LOG_TO_DISPLAY variable [Pablo Carranza Velez]
  • Add system logs for special actions and host config [Pablo Carranza Velez]
  • Fix setting config.txt for RPi 3 [Pablo Carranza Velez]
  • Fix saving config vars to DB before reboot [Pablo Carranza Velez]
  • 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 Carranza Velez]

v1.6.1 - 2016-03-08

  • Reduce noise in logs [Kostas Lekkas]

v1.6.0 - 2016-02-22

  • Add endpoint to get device state [Pablo Carranza Velez]
  • Check for valid strings or ints in all config values [Pablo Carranza Velez]
  • Remove quotes in OS version [Pablo Carranza Velez]

v1.5.0 - 2016-02-09

  • Add support for delta image download [petrosagg and Pablo]

v1.4.0 - 2016-01-28

  • Report Host OS version to the API [Pablo Carranza Velez]
  • Use _.defaults instead of _.extend to ensure internal env vars are not overwritten [Pablo Carranza Velez]
  • Expose resin API key to apps [Pablo Carranza Velez]
  • On download start, set download_progress to 0. On finish, set state to Idle [Pablo Carranza Velez]
  • Set GOARM separately for each architecture [Pablo Carranza Velez]
  • Add armv5 (armel) build [Trong]
  • Add OOM protection for the supervisor container, openvpn and connmand [Praneeth]

v1.3.2 - 2015-12-17

  • Do not report the tun addresses to API [Praneeth]

v1.3.1 - 2015-12-07

  • Only save the app if starting the container was successful [Pablo Carranza Velez]

v1.3.0 - 2015-12-01

  • Remove volumes when removing a container [Pablo Carranza Velez]
  • Refactor the still undocumented special env vars into RESIN_SUPERVISOR_ [Pablo Carranza Velez]
  • Implement several update strategies (kill before download, 0-downtime) [Pablo Carranza Velez]
  • Fix the error that comes up when no ip addresses are returned by gosuper [Praneeth]
  • Switched to docker-progress for pull progress. [Pagan Gazzard]
  • Fix semver versioning in tcp-ping endpoint. [Praneeth]

v1.2.1 - 2015-11-04

  • Use random name for PubNub channel and report to API [Pablo Carranza Velez]

v1.2.0 - 2015-10-16

  • Don't bind mount (the sometimes non-existent) docker.sock [Pablo Carranza Velez]
  • Expose a RESIN_SUPERVISOR_VERSION env var to app [Pablo Carranza Velez]

v1.1.1 - 2015-10-15

  • Prevent non-fatal errors from causing the supervisor to exit [Lorenzo]
  • Use buildtime env vars as the default Pubnub and Mixpanel keys [Pablo Carranza Velez]

v1.1.0 - 2015-10-09

  • Switch back to using arch-based node images [Pablo Carranza Velez]
  • Don't allow bootstrap to delete apiSecret from DB [Pablo Carranza Velez]
  • Add API endpoint to expire and create new API key [Pablo Carranza Velez]
  • 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]

v1.0.2 - 2015-10-08

  • Fix getting API key from DB by returning its .value [Pablo Carranza Velez]

v1.0.1 - 2015-10-07

  • Pass supervisor API key to app, don't regenerate the key, and authenticate ALL requests [Pablo Carranza Velez]
  • Use raspberrypi2 base image for armv7hf [Pablo Carranza Velez]
  • Bugfix: wrap all errors from update as Error objects - prevents image cleanup on download failures [Pablo Carranza Velez]
  • Wait 10 seconds after sending SIGTERM and before sending SIGKILL when stopping a container [Petros Angelatos]

v1.0.0 - 2015-10-02

  • Expose supervisor API to app by allowing all requests from 127.0.0.1 and passing address and port as env vars [Pablo Carranza Velez]
  • Only apply special actions / boot config on change, and always persist to DB [Pablo Carranza Velez]

v0.0.18 - 2015-10-01

  • Fix preloaded apps so that they have the complete environment [Pablo Carranza Velez]

v0.0.17 - 2015-09-29

  • Updated bases image to board-specific, and all node versions to 0.10.40-slim [Pablo Carranza Velez]
  • Allow changing RPi config.txt with environment variables [Pablo Carranza Velez]
  • 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]
  • Refactor bootstrapping to run in background [Pablo Carranza Velez]
  • Run preloaded app images [Pablo Carranza Velez]
  • Add API endpoints for device reboot and shutdown [Pablo Carranza Velez]
  • Add /restart endpoint to restart container [Pablo Carranza Velez]
  • Add additional mount point for the host dbus on host_run/dbus [Praneeth]
  • Switch to golang 1.5.1 for compiling [Praneeth]
  • Allow /purge to be called with appId as string or number [Pablo Carranza Velez]
  • Fetch containerId from DB within lock [Pablo Carranza Velez]
  • Change update cycle to map by appId [Pablo Carranza Velez]
  • Allow updates to be forced via an env var or an API call [Pablo Carranza Velez]
  • Use lockfile to lock updates per app [Pablo Carranza Velez]

v0.0.16 - 2015-09-07

  • 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 Carranza Velez]
  • Mounted /lib/firmware into the user container. [Pablo Carranza Velez]
  • Fixed spaces in env vars for web terminal. [Petros]
  • Added missing return when no app id specified. [Pablo Carranza Velez]
  • Try to populate the docker cache before building. [Pagan Gazzard]

v0.0.15 - 2015-07-23

  • 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. [Pagan Gazzard]
  • Use JOBS=MAX for npm install. [Pagan Gazzard]
  • Updated pinejs-client so that valid ssl certificates are enforced by default. [Pagan Gazzard]
  • 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 [Pagan Gazzard]

v0.0.14 - 2015-05-12

  • Clean up tmp files left behind by npm [Pagan Gazzard]
  • Fix an error where mixpanel events would have the wrong uuid set on first provision. [Pagan Gazzard]
  • Update knexjs to ~0.8.3, which uses lodash 3 and means it will be deduplicated (reducing image size and runtime memory usage) [Pagan Gazzard]
  • Stop caching config.json, avoids a race that could cause getting stuck repeatedly trying to register [Pagan Gazzard]

v0.0.13 - 2015-05-05

  • Bind mount /etc/resolv.conf as ro for application containers and supervisor [Praneeth]

v0.0.12 - 2015-04-15

  • 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.
  • Switched to using the i386-node image as a base for the i386-supervisor
  • Fixed reporting error objects to mixpanel.