Commit Graph

4500 Commits

Author SHA1 Message Date
Felipe Lalanne
f7ed27fb26 Add containerName to Service interface
This allows to compare the current and target container names and
trigger an `updateMetadata` step if they are different. This allows us
to normalize the container name format with a new supervisor update.

Change-type: minor
2023-12-11 17:23:33 -03:00
Felipe Lalanne
aedfd31dd0 Remove release and image id from test services 2023-12-11 17:23:33 -03:00
Felipe Lalanne
5a84f22736 Use the state-helper functions in app module tests 2023-12-11 17:23:33 -03:00
Felipe Lalanne
f37ee1b890 Remove imageId from container name
The image id is no longer necessary to report the current state since
moving to v3 of the state endpoint and it is only kept for backwards
compatibility for some supervisor API endpoings.

Until now, `imageId` was part of the container name leading to longer
names than desired. This change removes the value from the container
name an modifies queries to look for the value in the image database.

This also removes the imageId from the log stream which should result in
reduced bandwidth usage.

Change-type: minor
2023-12-11 17:23:26 -03:00
Felipe Lalanne
3385bfa180 Remove releaseId from container name
The release id is not really necessary for reporting the current state
since v3 (it has been replaced by `releaseUuid`) and is only kept for
backwards compatibility for some supervisor API endpoints.

Until now, the `releaseId` was part o the container name, leading to
longer names than desired. This change removes the value from the
container name and modifies queries to look for the value in the image
database.

Change-type: minor
Relates-to: #2077
2023-11-23 19:12:55 -03:00
flowzone-app[bot]
df027248fd
v15.1.0 2023-11-22 20:12:21 +00:00
flowzone-app[bot]
698b8159ff
Merge pull request #2226 from balena-os/sandbox-error
Force remove container if updateMetadata fails
2023-11-22 20:10:41 +00:00
Felipe Lalanne
3ea8d4727a Force remove container if updateMetadata fails
The `updateMetadata` step renames the container to match the target
release when the service doesn't change between releases. We have seen
this step fail because of an engine bug that seems to relate to the
engine keeping stale references after container restarts. The only way
around this issue is to remove the old container and create it again.
This implements that workaround during the updateMetadata step to deal
with that issue.

Change-type: minor
Relates-to: balena-os/balena-engine#261
2023-11-22 14:16:44 -03:00
flowzone-app[bot]
6acd04a01b
v15.0.4 2023-11-22 17:10:59 +00:00
flowzone-app[bot]
b6aa75b4ee
Merge pull request #2227 from balena-os/update-systemd-0.5.0
Update @balena/systemd to 0.5.0
2023-11-22 17:10:08 +00:00
Christina Ying Wang
fd3b6f6961 Include target-state-config dump file in testfs
Signed-off-by: Christina Ying Wang <christina@balena.io>
2023-11-22 11:09:26 -03:00
Felipe Lalanne
d18292f68e Only build sqlite3 from source
Change-type: patch
2023-11-22 11:09:26 -03:00
Christina Ying Wang
7981e6becd Update @balena/systemd to 0.5.0
Change-type: patch
Signed-off-by: Christina Ying Wang <christina@balena.io>
2023-11-22 11:09:26 -03:00
flowzone-app[bot]
55433a88cd
v15.0.3 2023-11-22 00:32:56 +00:00
flowzone-app[bot]
b53bd31332
Merge pull request #2225 from balena-os/cache-last-reported-current-state
Cache last reported current state
2023-11-22 00:31:26 +00:00
Christina Ying Wang
eb8ad11cd7 Cache last reported current state to /mnt/root/tmp
Whenever the Supervisor reports current state, it diffs the current state
with its last reported current state. However, when the Supervisor starts
up, there is no last reported state, since that last report is stored in
process memory. Caching the last report in a location that survives
Supervisor restarts will reduce the current report bandwidth used on startup.

Change-type: patch
Signed-off-by: Christina Ying Wang <christina@balena.io>
2023-11-14 16:15:36 -08:00
Christina Ying Wang
d440776881 Convert current state types to io-ts
Signed-off-by: Christina Ying Wang <christina@balena.io>
2023-11-08 16:00:54 -08:00
flowzone-app[bot]
dd5f9c8558
v15.0.2 2023-11-01 22:17:08 +00:00
Christina Wang
7c6b5d0fa0
Merge pull request #2220 from balena-os/apply-in-progress-intermediate-state
Set applyInProgress to true while applying intermediate state
2023-11-01 15:15:58 -07:00
Christina Ying Wang
a993b3e7af Set applyInProgress to true while applying intermediate state
Intermediate state is utilized when executing device actions such as a
volume purge. It's a type of state apply, but despite that,
applyInProgress is not true.

Change-type: patch
Signed-off-by: Christina Ying Wang <christina@balena.io>
2023-10-25 10:32:10 -07:00
flowzone-app[bot]
06cf939958
v15.0.1 2023-10-25 13:04:14 +00:00
flowzone-app[bot]
2a078b19b2
Merge pull request #2219 from balena-os/expose-port-mappings
Expose ports from port mappings on services
2023-10-25 13:03:04 +00:00
Felipe Lalanne
9bd216327f Expose ports from port mappings on services
PR #2217 removed the expose configuration but also caused a regresion
where ports set via the `ports` configuration would no longer get
exposed to the host, despite portmappings being set. This fixes that
issue by exposing only those ports comming from port mappings.

