balena-supervisor/test
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
..
config Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
data Improve testing for supervisor composition modules 2021-07-05 17:50:52 -04:00
lib Use tags to track supervised images in docker 2021-07-26 09:52:25 -04:00
src Use tags to track supervised images in docker 2021-07-26 09:52:25 -04:00
.mocharc.fast.js Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
.mocharc.js Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
00-init.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
01-constants.spec.ts Remove mz, mkdirp, body-parser dependencies 2021-04-28 07:20:15 +09:00
02-db.spec.ts Remove mz, mkdirp, body-parser dependencies 2021-04-28 07:20:15 +09:00
03-config.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
05-device-state.spec.ts Use tags to track supervised images in docker 2021-07-26 09:52:25 -04:00
06-validation.spec.ts Remove mz, mkdirp, body-parser dependencies 2021-04-28 07:20:15 +09:00
07-blink.spec.ts Remove mz, mkdirp, body-parser dependencies 2021-04-28 07:20:15 +09:00
08-event-tracker.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
09-network.spec.ts Remove mz, mkdirp, body-parser dependencies 2021-04-28 07:20:15 +09:00
10-api-binder.spec.ts Create & unify src/device-state/current-state tests 2021-05-12 18:33:01 +09:00
11-logger.spec.ts Remove mz, mkdirp, body-parser dependencies 2021-04-28 07:20:15 +09:00
12-device-config.spec.ts Add toggleable SUPERVISOR_HARDWARE_METRICS config 2021-05-13 13:59:07 +09:00
14-conversions.spec.ts Remove mz, mkdirp, body-parser dependencies 2021-04-28 07:20:15 +09:00
15-ports.spec.ts Remove mz, mkdirp, body-parser dependencies 2021-04-28 07:20:15 +09:00
16-config-utils.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
18-startup.spec.ts Remove mz, mkdirp, body-parser dependencies 2021-04-28 07:20:15 +09:00
19-compose-utils.spec.ts Remove mz, mkdirp, body-parser dependencies 2021-04-28 07:20:15 +09:00
21-supervisor-api.spec.ts Consolidated Supervisor API tests into clearer files 2020-11-30 15:42:49 -05:00
22-local-mode.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
23-contracts.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
24-deltas.spec.ts Convert all test files to TS and add .spec to all filenames 2020-06-05 18:34:24 -04:00
25-journald.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
27-extlinux-config.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
28-db-format.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
29-append-directive.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
30-fdt-directive.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
31-docker-utils.spec.ts docker-utils: Test network gateway determination logic 2020-07-22 13:17:16 +01:00
33-extra-uenv-config.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
34-firewall.spec.ts Infer legacy Volumes that do not have the supervised label 2021-03-15 19:46:53 -04:00
35-os-release.spec.ts tests: Clean up and consistify naming scheme 2020-10-12 14:41:21 +01:00
37-odmdata-config.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
39-compose-commit.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
40-target-state.spec.ts Upgrade mocha to v8, use mocha fixtures for chai plugins 2021-05-12 17:10:57 +09:00
41-device-api-v1.spec.ts Use tags to track supervised images in docker 2021-07-26 09:52:25 -04:00
42-device-api-v2.spec.ts Use tags to track supervised images in docker 2021-07-26 09:52:25 -04:00
43-splash-image.spec.ts Remove mz, mkdirp, body-parser dependencies 2021-04-28 07:20:15 +09:00