1074 Commits

Author SHA1 Message Date
Pablo Carranza Velez
802025c01f Make handover-complete an alternative to the resin-kill-me file
Also fixes the handover wait (since the service interface for it was missing).
We add some logging to this process too.

Change-type: minor
Signed-off-by: Pablo Carranza Velez <pablo@resin.io>
2018-10-16 15:12:04 +02:00
Pablo Carranza Velez
8003f25c3d Add /tmp/balena lock and handover paths and BALENA_ env vars
We change the lockfile to /tmp/balena/updates.lock, and the resin-kill-me file to /tmp/balena/handover-complete.
In the host, we change to use /tmp/balena-supervisor instead of /tmp/resin-supervisor.

We add BALENA_ env vars in addition to the RESIN_ env vars.

We keep backwards compatibility by using both paths for the lockfile and handover, and keeping the RESIN_ env vars.

Changelog-entry: Move the handover and lock files to /tmp/balena, rename them, and add BALENA_ env vars
Change-type: minor
Signed-off-by: Pablo Carranza Velez <pablo@resin.io>
2018-10-16 15:12:04 +02:00
Pagan Gazzard
660d9ff6f3 Disable express' x-powered-by header
Change-type: patch
Signed-off-by: Pagan Gazzard <page@resin.io>
2018-10-16 13:26:21 +02:00
Cameron Diver
b1434e44ae
fix: overlay compose fields on image for healthcheck
This commit changes a bug where the compose healthcheck would always
overwrite the healthcheck set by the image - even if no compose
healthcheck exists.

Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-16 10:34:37 +01:00
Cameron Diver
16e7522a1f
fix: Remove support for broken storageOpt option
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-16 08:22:19 +01:00
Zubair Lutfullah Kakakhel
73b9895bdf
backend: Remove a few blacklisted config.txt options
These options were discussed in an arch call and the conclusion was
that they don't need to be in the blacklist.

Change-type: patch
Changelog-entry: Remove a few blacklisted config.txt options
Signed-off-by: Zubair Lutfullah Kakakhel <zubair@resin.io>
2018-10-15 11:41:22 +01:00
Cameron Diver
a143a07aaa
fix: Return void from config setter
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-15 11:12:47 +01:00
Cameron Diver
d7edd3eb63
fix: Don't assume config is defined for legacy images in logger
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-15 10:53:11 +01:00
Cameron Diver
ed73946af5
device-api: Add supervisor version endpoint
Change-type: minor
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-13 20:24:25 +01:00
Cameron Diver
479e0a8bb8
state: Don't consider local mode when storing state
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-13 20:20:05 +01:00
Cameron Diver
5906e1427c
local mode: Add local mode manager module to handle cleanup
Change-type: minor
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-13 20:20:05 +01:00
Cameron Diver
3e665c0f4a
logger: Enforce timestamp value to avoid logging server 400 errors
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-13 20:20:04 +01:00
Cameron Diver
6156825293
Add logging endpoint to supervisor
Change-type: minor
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-13 20:19:38 +01:00
Cameron Diver
6e2801380b
Support local logging via standard logging interface
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-10 13:02:40 +01:00
Cameron Diver
19cd310da3
Support setting target state in local mode from supervisor API
Change-type: minor
Closes: #689
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-10 13:02:40 +01:00
Cameron Diver
e0237e826e
Add several local mode enabling endpoints
Change-type: minor
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-10 13:02:08 +01:00
Cameron Diver
524d185c4c
Correctly type service-manager logger and event tracker fields
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-10 13:02:08 +01:00
Cameron Diver
5c0c880a10
Don't set empty target state in local mode
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-10 13:02:06 +01:00
Cameron Diver
5537ae4e2e
fix: Correctly handle array based network definitions for service
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-08 11:29:32 +01:00
Cameron Diver
367dd876aa
fix: Only join the default network when creating the container
We were joining every network on container creation, which is currently
bugged in Docker. We were also joining networks afterwards, so the
non-default networks are joined post-creation, and only the networkMode
container is joined on creation.

Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-10-08 11:29:23 +01:00
Cameron Diver
06bbf9751a
compose: Support changing the tty option for compose services
This enables the switch to be added to the compose, and the handling of
docker messages has been changed to ensure that the multiplexed logs
which result are handled properly.

Change-type: minor
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-24 12:04:51 +01:00
Cameron Diver
e8a5edf774
types: Remove temporary Service type in favour of actual compose class
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-24 12:04:51 +01:00
Cameron Diver
892d227cc2
compose/service: Convert module to typescript and add network config
Stability improvements;
* Printing of unsupported compose fields
* Added a lot of tests
* All compose configuration has a default value, enabling better
comparison