Change-type: patch
2023-10-24 15:04:39 -03:00
flowzone-app[bot]
6d2470a686
v15.0.0 2023-10-23 17:31:14 +00:00
flowzone-app[bot]
67dac79476
Merge pull request #2217 from balena-os/v15-ignore-dc-expose
Ignore `expose` service compose configuration
2023-10-23 17:30:10 +00:00
Felipe Lalanne
416170bc05 Ignore expose service compose configuration
The docker EXPOSE directive and corresponding docker-compose `expose`
service configuration serves as documentation/metadata that a container
listens on a certain port that may be used for service discovery but it doesn't
have any real impact on the ability for
other containers on the same network to access the exposed service via
the port. In newer engine implementations, this property may conflict
with other network configurations, and prevent the container from being
started by the docker engine (see #2211).

This PR removes code that would manage the expose property and takes the
property out of the whitelist. A composition with the `expose` property
will result in the log message `Ignoring unsupported or unknown compose fields: expose`.

While this change should not have operational impact, it still removes
a previously supported configuration and as such there is a chance of it
being a breaking change for some applications. For this reason it is
being published as a new major version.

Change-type: major
Closes: #2211
2023-10-23 11:41:32 -03:00
flowzone-app[bot]
2089b3863d
v14.13.14 2023-10-23 13:34:46 +00:00
flowzone-app[bot]
cdec9ca34d
Merge pull request #2156 from balena-os/jitter-docs
Add note regading API jitter on target state poll
2023-10-23 13:33:50 +00:00
Felipe Lalanne
b107868765 Add note regading API jitter on target state poll
Change-type: patch
2023-10-23 14:11:20 +01:00
flowzone-app[bot]
f7396cf335
v14.13.13 2023-10-16 21:43:24 +00:00
flowzone-app[bot]
9145544fda
Merge pull request #2213 from balena-os/reduce-lodash
Reduce lodash usage
2023-10-16 21:42:25 +00:00
Pagan Gazzard
e15205301c Switch some _.includes usage to native versions
Change-type: patch
2023-10-16 14:30:25 -03:00
Pagan Gazzard
a4a9a17c1a Switch _.assign usage to native versions
Change-type: patch
2023-10-16 14:30:25 -03:00
Pagan Gazzard
d0cb54537f Switch _.isNaN usage to native versions
Change-type: patch
2023-10-16 14:30:25 -03:00
Pagan Gazzard
c9f032e13a Switch _.isFunction usage to native versions
Change-type: patch
2023-10-16 14:30:25 -03:00
Pagan Gazzard
3bfdc4454e Switch _.isUndefined usage to native versions
Change-type: patch
2023-10-16 14:30:25 -03:00
Pagan Gazzard
8e23091aa9 Switch _.isNull usage to native versions
Change-type: patch
2023-10-16 14:30:25 -03:00
Pagan Gazzard
ca3faebfc9 Switch _.isNumber usage to native versions
Change-type: patch
2023-10-16 14:30:25 -03:00
Pagan Gazzard
20df54668c Switch _.isArray usage to native versions
Change-type: patch
2023-10-16 14:30:25 -03:00
Pagan Gazzard
3fe8a22fb0 Switch _.isString usage to native versions
Change-type: patch
2023-10-16 14:30:25 -03:00
flowzone-app[bot]
a3d70e3240
v14.13.12 2023-10-16 16:59:18 +00:00
flowzone-app[bot]
8981ee58cf
Merge pull request #2215 from balena-os/fix-service-network
Revert "Do not expose ports from image if service network mode"
2023-10-16 16:58:27 +00:00
Felipe Lalanne
3e828dcc52 Revert "Do not expose ports from image if service network mode"
This reverts commit 0c7bad7792, as that
change causes a service restart loop. The supervisor cannot distinguish
between ports exposed via the `EXPOSE` directive and the docker-compose
`expose` property. Because of this, in the case of `network-mode:
service:<...>` the current state and target state never match, leading
to a service restart loop.

Change-type: patch
2023-10-16 13:06:50 -03:00
flowzone-app[bot]
39d912d3e6
v14.13.11 2023-10-16 15:43:29 +00:00
Page-
ab5aa54448
Merge pull request #2214 from balena-os/fix-husky
Fix husky config for automatic linting on commit
2023-10-16 16:42:31 +01:00
Pagan Gazzard
23d5311a51 Fix husky config for automatic linting on commit
Change-type: patch
2023-10-16 16:20:02 +01:00
flowzone-app[bot]
47ebe39bed
v14.13.10 2023-10-16 13:50:24 +00:00
flowzone-app[bot]
3c84c1e3aa
Merge pull request #2210 from balena-os/native-promises
Convert multiple bluebird uses to native promises
2023-10-16 13:49:11 +00:00
Pagan Gazzard
766cce89c7 Convert multiple bluebird uses to native promises
Change-type: patch
2023-10-16 11:40:45 +01:00
flowzone-app[bot]
f6a4465114
v14.13.9 2023-10-16 02:14:34 +00:00