Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

balena os and device type support policies #3117

Draft
wants to merge 10 commits into
base: master
Choose a base branch
from
2 changes: 1 addition & 1 deletion pages/faq/questions.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ Generally, we try to follow good OPSEC practices for our systems. We support 2FA

##### How long is a balenaOS release maintained for?

BalenaOS comes in two flavors, a rolling release and an [Extended Support Release (ESR)](https://www.balena.io/docs/reference/OS/extended-support-release/). Rolling releases stop being maintained as soon as a new release is out. In other words, only the latest balenaOS release is maintained. ESR releases receive bug and security fixes for 9 months after its release date.
BalenaOS comes in two flavors, the standard rolling release and the [Extended Support Release (ESR)](/reference/OS/extended-support-release/). Maintenance for rolling releases stops as soon as a new release is out. In other words, only the latest balenaOS release is maintained. ESR releases receive bug and security fixes for 9 months after its release date. More information about our support policy is in the [Self-service updates](/reference/OS/updates/self-service/) page.

##### When are device types discontinued?

Expand Down
32 changes: 30 additions & 2 deletions pages/reference/OS/updates/self-service.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,18 @@ excerpt: How to update {{ $names.os.lower }} versions from your dashboard

## Which devices and versions are supported?

Since we periodically release updates and improvements to {{ $names.os.lower }} (the host OS running on all {{ $names.company.lower }} devices), we encourage you to keep your devices up to date. We offer self-service host OS updates between 2.x versions and from 1.x to 2.x versions. All 2.x devices will default to delta-based updates if available, thus reducing the size of the update sent over the network.
We periodically release updates and improvements to balenaOS, the host operating system that powers all balena devices. These releases are accessible through multiple channels, including the dashboard, SDK, and CLI.

__Note:__ {{ $names.os.upper }} 1.x to 2.x updates limit the amount of data you can have in your application's `/data` folder to about 170MB (compressed). If you have more data, the update will fail and your device won't be modified.
Updating from one version to a newer one is generally supported; however, big version jumps may not always be guaranteed. Devices running balenaOS 2.x and above benefit from delta-based updates when available, significantly reducing the size of updates sent over the network.

Self-service updates are available for both `production` and `development` {{ $names.os.lower }} variants.

For device types and {{ $names.os.lower }} versions that are not yet supported, please contact us on the [forums][forums]. We are continuously expanding the range of versions and types that can be updated.

Find more information below about our version support policy.

__Note:__ {{ $names.os.upper }} 1.x to 2.x updates limit the amount of data you can have in your application's `/data` folder to about 170MB (compressed). If you have more data, the update will fail and your device won't be modified.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This note is probably no longer relevant as we should have no devices lower than v2.14 on the fleets.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed

## Running an update

To run an update for an individual device, navigate to that device's *Settings* tab, go to the section *OS version*, and select the version of {{ $names.os.lower }} you would like to update to. After making your selection, click the *Save* button.
Expand Down Expand Up @@ -43,6 +47,30 @@ If your {{ $names.os.lower }} update fails for any reason, the device should sti

Check out our [update process][update-process] to understand how the process goes through each step.

## balenaOS support policy

We have two release strategies, that you can use depending on your needs and subscription plan. This is our maintenance and support policy:

### Rolling Releases

- We only maintain the latest rolling release of balenaOS.
- When a new release is published, the previous version is no longer maintained.
- If you’re not on the latest version and need help, we recommend updating to the most recent release for compatibility and support.
- You can report issues on the latest rolling release; bug fixes, if any, will only be included in future rolling releases.
- We understand it’s not always possible to stay up to date. For this reason, we offer reasonable assistance to help unblock you on your current version. However, any identified bugs will only be resolved in the latest rolling release.

### Extended Support Releases (ESR)

- ESR provides stable balenaOS releases supported for 9 months, with quarterly updates to adopt new versions.
- Only high-risk security fixes and critical bug fixes are backported; no new features are added.
- Each ESR version follows a 3-phase lifecycle:
- `Next-ESR` (6-9 months with active fixes).
- `Current-ESR` (3-6 months).
- `Sunset-ESR` (final 3 months).
- After 9 months, the ESR version reaches end-of-life (EOL), with no further updates.

For more details, visit our [Extended Support Release documentation](https://docs.balena.io/reference/OS/extended-support-release/).

<!-- links -->
[forums]:{{ $names.forums_domain }}/
[troubleshooting]:{{ $names.forums_domain }}/c/troubleshooting
Expand Down
34 changes: 26 additions & 8 deletions pages/reference/hardware/versioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,30 @@ The community devices types are:
- Updated to newer versions as the community drives it, we do not guarantee the device type will keep up with OS versions.
- Community boards can be promoted to an official balena supported board if a customer is interested in sponsoring the device support. If you are interested in sponsoring a community board, email [email protected] .

#### Discontinued
Discontinued device types are those that are no longer actively maintained by the balena team or anyone in the community and will stop showing in the dashboard as options for new fleets and devices. Any already provisioned devices of this type will continue to function, but will no longer receive operating system updates.

A device type will be discontinued if:
- The device manufacturer end support and sale of the device.
- No devices of this type are provisioned on balenaCloud in the last 6 months.
- If it is a community device type and it has not received maintenance in the last 6 months.
- If it is a private device type and the customer has stopped paying for the device to be supported.
#### Device Type support policy
At balena, we’re here to make sure balenaOS runs smoothly on actively maintained hardware models. This policy lays out what we support, what you can expect, and how we handle devices when they reach the end of their lifecycle.

#### Our offerings for vendor-supported hardware models**
- BalenaOS Image: A tested and ready-to-use version of balenaOS [available generally](https://balena.io/os).
- Incident and Bug Support: Troubleshoot incidents, bugs, or performance issues with balenaOS — whenever possible.
- Regular Updates: You’ll get ongoing updates and patches to keep your devices secure, compatible, and running efficiently.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Regular Updates: You’ll get ongoing updates and patches to keep your devices secure, compatible, and running efficiently.
- Regular Updates: Ongoing updates and patches to keep your devices secure, compatible, and running efficiently.


**What Happens When a Device is Discontinued?**
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**What Happens When a Device is Discontinued?**
#### What happens when a device is discontinued - No vendor support?

Sometimes, a device type reaches the end of the road. When this happens:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Sometimes, a device type reaches the end of the road. When this happens:
This is the scenario when a device type reaches the End of Life (EoL) or similar stage. The vendor no longer supports the device. When this happens:

- The device type will stop appearing as an option for creating new fleets or adding new devices in the dashboard.
- Any devices already provisioned will keep working, but they won’t get any more OS updates.

**When Does a Device Get Discontinued?**
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clarify what discontinuation means in the balenaCloud sense which is very different to real terms

Copy link
Contributor

@alexgg alexgg Dec 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we currently discontinue devices from BC - we commit to keeping them working as they were on the last release. That is made possible by API versioning and the introduction of new features on new versioned API. This is obviously great for the product as a value add for customers, and up to date we have been able to afaik, but it may be something the backend guys object to.

We’ll discontinue a device type if:
- If the manufacturer stops supporting or selling the device.
- It’s No Longer Used: No new devices of this type have been added to balenaCloud in the past 6 months.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Has this always been the case? If I were a customer and I'm paying for my fleet of devices, even if the number is stable, I would strongly argue the device is actively used.
I personally don't see a reason to state something like this - if a device is really no longer being used we can discontinue it and no-one will realize.

- In case the device is a community device and there's no maintenance activity from the community in the last 6 months.
- In case the device is a private device type and if the customer stops paying for the device type support.

**What happens to discontinued devices on balenaCloud?**
Here’s what you can expect:
- Support Wrap-Up: Updates, patches, and bug fixes will no longer be provided. We’ll still do our best to help with workarounds or recommend alternative devices.
- Custom Support Options: Need continued support? We can explore custom options on a case-by-case basis, which may involve additional fees.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is also forum based, community and best effort support. Should we not mention that?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would be a different entry in the FAQ regarding how to get support on a community device


## Versioning

Expand All @@ -54,3 +70,5 @@ The version string for a particular device type is a combination of the [meta-ba
* The version of the specific device type is constructed by appending to the `meta-balena` version a `rev` label. This will have the semantics of a board revision which adapts a specific `meta-balena` version for a targeted board. For example a `meta-balena` 1.2.3 can go through 3 board revisions at the end of which the final version will be 1.2.3+rev3 .
* When updating `meta-balena` version in a specific device type repo, the revision will reset to 1. Ex: 1.2.3+rev4 will be updated to 1.2.4+rev1 .
* Note that the final OS version is NOT based on the semver specification so parsing of such a version needs to be handled in a custom way. If you are interested in how to parse the version scheme, have a look at our balenaOS version parser [balena-semver](https://github.com/balena-io-modules/resin-semver).

Look at our [balenaOS support policy](/reference/OS/updates/self-service.md) for information about how we support and maintain the different versions.
Loading