Commit Graph

1386 Commits

Author SHA1 Message Date
Balena CI
cfd18a7620
v14.7.1 2023-02-07 00:59:07 +00:00
Balena CI
3d28f36fb2
v14.7.0 2023-02-03 00:06:05 +00:00
Balena CI
8b7cecfd3e
v14.6.4 2023-01-31 19:43:30 +00:00
Balena CI
f663e38697
v14.6.3 2023-01-30 18:59:40 +00:00
Balena CI
c833d016ff
v14.6.2 2023-01-26 20:58:35 +00:00
Balena CI
f94f06c7ff
v14.6.1 2023-01-24 20:34:01 +00:00
Balena CI
e715498ee7
v14.6.0 2023-01-20 20:51:25 +00:00
Balena CI
072a9f6755
v14.5.2 2023-01-19 19:40:04 +00:00
Balena CI
cf7a865647
v14.5.1 2023-01-18 11:58:56 +00:00
Balena CI
6c7193e0c1
v14.5.0 2023-01-17 19:28:46 +00:00
Balena CI
62840c6bec
v14.4.10 2023-01-04 20:25:56 +00:00
Balena CI
e0005c8307
v14.4.9 2022-12-19 14:26:00 +00:00
Pagan Gazzard
fd135214fe Use got for fetching the target state in order to have brotli support
Change-type: patch
2022-12-15 21:15:11 +00:00
Balena CI
062078ab60
v14.4.8 2022-12-15 22:29:20 +00:00
Balena CI
ac3812aa9f
v14.4.7 2022-12-15 20:39:49 +00:00
Balena CI
a482174aa0
v14.4.6 2022-12-08 18:39:59 +00:00
Balena CI
cb72b8337b
v14.4.5 2022-12-07 19:29:25 +00:00
Balena CI
3e1b1b0be1
v14.4.4 2022-11-22 15:22:26 +00:00
Balena CI
db1c806d33
v14.4.3 2022-11-22 02:54:22 +00:00
Balena CI
80f52b796a
v14.4.2 2022-11-21 20:02:28 +00:00
Balena CI
e64166a583
v14.4.1 2022-11-18 16:08:16 +00:00
Balena CI
48fca82a79
v14.4.0 2022-11-17 01:37:54 +00:00
Felipe Lalanne
dade598737 Use fatrw utility for writes to boot partition
This PR changes the way the supervisor reads and writes files from /mnt/boot. Reads will
now use the [fatrw utility](https://github.com/balena-os/fatrw/) as a way to minimize corruption of
files in the boot partition, and thus preventing possible bricking of the device.

Since this basically changes the way a lot of configurations are read, this work was being blocked because of
the way tests were being done. While there still remain a couple of legacy tests to be migrated, this PR disables
test:legacy tests when running npm run test, as the work on refactoring those tests is in progress (see #2048) and
fatrw integration is of higher priority.

Change-type: minor
2022-11-16 21:21:23 -03:00
Balena CI
d14cca8e5d
v14.3.5 2022-11-16 22:29:58 +00:00
Balena CI
631e560137
v14.3.4 2022-11-16 18:55:03 +00:00
Balena CI
b29aaf540f
v14.3.3 2022-11-14 15:28:58 +00:00
pipex
827f892c13 Migrate all device config tests to integration.
This means that configuration backend tests no longer use stubs and
(mostly) avoid internal dependencies in the tests. Instead of stubs and
mock-fs, the tests use [testfs](https://github.com/balena-io-modules/mocha-pod#working-with-the-filesystem)
which allows working with a real filesystem and ensuring everything is
re-set between tests.

This is the last change needed in order to be able to merge #1971. Here is the list of changes

- [x] Migrate splash image backend tests
- [x] Migrate extlinux backend tests
- [x] Migrate config.txt backend tests
- [x] Migrate extra-uenv config tests
- [x] Migrate odmdata config tests
- [x] Migrate config utils tests
- [x] Migrate device-config tests

Change-type: patch
2022-11-14 11:12:52 -03:00
Balena CI
83c856ae4b
v14.3.2 2022-11-11 17:14:06 +00:00
Balena CI
ae756cfabe
v14.3.1 2022-11-11 16:47:26 +00:00
Pagan Gazzard
9e154da76e Update blinking to 0.0.7
Update blinking from 0.0.5 to 0.0.7

Change-type: patch
2022-11-11 16:06:11 +00:00
Balena CI
d766e3d103
v14.3.0 2022-11-10 01:09:40 +00:00
Christina Ying Wang
75bf2aa3b4 Improve NotFoundError handling
Use isNotFoundError which converts an error of the default type
`unknown` into NotFoundError if the error is an instance of NotFoundError.
Thrown errors are of type `unknown` by default so we should use methods
with type guards for better type narrowing.

Signed-off-by: Christina Ying Wang <christina@balena.io>
2022-11-08 15:41:52 -08:00
Balena CI
80e213ab7e
v14.2.21 2022-11-07 21:20:00 +00:00
Balena CI
f5ec74211f
v14.2.20 2022-11-03 22:27:41 +00:00
Balena CI
c4b2cb867e
v14.2.19 2022-11-03 21:20:53 +00:00
Balena CI
0bb3f0ad1f
v14.2.18 2022-11-02 19:00:54 +00:00
Balena CI
9e2d912fa1
v14.2.17 2022-11-01 21:47:55 +00:00
Balena CI
636d623151
v14.2.16 2022-10-27 15:00:47 +00:00
Balena CI
fd285b8f25
v14.2.15 2022-10-20 14:43:06 +00:00
pipex
117651ab3c Update sinon 2022-10-19 20:38:34 -03:00
Balena CI
93ca9c05f3
v14.2.14 2022-10-19 13:35:19 +00:00
Balena CI
1185b92bb4
v14.2.13 2022-10-18 22:58:19 +00:00
Balena CI
b7c497cc65
v14.2.12 2022-10-18 14:01:33 +00:00
pipex
a1e432f4fa Add build util to automatically detect arch from uname
This will help running `test:env` and `test:compose` in environments
other than `amd64`.
2022-10-17 11:32:47 -03:00
Balena CI
55285e9918
v14.2.11 2022-10-17 12:08:25 +00:00
Balena CI
eec12faa02
v14.2.10 2022-10-13 16:09:18 +00:00
Balena CI
076d95d0d2
v14.2.9 2022-10-10 19:42:06 +00:00
Balena CI
ef0dcc39dc
v14.2.8 2022-10-03 20:37:37 +00:00
Pagan Gazzard
0237bd7cf4 Update type dependencies
Change-type: patch
2022-10-03 14:38:42 -05:00
Balena CI
24fafd6e9d
v14.2.7 2022-09-28 15:37:47 +00:00
Felipe Lalanne
1867b74bd7 Migrate config module tests to integration
This commit also changes the test:integration command to run integration
tests as different processes. This allows to avoid any test leaking into
each-other because of the use of singletons. This however has the side
effect of tests being slower, but that is a forcing function to refactor
the code.
2022-09-28 10:37:41 -03:00
Felipe Lalanne
a2f9ea17c3 Update mocha-pod to 0.8.x
Newer mocha-pod allows to setup testfs instances at the global
level. This helps the test suite setup as it can guarantee that certain
files will always be available.
2022-09-28 10:37:40 -03:00
Balena CI
dee8680779
v14.2.6 2022-09-28 00:21:07 +00:00
Balena CI
e1b12c28fe
v14.2.5 2022-09-27 04:50:53 +00:00
Balena CI
1e84f8f59f
v14.2.4 2022-09-26 20:17:29 +00:00
Balena CI
6c1a9cadb2
v14.2.3 2022-09-26 19:24:16 +00:00
Felipe Lalanne
460659429d Update dependencies to fix NPM build
Change-type: patch
2022-09-26 15:26:48 -03:00
Balena CI
9f8929aa42
v14.2.2 2022-09-22 21:42:18 +00:00
Pagan Gazzard
47dca8604b Update to webpack 5
Change-type: patch
2022-09-22 21:07:44 +01:00
Balena CI
0e053b6706
v14.2.1 2022-09-22 20:07:29 +00:00
Balena CI
ac1fa4d491
v14.2.0 2022-09-20 17:55:22 +00:00
Felipe Lalanne
b168cc35a0 Remove mixpanel configurations
Mixpanel configurations and packages are no longer used. This removes
deadcode from the supervisor.
2022-09-20 14:22:24 -03:00
Balena CI
43bf7a504e
v14.1.3 2022-09-20 13:49:12 +00:00
Pagan Gazzard
93893093ff Update webpack dependencies to latest webpack 4.x compatible versions
Change-type: patch
2022-09-20 14:13:04 +01:00
Balena CI
a8841df5a4
v14.1.2 2022-09-20 12:57:54 +00:00
Pagan Gazzard
b3d8666997 Update husky/lint-staged dev dependencies
Change-type: patch
2022-09-20 12:52:26 +01:00
Balena CI
ade6513c66
v14.1.1 2022-09-19 21:21:53 +00:00
Thodoris Greasidis
1baf972e16 Update balena-register-device to 8.0.0
Update balena-register-device from 7.2.0 to 8.0.0

Change-type: patch
Signed-off-by: Thodoris Greasidis <thodoris@balena.io>
2022-09-19 13:41:23 -07:00
Balena CI
181be21d6e
v14.1.0 2022-09-19 20:36:48 +00:00
Pagan Gazzard
5518eb17bd Update to nodejs 16
Change-type: minor
2022-09-19 17:51:48 +01:00
Balena CI
7c6eadbb6c
v14.0.26 2022-09-19 16:37:43 +00:00
Pagan Gazzard
96418d55b5 Update @balena/lint to 6.2.0
Change-type: patch
2022-09-19 16:41:28 +01:00
Pagan Gazzard
a4c13aa2e9 Update to typescript 4.8.2
Change-type: patch
2022-09-19 16:36:17 +01:00
Balena CI
4153c179b8
v14.0.25 2022-09-15 22:32:31 +00:00
Pagan Gazzard
65e69f3a83 Update to nodejs 14
Change-type: patch
2022-09-15 22:59:40 +01:00
Balena CI
627aed295a
v14.0.24 2022-09-15 20:55:25 +00:00
Balena CI
a296700201
v14.0.23 2022-09-14 20:28:58 +00:00
Christina Ying Wang
82b4a7fe1e Modify npm scripts for Flowzone
Replace test with test:base to make sure integration tests don't run in CI.
Integration tests for the Supervisor fail when not run in container, leading
to an error-exit and cause the Flowzone CI job for Node to fail.

By returning true, the Flowzone Node CI job succeeds, and this is fine even if tests
fail because they will be caught in the Docker job anyway.

Also, combine original npm test script with test:node.

Signed-off-by: Christina Ying Wang <christina@balena.io>
2022-09-14 12:22:14 -03:00
Christina Ying Wang
670b9ff563 Automate dbus lib installation depending on system
Signed-off-by: Christina Ying Wang <christina@balena.io>
2022-09-14 12:22:14 -03:00
Balena CI
86aece8d29 v14.0.22 2022-09-14 11:19:10 -04:00
Balena CI
2ec9274b78 v14.0.21 2022-09-13 16:43:37 -04:00
Balena CI
efa400c5a6 v14.0.20 2022-09-13 16:07:08 -04:00
Balena CI
39cf98243f v14.0.19 2022-09-12 08:17:51 -04:00
Pagan Gazzard
45f71b38d0 Update blinking to 0.0.5
Change-type: patch
2022-09-12 13:01:32 +01:00
Balena CI
7d2df0646e v14.0.18 2022-09-07 11:53:28 -04:00
Thodoris Greasidis
725a1c9156 Update & deduplicate pinejs-client-request to 7.3.5
Update pinejs-client-request from 7.2.1 to 7.3.5
2022-09-07 17:09:19 +03:00
Thodoris Greasidis
fadd514463 Set desired es-version for downstream modules that support it
Change-type: patch
2022-09-07 17:07:16 +03:00
Balena CI
42dd4f75ac v14.0.17 2022-09-06 21:05:01 -04:00
Balena CI
6b36ccfddf v14.0.16 2022-09-06 13:48:02 -04:00
Balena CI
ba66b10c0e v14.0.15 2022-08-24 17:33:20 -04:00
Felipe Lalanne
6d004f0994 Setup docker-compose.test
This allows to run integration tests during development and on CI
with the right dependencies. There are several changes that this
involves, but the gist of it is that a test environment is setup using
`docker-compose.test.yml`. This file is loaded by `resin-ci` during the
build, and ensures that integration tests are ran after setting up all
requirements. This commit also defines a test environment command that
can be setup using `npm run test:env` in order to run tests in a local
development machine.
2022-08-24 16:07:20 -04:00
Felipe Lalanne
ba51ca5fc0 Add mocha-pod for running integration tests
This ensure that whenever integration tests are ran, they
are executed in a containerized environment.
2022-08-24 14:29:17 -04:00
Felipe Lalanne
44f3e9ccdb Add command to spawn a development environment
For development, now doing `npm run dev` will spawn containers with the
necessary dependencies for developing and testing the supervisor.
2022-08-24 14:29:17 -04:00
Felipe Lalanne
c1e6dadeb4 Create test/unit and test/integration folders
This sets up the new `test/unit` and `test/integration` folders
and starts classification of some of the test files.

Note that unit tests include, `fs-utils` and `system-info` tests.

While these tests interact with the filesystem, the implementation
of these modules is simple enough, and the tests are fast enough to
allow these tests to fall under the `unit` test category (according to
test/README)

Change-type: patch
2022-08-24 14:28:36 -04:00
Felipe Lalanne
e1e35eb83b Move the current test suite under test/legacy
We are refactoring the supervisor test suite into unit tests (for
algorithms an domain model tests) and integration
tests (for interaction with out-of-process dependencies).
This means the current test suite needs to be classified into
these two categories, and fixed whenever possible.

This commit moves the test suite under the `test/legacy` folder, this
folder should be progressively migrated and eventually removed.
Subsequent commits will begin to split these files into unit and
integration whenever possible.

Depends-on: #1996
Change-type: patch
2022-08-22 17:21:51 -04:00
Balena CI
0d42ec5698 v14.0.14 2022-08-23 00:02:38 +03:00
Felipe Lalanne
71eaa3327e Use tsconfig-paths for easier access to the source
Currently, tests only can import source code modules through relative
paths `../../`. This makes it very difficult to refactor and organize
tests in folders as the paths change.

[tsconfig-paths](https://www.npmjs.com/package/tsconfig-paths) allows to
reference the source through an alias defined in the "paths" section of
tsconfig.json
2022-08-18 12:23:31 -04:00
Felipe Lalanne
1439ee30f2 Move sinon to dev dependencies
Sinon was added to the production dependencies by mistake in a previous
build. This is a module only used for testing so this fixes that error.
2022-08-18 12:23:31 -04:00
Felipe Lalanne
274503feb3 Simplify test commands in package.json
The supervisor used to perform tests both for the transpiled code (after
tsc) and one for the typescript code (using
ts-node/register/transpile-only). There is not really a reason for this
and this added complexity to the test configuration. This used to make
testing harder, as the built code didn't include source maps, meaning
the tests did not point to the right code.

Since we want to split tests in unit and integration tests as the next
test improvement, it makes sense to simplify these commands before
adding more complexity.

Change-type: patch
2022-08-18 12:23:20 -04:00
Balena CI
d83a37e6fd v14.0.13 2022-08-03 02:59:36 +04:00
Balena CI
936ada7f64 v14.0.12 2022-07-19 00:34:22 +03:00
Balena CI
86112e59bf v14.0.11 2022-07-18 22:20:48 +03:00
Balena CI
ac933ad3ef v14.0.10 2022-07-14 01:16:48 +03:00
Balena CI
d11d4fba91 v14.0.9 2022-07-07 00:27:14 +03:00
Balena CI
dc8b75485c v14.0.8 2022-06-27 19:38:31 +03:00
Balena CI
7e5a06d3f8 v14.0.7 2022-06-22 23:12:46 +03:00
Balena CI
2de0d5901d v14.0.6 2022-06-16 02:33:49 +03:00
Balena CI
c1bfbd5f3d v14.0.5 2022-06-14 23:37:58 +03:00
Balena CI
51c5456af9 v14.0.4 2022-06-14 00:58:34 +03:00
Balena CI
c0fee7839b v14.0.3 2022-06-07 23:12:14 +03:00
Balena CI
888ffa700d v14.0.2 2022-06-07 06:04:47 +03:00
Balena CI
d9186649a6 v14.0.1 2022-06-03 01:26:19 +03:00
Balena CI
27ed56f7fe v14.0.0 2022-06-02 02:08:00 +03:00
Balena CI
33ad877c67 v13.1.11 2022-05-27 17:54:14 +03:00
Balena CI
564ff186e7 v13.1.10 2022-05-23 21:55:37 +03:00
Balena CI
b361b8eebe v13.1.9 2022-05-23 18:01:00 +03:00
Balena CI
9549539eb2 v13.1.8 2022-05-18 00:55:47 +03:00
Balena CI
713d39a85e v13.1.7 2022-05-17 18:46:23 +03:00
Balena CI
6620bca7bd v13.1.6 2022-05-06 22:05:50 +03:00
Balena CI
cbd74954b3 v13.1.5 2022-05-06 21:29:08 +03:00
Balena CI
5686cc363d v13.1.4 2022-04-28 21:29:01 +03:00
Balena CI
4557644149 v13.1.3 2022-04-20 22:38:47 +03:00
Balena CI
9aa50eea8a v13.1.2 2022-04-18 23:34:21 +03:00
Balena CI
81a8705ff8 v13.1.1 2022-04-13 22:29:32 +03:00
Balena CI
f5ca7e87f0 v13.1.0 2022-04-12 22:27:08 +03:00
Christina Wang
e9738b5f78 Modify update lock module to use new lockfile binary and library
Also uninstall lockfile NPM package as we're no longer using it

Signed-off-by: Christina Wang <christina@balena.io>
2022-04-12 12:02:28 -07:00
Balena CI
a2f739789d v13.0.3 2022-04-08 20:44:13 +03:00
Balena CI
ebdfff10ad v13.0.2 2022-04-08 05:58:26 +03:00
Balena CI
fa9074ce76 v13.0.1 2022-04-05 17:38:16 +03:00
Balena CI
ffc61ee0b4 v13.0.0 2022-03-29 00:01:51 +03:00
Felipe Lalanne
063bd400a4 Convert target state in local endpoints
Convert target state from to v3 in `/v2/local/target-state`. Add tests
for target state conversion
2022-03-22 19:08:03 -03:00
Balena CI
474fc4e890 v12.11.43 2022-03-22 01:57:31 +02:00
Balena CI
37a82e2dd6 v12.11.42 2022-03-19 00:35:28 +02:00
Balena CI
aa023051f6 v12.11.41 2022-03-16 23:13:15 +02:00
Balena CI
260737a570 v12.11.40 2022-03-16 21:14:58 +02:00
Balena CI
702efb2d14 v12.11.39 2022-03-16 05:19:57 +02:00
20k-ultra
2fdb83839c Move report throttle out of reporting logic
Change-type: patch
Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
2022-03-15 22:53:34 -04:00
20k-ultra
5e5f1fb305 Update npm dep sinon to v11.1.2
Change-type: patch
Signed-off-by: 20k-ultra <3946250+20k-ultra@users.noreply.github.com>
2022-03-15 22:53:34 -04:00
Balena CI
710d214dbb v12.11.38 2022-03-15 01:08:28 +02:00
Balena CI
ba395b2dbd v12.11.37 2022-02-28 23:24:15 +02:00
Balena CI
2615c25fc4 v12.11.36 2022-02-24 15:32:47 +02:00
Balena CI
2df5b2f388 v12.11.35 2022-02-16 23:01:18 +02:00
Balena CI
b677972576 v12.11.34 2022-02-16 15:31:02 +02:00
Balena CI
ff35af11b1 v12.11.33 2022-02-09 21:14:13 +02:00
Balena CI
5e0cf27bba v12.11.32 2022-02-02 17:55:02 +02:00
Balena CI
c5670ba366 v12.11.31 2022-02-01 23:49:09 +02:00
Balena CI
6796383437 v12.11.30 2022-01-27 20:54:34 +02:00
Balena CI
fba0317620 v12.11.29 2022-01-20 15:03:26 +02:00
Balena CI
ca7e42b2c7 v12.11.28 2022-01-19 17:31:27 +02:00
Balena CI
fcaef150a8 v12.11.27 2022-01-18 15:03:33 +02:00
Balena CI
4a383b2b31 v12.11.26 2022-01-18 12:44:59 +02:00
Balena CI
1274cefa9b v12.11.25 2022-01-17 23:30:09 +02:00
Balena CI
9c4e4acedf v12.11.24 2022-01-13 22:26:02 +02:00
Balena CI
0d4c902e35 v12.11.23 2022-01-06 18:39:59 +02:00
Balena CI
4abb7040de v12.11.22 2021-12-22 06:30:36 +02:00
Balena CI
4f980e0056 v12.11.21 2021-12-18 17:54:33 +02:00
Balena CI
52b47b91f0 v12.11.20 2021-12-13 18:53:39 +02:00
Balena CI
5de6e1125b v12.11.19 2021-12-11 00:32:29 +02:00
Balena CI
b31552b3f3 v12.11.18 2021-12-10 18:37:48 +02:00
Balena CI
14f8bb7b3b v12.11.17 2021-12-10 17:20:23 +02:00
Balena CI
ade787bab8 v12.11.16 2021-12-02 22:52:51 +02:00
Balena CI
f00610660f v12.11.15 2021-12-02 22:16:08 +02:00
Felipe Lalanne
f6692ab918 Convert target state types to io-ts for better validation
This simplifies target state validation and improves validation
messages.

Change-type: patch
2021-12-02 15:29:37 -03:00
Balena CI
a7db9b8c37 v12.11.14 2021-11-30 20:07:17 +02:00
Zane Hitchcox
9ed2685f63 Add happy eyeballs
Change-type: patch
2021-11-30 12:43:18 -05:00
Balena CI
1ece9f8bb0 v12.11.13 2021-11-29 19:29:30 +02:00
Balena CI
f81ab2fc06 v12.11.12 2021-11-17 23:26:09 +02:00
Balena CI
f9b2872648 v12.11.11 2021-11-17 19:05:58 +02:00
Balena CI
283495cfcd v12.11.10 2021-11-16 22:05:55 +02:00
Balena CI
9a820770e8 v12.11.9 2021-11-15 20:13:52 +02:00
Balena CI
32c2c36035 v12.11.8 2021-11-15 16:12:10 +02:00
Balena CI
78b0df7e19 v12.11.5 2021-11-10 17:36:27 +02:00
Balena CI
311f902df4 v12.11.4 2021-11-09 19:08:13 +02:00
Balena CI
f073652603 v12.11.3 2021-11-05 17:44:44 +02:00
Balena CI
eb473b7d6b v12.11.2 2021-10-28 19:09:53 +03:00
Balena CI
f43248aae8 v12.11.1 2021-10-26 20:47:56 +03:00
Balena CI
11df38b26d v12.11.0 2021-10-21 05:50:43 +03:00
Balena CI
7713f40927 v12.10.16 2021-10-13 03:39:53 +03:00
Balena CI
d86ae94525 v12.10.15 2021-09-30 17:18:40 +03:00
Balena CI
3237c03f00 v12.10.14 2021-09-29 16:55:38 +03:00
Balena CI
7ce488e805 v12.10.13 2021-09-28 22:45:42 +03:00
Balena CI
7648d075f6 v12.10.12 2021-09-28 18:30:57 +03:00
Balena CI
191e47344d v12.10.11 2021-09-27 16:18:10 +03:00
Balena CI
7191e7a042 v12.10.10 2021-09-07 18:03:20 +03:00
Balena CI
eeefc3abdd v12.10.9 2021-09-02 16:13:03 +03:00
Balena CI
19af36123e v12.10.8 2021-09-02 00:43:34 +03:00
Balena CI
f332ba646d v12.10.7 2021-09-01 23:46:44 +03:00
Balena CI
79f7f5fb24 v12.10.6 2021-09-01 21:13:03 +03:00
Balena CI
0ae52edbc8 v12.10.5 2021-09-01 01:59:03 +03:00
Balena CI
337e6affcd v12.10.4 2021-08-31 21:57:46 +03:00
Balena CI
f8cc2bc0ce v12.10.3 2021-08-25 16:53:22 +03:00
Balena CI
7e2ce7fc56 v12.10.2 2021-08-03 01:22:12 +03:00
Balena CI
49a391823c v12.10.1 2021-08-02 19:35:58 +03:00
Balena CI
0df979be55 v12.10.0 2021-07-31 01:27:29 +03:00
Balena CI
06c3f488e5 v12.9.6 2021-07-26 17:05:14 +03:00
Felipe Lalanne
f1bd4b8d9b Use tags to track supervised images in docker
The image manager module now uses tags instead of docker IDs as the main
way to identify docker images on the engine. That is, if the target
state image has a name `imageName:tag@digest`, the supervisor will always use
the given `imageName` and `tag` (which may be empty) to tag the image on
the engine after fetching. This PR also adds checkups to ensure
consistency is maintained between the database and the engine.

Using tags allows to simplify query and removal operations, since now
removing the image now means removing tags matching the image name.

Before this change the supervisor relied only on information in the
supervisor database, and used that to remove images by docker ID. However, the docker
id is not a reliable identifier, since images retain the same id between
releases or between services in the same release.

List of squashed commits
- Remove custom type NormalizedImageInfo
- Remove dependency on docker-toolbelt
- Use tags to traack supervised images in docker
- Ensure tag removal occurs in sequence
- Only save database image after download confirmed

Relates-to: #1616 #1579
Change-type: patch
2021-07-26 09:52:25 -04:00
Balena CI
19bcc6232b v12.9.5 2021-07-22 19:02:51 +03:00
Balena CI
f6774be127 v12.9.4 2021-07-08 22:26:09 +03:00
Balena CI
74ba1823c5 v12.9.3 2021-07-08 15:15:39 +03:00
Balena CI
3caf608158 v12.9.2 2021-07-07 16:54:35 +03:00