Change-type: minor
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-21 10:30:27 +01:00
Cameron Diver
e0231f15e9
Compose: Support more network creation options
Change-type: minor
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-21 10:30:27 +01:00
Cameron Diver
a7551abe93
Refactor: Split Networks class to Network and NetworkManager
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-19 15:41:09 +01:00
Cameron Diver
c5540404af
logger: Fix reporting the configuration change variables
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-13 14:44:20 +01:00
Cameron Diver
d37eb8e8a9
lib/errors: Improve typings by extending Error class for predicates
When using the predicate functions in bluebird `.catch`es from
typescript, the compiler would complain that the predicates do not
accept a function which takes an error. Because these are specific
errors, I've extended the base `Error` class, and added the extra fields
we expect.

Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-13 12:01:10 +01:00
Cameron Diver
68a6b1aef1
fix: Use throttle not debounce when ensuring we don't spam mixpanel
Debounce will mean that in certain cases, the events will never be sent,
whereas with throttle we can be sure that it will be sent a minimum
amount per time slice.

Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-12 12:30:31 +01:00
Cameron Diver
8abbfe36e0
fix: Don't send internal state tracking information to the API
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-05 12:09:35 -07:00
Cameron Diver
08b1c90ea1
fix: Fix event-tracker being passed no options object
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-04 16:02:06 -07:00
Cameron Diver
c1748436d8
fix: Import logger properly and add startup test
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-04 15:53:49 -07:00
Cameron Diver
8ca42062a3
events: Report supervisor version with any mixpanel events
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-04 13:17:20 -07:00
Cameron Diver
607c722b0b
events: Add rate limiting based on event name when reporting to mixpanel
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-04 13:17:17 -07:00
Cameron Diver
8bd895d24f
refactor: Use Dictionary<T> type in ports module
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-03 09:39:07 -07:00
Cameron Diver
328b07a092
fix: Respect logging enabling on instantiation of logger
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-03 09:39:07 -07:00
Cameron Diver
d3a18da573
Refactor: Convert logging module to typescript
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-03 09:39:06 -07:00
Cameron Diver
99c807a48c
Refactor: Make exported log-types implement interface
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-03 09:36:21 -07:00
Cameron Diver
8ee26adbbe
Refactor: Convert event tracker module to typescript
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-09-03 09:36:21 -07:00
Cameron Diver
16e102b3ba
fix: Dont bind service class methods in declaration
This was causing a bug where the applications were cloned when
restarting all of them. These clones did not carry over the binds, so
when starting the containers back up, two different versions of `this`
were being used.

Change-type: patch
Closes: #736
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-08-29 15:32:03 -07:00
Cameron Diver
0a93b9c18a
feature(host_config): Support gpio field as an array
Change-type: minor
Closes: #734
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-08-29 08:58:05 -07:00
Cameron Diver
ae446c01b2
ux: Warn on invalid device name when trying to start a service
Device names with newlines cause reboot loops, due to newlines not being
supported by docker. This PR will warn when a device name contains a
newline.

Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-08-16 21:52:49 +01:00
Cameron Diver
f7240ccce1
fix: Fix importing of service type location
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-08-16 16:38:43 +01:00
Cameron Diver
3a4f1594e0
Refactor: Add docker-utils typings
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-08-16 15:35:31 +01:00
Cameron Diver
b504306f28
Refactor: Convert log-types module to typescript
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-08-16 15:35:30 +01:00
Cameron Diver
b7d991b98e
fix: Apply device name before generating container config
Currently the service has the device name applied after the docker
config is generated. This means that is has no effect until the next
restart.

This commit ensures that the device name is applied before the docker
config is generated, meaning that the env var gets applied to the
upcoming container.

Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-08-13 10:02:53 +01:00
Cameron Diver
430e45d6fb
Fix: Restart a service when it's memory limit changes
Change-type: patch
Closes: #720
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-08-07 13:15:37 +01:00
Pagan Gazzard
c6b77954a7 Add a backoff mechanism for state reporting errors
Change-type: patch
Signed-off-by: Pagan Gazzard <page@resin.io>
2018-08-01 11:56:55 -07:00
Cameron Diver
7ea48683be
Fix: Fix scoping issue with variables in service-manager
Change-type: patch
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-07-25 15:45:18 +01:00
Cameron Diver
f7958e6c6b
Dont restart service on device name change
Change-type: patch
Closes: #659
Signed-off-by: Cameron Diver <cameron@resin.io>
2018-07-25 10:45:05 +01:00
Petros Angelatos
bba1da370b
logger: Remove pubnub leftovers
Change-type: minor
Signed-off-by: Petros Angelatos <petrosagg@gmail.com>
2018-07-18 12:31:10 -07:00