balena-supervisor/CHANGELOG.md

865 lines
36 KiB
Markdown
Raw Normal View History

# Changelog for resin-supervisor
2016-11-23 20:36:35 +00:00
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](http://semver.org/).
2018-03-15 02:05:48 +00:00
## v7.1.14 - 2018-03-15
* Avoid trying to clean up the supervisor image if it has several tags (even though it would never succeed) #589 [Pablo Carranza Velez]
2018-03-15 01:24:04 +00:00
## v7.1.13 - 2018-03-15
* Fix typo passing apiKey to the resin API client when exchanging apikeys #588 [Pablo Carranza Velez]
* Fix the check for whether the device is provisioned by correctly getting registered_at and deviceId from config.json into the ApiBinder #588 [Pablo Carranza Velez]
2018-03-15 00:25:40 +00:00
## v7.1.12 - 2018-03-15
* Compose: Use the hostname on the host as default hostname for services with host network mode #586 [Pablo Carranza Velez]
* Pass the correct working_dir to the container config, and compare containers for working dir changes #586 [Pablo Carranza Velez]
2018-03-14 11:54:22 +00:00
## v7.1.11 - 2018-03-14
* DeviceConfig: avoid trying to enable or disable the VPN when in offline mode #585 [Pablo Carranza Velez]
2018-03-14 07:28:29 +00:00
## v7.1.10 - 2018-03-14
* ApplicationManager: try to match available images by imageId to avoid keeping around unused image entries in the db #584 [Pablo Carranza Velez]
* Compose: Emit a change event when a container is renamed, so that the updated imageId and releaseId are reported #584 [Pablo Carranza Velez]
2018-03-13 21:20:41 +00:00
## v7.1.9 - 2018-03-13
* Skip taking the lock when updating the releaseId or imageId for a service that comes from a legacy supervisor #581 [Pablo Carranza Velez]
* When migrating from legacy supervisors, mark the temporary composition as legacy #581 [Pablo Carranza Velez]
2018-03-13 13:59:53 +00:00
## v7.1.8 - 2018-03-13
* Avoid trying to send a response to API calls after we've already sent an error #579 [Pablo Carranza Velez]
* Fix passing a target service to start in /v1/apps/:appId/start, and getting the containerId #579 [Pablo Carranza Velez]
2018-03-09 17:41:40 +00:00
## v7.1.7 - 2018-03-09
* Gosuper: Treat systemd unit states that are not "inactive" or "deactivating" as enabled states #577 [Pablo Carranza Velez]
2018-03-09 15:19:23 +00:00
## v7.1.6 - 2018-03-09
* Migrations: Use the correct service name for legacy apps #575 [Pablo Carranza Velez]
* ApplicationManager: only use dockerImageId to identify images for current apps, to avoid trying to delete an image that is in use #575 [Pablo Carranza Velez]
2018-03-09 14:33:32 +00:00
## v7.1.5 - 2018-03-09
* Fix bug in require for migrations for legacy preload #574 [Cameron Diver]
2018-03-09 08:13:11 +00:00
## v7.1.4 - 2018-03-09
* Compose: fix type error, createVolume returns a promise #571 [Petros Angelatos]
2018-03-08 23:05:38 +00:00
## v7.1.3 - 2018-03-08
* Lib: add missing flag to openAsync() #570 [Petros Angelatos]
2018-03-08 22:23:38 +00:00
## v7.1.2 - 2018-03-08
* Compose: fix volume migration code #569 [Petros Angelatos]
2018-03-08 16:04:16 +00:00
## v7.1.1 - 2018-03-08
* Convert object to array when normalising legacy target apps #568 [Cameron Diver]
2018-03-07 15:54:35 +00:00
## v7.1.0 - 2018-03-07
* Introduce workaround for IPv6 DNS resolution until nodejs becomes RFC 3484 compliant #566 [Petros Angelatos]
* Start using an externally built resin/$ARCH-supervisor-base:v1.1.0 as base image, which adds the verbatim option to dns.lookup #566 [Pablo Carranza Velez]
2018-03-07 13:23:36 +00:00
## v7.0.0 - 2018-03-07
* Send logs to the resin API by default #482 [Pablo Carranza Velez]
* Implement a new logger that sends logs to the resin API, that can be used optionally instead of PubNub #482 [Pablo Carranza Velez]
* Fix the way commands and entrypoints in string form are parsed #482 [Pablo Carranza Velez]
* Use a supervisor0 network interface for the supervisor network API. Remove RESIN_APP_COMMIT and RESIN_APP_RELEASE env vars. #482 [Pablo Carranza Velez]
* Supervisor API: remove the tcp-ping endpoints #482 [Pablo Carranza Velez]
* Remove support for keeping the provisioning apiKey on Resin OS 1.X. Report initial values from config.txt and other device configuration variables to the Resin API. #482 [Pablo Carranza Velez]
* Remove all bind mounts that were specific to 1.X devices. Move the resin-kill-me file for the handover strategy to /tmp/resin. Add environment variables for the location of resin-kill-me and the lockfile. Use running containers to determine what services are running instead of storing them in the internal database. Use named volumes for persistent data. #482 [Pablo Carranza Velez]
* Allow running docker-compose-like multicontainer applications #482 [Pablo Carranza Velez]
* Implement inference of device configuration. Allow array values for dtoverlay and dtparam. #482 [Pablo Carranza Velez]
* Infer the current state of the device when applying the target state #482 [Pablo Carranza Velez]
* Implement the multicontainer app models, and change the supervisor configuration management to avoid duplication between fields in config.json and fields in the internal database #482 [Pablo Carranza Velez]
2018-03-05 19:16:34 +00:00
## v6.6.9 - 2018-03-05
* Update update-locking.md #565 [zwalchuk]
2018-02-27 18:27:22 +00:00
## v6.6.8 - 2018-02-27
* Allow truthy values for deltas and lock override (i.e. the string 'true' besides '1') #561 [Pablo Carranza Velez]
2018-02-27 17:11:11 +00:00
## v6.6.7 - 2018-02-27
* Since armel builds are disabled, do not pull an armel node base image, and ensure we never deploy an armel supervisor #560 [Pablo Carranza Velez]
2018-02-27 01:11:47 +00:00
## v6.6.6 - 2018-02-27
* Update docker-delta to 2.0.4 #558 [Akis Kesoglou]
2018-02-21 20:54:46 +00:00
## v6.6.5 - 2018-02-21
* Circle.yml: escape branch name to ensure we always have a valid tag #556 [Pablo Carranza Velez]
2018-02-20 02:20:57 +00:00
## v6.6.4 - 2018-02-20
* Circle.yml: Do not push images to dockerhub if building without a docker password #555 [Pablo Carranza Velez]
2018-02-06 00:12:34 +00:00
## v6.6.3 - 2018-02-06
* Update resumable-request to v2.0 #551 [Akis Kesoglou]
2018-01-24 19:30:24 +00:00
## v6.6.2 - 2018-01-24
* Use i386-nlp for supervisor releases for quark boards #549 [Pablo Carranza Velez]
2018-01-19 14:47:16 +00:00
## v6.6.1 - 2018-01-19
* Improve caching in dindctl build and update README #526 [Pablo Carranza Velez]
2018-01-18 22:13:23 +00:00
## v6.6.0 - 2018-01-18
* Implement an API for proxy and hostname configuration, and centralize management of config.json #547 [Pablo Carranza Velez]
2018-01-12 15:43:08 +00:00
## v6.5.9 - 2018-01-12
* Fix saving deviceApiKey to the DB (to fix the RESIN_API_KEY env var) when updating from some older supervisors #544 [Pablo Carranza Velez]
2018-01-10 17:51:59 +00:00
## v6.5.8 - 2018-01-10
* Update docker-toolbelt to v3.2.1 to fix a bug in deltas #543 [Pablo Carranza Velez]
2018-01-05 15:39:11 +00:00
## v6.5.7 - 2018-01-05
* Avoid problems with null app names or invalid container names when migrating from old supervisors #541 [Pablo Carranza Velez]
2017-12-15 19:43:58 +00:00
## v6.5.6 - 2017-12-15
* Update-locking: updating the documentation with extra information and tools #528 [Gergely Imreh]
2017-12-14 21:07:53 +00:00
## v6.5.5 - 2017-12-14
* Update resin-sync to allow syncing to devices that use balena #533 [Pablo Carranza Velez]
2017-12-14 11:18:40 +00:00
## v6.5.4 - 2017-12-14
* Do the webpack build in an amd64 image to improve build times #539 [Pablo Carranza Velez]
2017-12-12 10:13:04 +00:00
## v6.5.3 - 2017-12-12
* Gosuper: When getting IP addresses, ignore balena and the resin-dns bridge #536 [Pablo Carranza Velez]
2017-12-12 08:05:31 +00:00
## v6.5.2 - 2017-12-12
* Dockerfile: improve caching by installing devDependencies before copying the code #535 [Pablo Carranza Velez]
2017-12-11 20:00:12 +00:00
## v6.5.1 - 2017-12-11
* Avoid marking the supervisor as unhealthy if update is not happening because it's in offline mode #534 [Pablo Carranza Velez]
2017-12-11 09:07:17 +00:00
## v6.5.0 - 2017-12-11
* Add a /v1/healthy endpoint that fails if the supervisor is unhealthy, and a HEALTHCHECK command to the Dockerfile that uses it #530 [Pablo Carranza Velez]
2017-12-11 06:17:44 +00:00
## v6.4.9 - 2017-12-11
* Apply config.txt changes when the new config is empty, to fix deleting config.txt values #532 [Pablo Carranza Velez]
* Avoid stopping the VPN until a remote target state has been fetched, and retry applying config variables when they fail #532 [Pablo Carranza Velez]
2017-12-01 20:35:58 +00:00
## v6.4.8 - 2017-12-01
* When listenPort is not specified, use 48484 as default #529 [Pablo Carranza Velez]
2017-11-20 15:52:03 +00:00
## v6.4.7 - 2017-11-20
* Sync.js: Fix command to build the source code without optimizations #527 [Pablo Carranza Velez]
2017-11-10 17:16:16 +00:00
## v6.4.6 - 2017-11-10
* Dind: Add a .gitkeep to docker.service.d to avoid dind build errors #525 [Pablo Carranza Velez]
2017-11-09 04:13:42 +00:00
## v6.4.5 - 2017-11-09
* Use uglifyjs-webpack-plugin ^1.0.1 to optimize the supervisor code #524 [Pablo Carranza Velez]
2017-11-08 17:58:59 +00:00
## v6.4.4 - 2017-11-08
* Dindctl: Use balena to refresh the supervisor container #523 [Pablo Carranza Velez]
2017-11-03 20:57:09 +00:00
## v6.4.3 - 2017-11-03
* Use balena 17.06 and resin-base v2.9.2 for the docker-in-docker supervisor #518 [Pablo Carranza Velez]
2017-11-03 02:31:04 +00:00
## v6.4.2 - 2017-11-03
* Avoid an indefinite recursion that grows the call stack when reporting the current state fails #480 [Pablo Carranza Velez]
2017-11-02 21:44:14 +00:00
## v6.4.1 - 2017-11-02
* Improve caching when building gosuper #520 [Pablo Carranza Velez]
* Automation: Always try to cache using the latest master build #520 [Pablo Carranza Velez]
2017-11-01 21:08:51 +00:00
## v6.4.0 - 2017-11-01
* Fixes #511, add support for new supervisor image for x86 with quark cpu boards. #512 [Trong Nghia Nguyen]
2017-11-01 09:33:20 +00:00
## v6.3.11 - 2017-11-01
* Add whitelist-based filtering to mixpanel events #500 [Pablo Carranza Velez]
* Tunnel all mixpanel events through the resin API #500 [Pablo Carranza Velez]
2017-10-31 21:23:03 +00:00
## v6.3.10 - 2017-10-31
* Use a custom webpack loader to avoid uncaught exceptions from JSONStream #517 [Pablo Carranza Velez]
2017-10-30 23:23:50 +00:00
## v6.3.9 - 2017-10-30
* Avoid fetching an image when it might be available or when starting an app because it might not be necessary #507 [Pablo Carranza Velez]
* Refactor container cleanup to remove all spurious containers #507 [Pablo Carranza Velez]
* Use container name instead of id to identify apps, and avoid duplicated containers #507 [Pablo Carranza Velez]
2017-10-30 21:43:55 +00:00
## v6.3.8 - 2017-10-30
* If a device is already provisioned but the key exchange fails, retry it until it succeeds #513 [Pablo Carranza Velez]
2017-10-25 03:11:32 +00:00
## v6.3.7 - 2017-10-25
* Change the update retry to back off to the standard update check interval #515 [Pagan Gazzard]
2017-10-24 05:07:25 +00:00
## v6.3.6 - 2017-10-24
* Ensure preloaded apps are properly loaded by setting their internal markedForDeletion to false, and run apps that have it set to null #510 [Pablo Carranza Velez]
* Improve the check for when the device has been provisioned but the supervisor doesn't have knowledge of it in its local state #510 [Pablo Carranza Velez]
* Ensure preloaded apps get the deviceApiKey in the env vars, and apps never get the provisioning key, and improve detection of cases when the device has been pre-provisioned #510 [Pablo Carranza Velez]
2017-10-19 12:03:34 +00:00
## v6.3.5 - 2017-10-19
* Update docker-toolbelt to fix applying deltas on overlay2 with huge images #509 [Akis Kesoglou]
2017-10-17 09:10:49 +00:00
## v6.3.4 - 2017-10-17
* Delta improvements #504 [Akis Kesoglou]
2017-10-17 07:05:14 +00:00
## v6.3.3 - 2017-10-17
* Update docker-progress to improve identification of Balena #505 [Akis Kesoglou]
2017-10-11 18:02:42 +00:00
## v6.3.2 - 2017-10-11
* Allow specifying a config.json filename in dindctl #503 [Pablo Carranza Velez]
* Allow specifying a container name for the docker-in-docker development supervisor #503 [Pablo Carranza Velez]
2017-10-04 19:25:31 +00:00
## v6.3.1 - 2017-10-04
* Update docker-progress #502 [Akis Kesoglou]
2017-10-03 11:29:17 +00:00
## v6.3.0 - 2017-10-03
* Update docker-progress #501 [Akis Kesoglou]
2017-09-15 19:50:10 +00:00
## v6.2.9 - 2017-09-15
* Explicitly define the source for deltas, allow cross-app deltas, and iterate serially through apps when updating #499 [Pablo Carranza Velez]
2017-09-12 01:34:50 +00:00
## v6.2.8 - 2017-09-12
* Fix problem catching errors when killing a container that doesn't exist #496 [Pablo Carranza Velez]
2017-09-01 23:57:38 +00:00
## v6.2.7 - 2017-09-01
* Prefer err.message when reporting errors from dockerode, then err.json and err.reason #490 [Pablo Carranza Velez]
2017-08-29 19:56:51 +00:00
## v6.2.6 - 2017-08-29
* Add a sync.js script to allow syncing a running supervisor container on a local device #494 [Pablo Carranza Velez]
2017-08-28 22:02:50 +00:00
## v6.2.5 - 2017-08-28
* Forward resume options #492 [Akis Kesoglou]
2017-08-28 20:04:36 +00:00
## v6.2.4 - 2017-08-28
* Update docker-progress to v2.6.3 #493 [Pablo Carranza Velez]
2017-08-26 08:04:47 +00:00
## v6.2.3 - 2017-08-26
* Deploy all archs by default to Resin #489 [Akis Kesoglou]
2017-08-25 18:42:28 +00:00
## v6.2.2 - 2017-08-25
* Remove an unnecessary directory from sqlite3 that took 30MB #491 [Pablo Carranza Velez]
2017-08-18 21:52:43 +00:00
## v6.2.1 - 2017-08-18
* Ensure /var/run/resin exists before trying to mount it as tmpfs #486 [Pablo Carranza Velez]
2017-08-16 08:48:18 +00:00
## v6.2.0 - 2017-08-16
* Try to resume the download of a delta if it fails due to flaky network #483 [Akis Kesoglou]
2017-08-07 22:32:59 +00:00
## v6.1.4 - 2017-08-07
* Fix references in deploy-to-resin.js and use github credentials when pushing in pr-to-meta-resin.sh #481 [Pablo Carranza Velez]
2017-08-03 20:45:06 +00:00
## v6.1.3 - 2017-08-03
* Avoid starting apps on startup if device has to reboot due to a configuration change [Pablo Carranza Velez]
2017-07-27 23:59:50 +00:00
## v6.1.2 - 2017-07-27
* When the device is about to reboot or shutdown, close the API server and avoid applying updates [Pablo Carranza Velez]
2017-07-27 18:07:56 +00:00
## v6.1.1 - 2017-07-27
* Avoid unhandled errors when in offline mode due to a missing apiEndpoint [Pablo Carranza Velez]
* Do not persist the uuid when in offline mode, so that the supervisor tries to provision if it goes out of offline mode [Pablo Carranza Velez]
2017-07-27 14:45:11 +00:00
## v6.1.0 - 2017-07-27
* Update docker-delta to 1.1.1, docker-toolbelt to 3.0.1, docker-progress to 2.6.0 to add support for deltas and overlay2 [Pablo Carranza Velez]
2017-07-27 04:06:14 +00:00
## v6.0.5 - 2017-07-27
* Allow building the supervisor source without optimizations for easier debugging with dindctl [Pablo Carranza Velez]
* Pull the supervisor image if it's not available when running with dindctl [Pablo Carranza Velez]
* Fix preloading and parsing of arguments in the dind supervisor [Pablo Carranza Velez]
2017-07-26 18:47:54 +00:00
## v6.0.4 - 2017-07-26
* Fix the message shown when docker gives a 500 error when starting a container [Pablo Carranza Velez]
2017-07-25 20:09:26 +00:00
## v6.0.3 - 2017-07-25
* Use a pinned build of the debian image to build base and gosuper, to avoid unnecessary rebuilds [Pablo Carranza Velez]
2017-07-24 20:03:30 +00:00
## v6.0.2 - 2017-07-24
* Disable armel builds [Pablo Carranza Velez]
* Disable pushing to registry.resinstaging.io, and use build environment to login to dockerhub [Pablo Carranza Velez]
* Move dindctl to the base of the repository [Pablo Carranza Velez]
* Add a script to automate the creation of meta-resin PRs [Pablo Carranza Velez]
* Add a deploy-to-resin.js and automatically deploy to the Resin API on master builds [Pablo Carranza Velez]
* Use a local supervisor image for the dind supervisor [Pablo Carranza Velez]
* Replace the Jenkins build with a CircleCI build that uses the new multi-stage build [Pablo Carranza Velez]
* Make dindctl an easier to use tool that takes options instead of using env vars [Pablo Carranza Velez]
* Refactor the makefile to make it easier to use and make use of the multi-stage build [Pablo Carranza Velez]
* Add a single Dockerfile to build the supervisor as a multi-stage build [Pablo Carranza Velez]
2017-07-12 03:06:42 +00:00
## v6.0.1 - 2017-07-12
* Use webpack to join all modules [Pablo Carranza Velez]
2017-07-07 18:03:13 +00:00
## v6.0.0 - 2017-07-07
* Deprecate edge device type [Joe Roberts]
2017-07-04 18:33:42 +00:00
## v5.1.1 - 2017-07-04
* Fix semver comparison for OS version when determining if the device has deviceApiKey support [Pablo Carranza Velez]
2017-07-01 08:47:33 +00:00
## v5.1.0 - 2017-07-01
* Switch to glide for Go dependencies [Pablo Carranza Velez]
* Add support for aarch64 [Pablo Carranza Velez]
2017-07-01 05:59:48 +00:00
## v5.0.2 - 2017-07-01
* Dind: Set DELTA_ENDPOINT, insert variant into os-release, and fix vpn apikeys [Pablo Carranza Velez]
2017-07-01 03:01:26 +00:00
## v5.0.1 - 2017-07-01
* Allow registering the deviceApiKey in a non-compatible OS by making the apiKey equal the deviceApiKey, and add an fsync to all config.json writes [Pablo Carranza Velez]
2017-06-26 22:26:16 +00:00
## v5.0.0 - 2017-06-26
* Remove the undocumented and unused sideload and compose APIs [Pablo Carranza Velez]
2017-06-26 17:20:31 +00:00
## v4.5.0 - 2017-06-26
* Update docker-delta to 1.0.3 to support docker 17 [Pablo Carranza Velez]
2017-06-26 14:05:37 +00:00
## v4.4.2 - 2017-06-26
* Fix provisioning key exchange by passing apikey in the request [Pablo Carranza Velez]
2017-06-24 01:24:14 +00:00
## v4.4.1 - 2017-06-24
* Make cleanup in jenkins build less aggressive, but remove all created tags [Pablo Carranza Velez]
2017-06-15 05:05:06 +00:00
## v4.4.0 - 2017-06-15
* When apiEndpoint is not defined, work in offline mode [Pablo Carranza Velez]
* Fix mixpanel initialization when not in offline mode [Pablo Carranza Velez]
2017-06-14 09:09:14 +00:00
## v4.3.2 - 2017-06-14
* Update dependent device DB [Joe Roberts]
2017-06-13 16:26:13 +00:00
## v4.3.1 - 2017-06-13
* Enable SSL when connecting to pubnub [Petros Angelatos]
2017-06-05 23:48:38 +00:00
## v4.3.0 - 2017-06-05
* Switch to generating the BASE_IMAGE_VERSION in the makefile, so that the makefile targets can use an accurate version by default [Pagan Gazzard]
2017-05-12 22:26:44 +00:00
## v4.2.4 - 2017-05-12
* Fix typo in how hostOSVersionPath was camel-cased [Pablo Carranza Velez]
2017-05-11 19:18:00 +00:00
## v4.2.3 - 2017-05-11
* Properly handle errors when requesting deltas [Pablo Carranza Velez]
* Add aufs-tools to the dind supervisor for use when running on aufs [Pagan Gazzard]
## v4.2.2 - 2017-04-27
* Only delete the provisioning key if the supervisor is running on an OS that supports using the deviceApiKey [Pablo Carranza Velez]
* Avoid writing target device config to DB if it hasn't changed [Pablo Carranza Velez]
2017-04-24 19:59:38 +00:00
2017-04-26 22:14:39 +00:00
## v4.2.1 - 2017-04-26
* Fix an infinite loop that could happen when trying to bootstrap if the key exchange fails [Pagan Gazzard]
* Fix the case of being registered with a version of the cli/sdk that does not support device api keys. [Pagan Gazzard]
2017-04-24 19:59:38 +00:00
## v4.2.0 - 2017-04-24
* Add handling for duplicate UUIDs and key exchanging for old user-api-keys [Pagan Gazzard]
* Change to the new device registration method to exchange our provisioning key with a dedicated api key for the device. [Pagan Gazzard]
* Docs/API.md: Fix documentation command sent via the API proxy for POST /v1/update. [Horia Delicoti]
## v4.1.2 - 2017-04-10
* Issue #420: Avoid supervisor crash without connection by properly memoizing promise-returning functions [Pablo Carranza Velez]
* Report the OS variant as a separate field and not as part of the OS version [Pablo Carranza Velez]
## v4.1.1 - 2017-03-30
* Issue #413: Fix an error applying the connectivity check config var [Pablo Carranza Velez]
* Issue #410: Cleanup images before running an update, preserving the ones that will be used in the target state [Pablo Carranza Velez]
## v4.1.0 - 2017-03-29
* Authentication credentials for registry and delta server [Andreas Fitzek]
* Issue #402: Ensure that app configs are non-null and valid json objects [Pablo Carranza Velez]
* Report OS variant to the API together with the OS version [Pablo Carranza Velez]
* Issue #230: Add a custom User-Agent header to all requests [Pablo Carranza Velez]
* Update waffle badge [Sabith]
## v4.0.0 - 2017-03-09
* Issue #396: Log when we're rebooting due to a device config change [Pablo Carranza Velez]
* Issue #20: Change the update lock to a temporary filesystem [Pablo Carranza Velez]
* Make local mode only work in development OS, and make it remove app containers and allow unauthenticated API requests [Pablo Carranza Velez]
* Restore default value when clearing a special action config variable [Pablo Carranza Velez]
* Allow all config variables to take truthy or falsy values [Pablo Carranza Velez]
* Allow setting the supervisor to a "local mode" which stops apps and prevents cleanup [Pablo Carranza Velez]
* Issues #23 and #236: Use docker logs to get all logs from the container, including those before supervisor start [Pablo Carranza Velez]
* Issues #389 and #390: Remove /host_run/dbus and /host/var/lib/connman bind mounts for non-ResinOS-1.X devices [Pablo Carranza Velez]
* Issue #386: Allow forcing updates when an update was already scheduled [Pablo Carranza Velez]
2017-02-16 01:52:15 +00:00
## v3.0.1 - 2017-02-15
* Issue #381: Set target deviceConfig values from preloaded apps [Pablo Carranza Velez]
## v3.0.0 - 2017-01-18
* Issue #378: Increase delta timeouts (to avoid ESOCKETTIMEOUT errors), make them configurable, and provide nicer message when the delta server times out [Pablo Carranza Velez]
* Update versionist to v2.8.0 [Pablo Carranza Velez]
* Update docker-progress to v2.3.3 [Pablo Carranza Velez]
* Switch to aufs for the docker-in-docker development supervisor [Pablo Carranza Velez]
* Do not bind mount kmod if the host is not Resin OS 1.X [Pablo Carranza Velez]
## v2.9.0 - 2016-12-20
* Bump docker-delta to v1.0.1 to fix deltas on aufs when there's many layers [Pablo Carranza Velez]
* Document dependent apps feature [curcuz]
## v2.8.5 - 2016-12-20
* Fix error applying device configuration because deviceConfig table is empty [Pablo Carranza Velez]
* Make the base image hash more deterministic [Pablo Carranza Velez]
## v2.8.4 - 2016-12-16
* Use versionist's default configuration [Pablo Carranza Velez]
* Build the base image together with the supervisor [Pablo Carranza Velez]
* Start using versionist for versioning and changelog [Pablo Carranza Velez]
* Bump the MAX_BASIS_DIRS limit for rsync [Michal Mazurek]
## v2.8.3 - 2016-11-23
2016-11-07 06:27:45 +00:00
* Fallback to DROP when iptables REJECT is not available [Pablo Carranza Velez]
## v2.8.2 - 2016-11-07
2016-10-31 03:50:09 +00:00
* 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
2016-10-31 00:51:25 +00:00
* Properly delete dependent apps and their corresponding devices [Pablo Carranza Velez]
2016-10-23 23:24:36 +00:00
## v2.8.0 - 2016-10-30
2016-10-24 19:27:31 +00:00
* 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
2016-10-23 23:17:29 +00:00
* 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]
2016-10-21 15:16:17 +00:00
## v2.7.0 - 2016-10-23
2016-10-13 21:08:59 +00:00
* 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
2016-10-11 20:06:02 +00:00
2016-10-10 21:14:31 +00:00
* Updated knex to ~0.12.3
## v2.6.1 - 2016-10-11
2016-10-11 16:05:20 +00:00
* Do not use parsed JSON to compare dep. device state [Pablo Carranza Velez]
## v2.6.0 - 2016-10-10
2016-10-10 22:01:00 +00:00
* 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]
2016-10-06 01:29:52 +00:00
## v2.5.1 - 2016-10-06
2016-10-06 11:57:06 +00:00
* 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
2016-10-01 03:29:57 +00:00
* 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
2016-09-30 22:23:55 +00:00
* 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
2016-09-26 20:32:57 +00:00
* Implement delete-then-download update strategy [Pablo Carranza Velez]
2016-09-23 21:30:31 +00:00
* Bump node-docker-delta to 0.0.12 [Pablo, Kostas]
## v2.2.1 - 2016-09-26
2016-09-26 14:32:43 +00:00
* Fix ENV bug in build process [Petros Angelatos]
## v2.2.0 - 2016-09-23
2016-09-23 14:38:08 +00:00
* 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
2016-09-05 17:59:44 +00:00
* 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
2016-08-31 18:16:49 +00:00
* **[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
2016-08-16 21:02:30 +00:00
* 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]
2016-08-16 20:35:04 +00:00
## v1.13.2 - 2016-08-09
2016-08-09 18:23:27 +00:00
* bootstrap: if offlineMode is enabled, persist only the uuid [Petros Angelatos]
2016-08-09 18:23:27 +00:00
## v1.13.1 - 2016-07-28
2016-07-29 00:45:29 +00:00
* Using `links` in compose files is now allowed [Petros Angelatos]
## v1.13.0 - 2016-07-27
2016-07-27 09:54:42 +00:00
* 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
2016-07-15 23:56:09 +00:00
* Bind mount kmod if the container is debian or raspbian [Pablo Carranza Velez]
## v1.12.1 - 2016-07-08
2016-07-08 17:02:06 +00:00
* Fix preloaded apps by passing appId to extendEnvVars
## v1.12.0 - 2016-06-28
2016-06-28 17:50:12 +00:00
* Add endpoints for docker-compose up and down [Pablo Carranza Velez]
## v1.11.6 - 2016-06-23
2016-06-23 23:16:45 +00:00
* Fixed deltas for older docker daemon versions [Petros Angelatos]
## v1.11.5 - 2016-06-23
2016-06-23 20:21:06 +00:00
* Fix entry.sh when DOCKER_ROOT isn't set [Pagan Gazzard]
## v1.11.4 - 2016-06-17
2016-06-17 18:24:21 +00:00
* Cleanup docker images if delta failed [Petros Angelatos]
* Make the data path configurable [Pablo Carranza Velez]
2016-06-14 16:50:50 +00:00
## v1.11.3 - 2016-06-11
2016-06-11 15:22:51 +00:00
* 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
2016-06-10 19:45:13 +00:00
* fix delta error handling by listening for the 'error' event [Petros Angelatos]
2016-06-10 19:45:13 +00:00
## v1.11.1 - 2016-06-09
2016-06-09 14:17:07 +00:00
* 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]
2016-06-09 14:17:07 +00:00
## v1.11.0 - 2016-06-07
2016-06-07 16:01:38 +00:00
2016-06-07 15:50:25 +00:00
* Add restart policies and change default to auto-restart [Aleksis]
## v1.10.1 - 2016-06-07
2016-06-07 14:30:44 +00:00
* 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
2016-05-26 14:49:40 +00:00
* Fix progress bars on docker version 1.10 [Aleksis]
## v1.9.0 - 2016-05-24
2016-05-24 03:06:36 +00:00
* 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
2016-04-25 10:38:01 +00:00
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. [Pagan Gazzard]
2016-04-08 19:51:39 +00:00
## v1.7.0 - 2016-03-28
2016-03-28 09:30:30 +00:00
* 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
2016-03-08 15:31:48 +00:00
* Reduce noise in logs [Kostas Lekkas]
2016-03-04 18:26:26 +00:00
## v1.6.0 - 2016-02-22
2016-02-22 17:38:15 +00:00
* 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]
2016-02-15 19:03:06 +00:00
## v1.5.0 - 2016-02-09
2016-02-09 13:28:11 +00:00
2016-01-28 14:10:15 +00:00
* Add support for delta image download [petrosagg and Pablo]
## v1.4.0 - 2016-01-28
2016-01-28 14:04:36 +00:00
* 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
2015-12-10 15:26:36 +00:00
* Do not report the tun addresses to API [Praneeth]
## v1.3.1 - 2015-12-07
2015-12-07 18:13:58 +00:00
* Only save the app if starting the container was successful [Pablo Carranza Velez]
## v1.3.0 - 2015-12-01
2015-12-01 18:10:40 +00:00
* 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]
2015-11-10 12:02:24 +00:00
## v1.2.1 - 2015-11-04
2015-11-04 16:28:06 +00:00
* Use random name for PubNub channel and report to API [Pablo Carranza Velez]
2015-10-28 23:02:00 +00:00
## v1.2.0 - 2015-10-16
2015-10-16 15:37:49 +00:00
* 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
2015-10-15 18:36:16 +00:00
* 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
2015-10-09 17:12:27 +00:00
* 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
2015-10-08 14:10:33 +00:00
* Fix getting API key from DB by returning its .value [Pablo Carranza Velez]
## v1.0.1 - 2015-10-07
2015-10-07 21:06:31 +00:00
* 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
2015-10-02 14:38:06 +00:00
* 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
2015-10-01 18:32:18 +00:00
* Fix preloaded apps so that they have the complete environment [Pablo Carranza Velez]
## v0.0.17 - 2015-09-29
2015-09-29 20:13:02 +00:00
* 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]
2015-09-25 16:31:06 +00:00
* 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]
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]
* 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]
2015-09-07 13:05:45 +00:00
## v0.0.16 - 2015-09-07
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 Carranza Velez]
* Mounted /lib/firmware into the user container. [Pablo Carranza Velez]
2015-09-07 09:36:52 +00:00
* 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
2015-07-23 14:55:01 +00:00
* 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
2015-05-12 09:13:01 +00:00
* 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]
2015-05-04 11:45:50 +00:00
## v0.0.13 - 2015-05-05
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
## v0.0.12 - 2015-04-15
2015-04-15 18:13:39 +00:00
* 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.