From 60e22b3ec2cf2ca5f16ddcbb3be65376fac60165 Mon Sep 17 00:00:00 2001 From: James Carppe Date: Thu, 21 Nov 2024 02:40:41 +0000 Subject: [PATCH] GITBOOK-15: Add lifecycle policy --- .../assets/portainer-lifecycle-releases.png | Bin 0 -> 46087 bytes SUMMARY.md | 1 + start/architecture.md | 4 +- start/lifecycle.md | 94 ++++++++++++++++++ 4 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 .gitbook/assets/portainer-lifecycle-releases.png create mode 100644 start/lifecycle.md diff --git a/.gitbook/assets/portainer-lifecycle-releases.png b/.gitbook/assets/portainer-lifecycle-releases.png new file mode 100644 index 0000000000000000000000000000000000000000..b34892d43cb05ab8bcc4de4df0c847973db8117b GIT binary patch literal 46087 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 literal 0 HcmV?d00001 diff --git a/SUMMARY.md b/SUMMARY.md index 371cf427..f932a544 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -8,6 +8,7 @@ * [Introduction](start/intro.md) * [Portainer architecture](start/architecture.md) +* [Lifecycle policy](start/lifecycle.md) * [Requirements and prerequisites](start/requirements-and-prerequisites.md) * [Install Portainer BE](start/install/README.md) * [Set up a new Portainer BE Server installation](start/install/server/README.md) diff --git a/start/architecture.md b/start/architecture.md index 6142286c..735fbcf8 100644 --- a/start/architecture.md +++ b/start/architecture.md @@ -28,6 +28,6 @@ Portainer runs exclusively on your servers, within your network, behind your own While we do (optionally) collect anonymous usage analytics from Portainer installations, we remain compliant with GDPR. Data collection can be disabled when you install the product, or at any time after that. If your installation is air-gapped, collection will silently fail without any adverse effects. -{% content-ref url="requirements-and-prerequisites.md" %} -[requirements-and-prerequisites.md](requirements-and-prerequisites.md) +{% content-ref url="lifecycle.md" %} +[lifecycle.md](lifecycle.md) {% endcontent-ref %} diff --git a/start/lifecycle.md b/start/lifecycle.md new file mode 100644 index 00000000..1ef88eac --- /dev/null +++ b/start/lifecycle.md @@ -0,0 +1,94 @@ +# Lifecycle policy + +Portainer makes this policy public so customers and partners can effectively plan, deploy, and support their container management infrastructure effectively using Portainer. It is published in an effort to provide as much transparency as possible but Portainer has the discretion to make exceptions from this policy should that be in Portainer’s or our customer’s best interests. + +Any release dates are provided for guidance only and the exact dates may change. + +## The Portainer lifecycle + +Portainer releases approximately follow a monthly cadence for minor releases (X.Y) which can introduce feature enhancements and new features but endeavor to maintain backward compatibility. + +Micro or patch releases (X.Y.z) are released as needed and are limited to backward compatible bug fixes only. + +Major versions (X) will be much less frequent, will include potential breaking changes, and may require an upgrade or migration process from previous versions. + +All releases are cumulative - all previous enhancements and fixes are included in each release. + +## Terminology + +### Supported versus maintained + +When we say “supported”, we are referring to the commercial support that is included with Portainer Business Edition subscriptions at the Scale and Enterprise level. This includes access to all STS and LTS releases and patches. Our [support terms](https://www.portainer.io/support-terms) have more detail on what is and isn’t covered by our support. + +For Starter, Home & Student, our free Business Edition offerings, and our Community Edition, support is provided through our [community support channels](https://www.portainer.io/get-support-for-portainer). + +The term “maintained” refers to the act of releasing updated versions of our releases, for example patches to resolve bugs or security issues. All editions of Business Edition and Community Edition will be maintained according to each release’s respective lifecycle. + +Portainer always recommends updating to the latest version in the release stream to ensure you have the latest security fixes, bug fixes, and performance improvements. It is at Portainer’s discretion to backport fixes to any version outside of the supported version window. + +### STS versus LTS + +Portainer has two release streams, STS and LTS and it’s important you know the differences so you can choose accordingly. + +#### Short Term Support (STS) releases + +Short Term Support releases are identified with an “STS” suffix. + +These are supported and maintained until the release of the next STS or LTS version. Use STS versions if you are interested in getting the latest features faster and don’t mind upgrading more frequently. + +#### Long Term Support (LTS) releases + +Long Term Support releases are identified with an “LTS” suffix. + +These releases are supported and maintained until the release of the next LTS version plus a three month migration window so are more suitable for environments where adding new features on a frequent basis is less desirable. + +{% hint style="info" %} +Portainer LTS releases focus less on new features and more on stability so Portainer recommends LTS releases for production workloads. +{% endhint %} + +## Current and planned releases + +Each stream (LTS and STS) will have a number of patch releases throughout it’s life. + +### Current releases + +| Release | Release Date | End of Support/Maintenance | +| ------------ | ------------ | -------------------------- | +| **2.21 LTS** | **Aug 2024** | **Jul 2025** | +| 2.24 STS | Nov 2024 | Dec 2024 | + +### Planned releases + +| Release | Release Date | End of Support/Maintenance | +| ------------ | ------------ | -------------------------- | +| 2.25 STS | Dec 2024 | Jan 2025 | +| 2.26 STS | Jan 2025 | Feb 2025 | +| **2.27 LTS** | **Feb 2025** | **Nov 2025** | + +

+ +Sitting on an older release that is no longer maintained or supported is strongly discouraged and customers take full responsibility for doing so. Customers are strongly encouraged to ensure they are running the latest patch release for a given stream. + +## Older releases that are no longer supported or maintained + +The following releases have passed the end of support date and are no longer maintained or supported. If you are using one of these versions (or older), we recommend that you [update](upgrade/) as soon as possible. + +| Release | Release Date | End of support/maintenance | +| -------- | ------------ | -------------------------- | +| 2.17 | Feb 2023 | Apr 2023 | +| 2.18 | Apr 2023 | Aug 2023 | +| 2.19 | Aug 2023 | Aug 2024 | +| 2.20 STS | Mar 2024 | Aug 2024 | +| 2.22 STS | Sep 2024 | Oct 2024 | +| 2.23 STS | Oct 2024 | Nov 2024 | + +## Notes + +Portainer uses the [semantic versioning scheme](https://semver.org/) and while Portainer endeavors to follow best practices, we reserve the right to make exceptions should that be in Portainer’s and our customer’s best interests. + +For information on the available options and best practices for updating Portainer deployments, [refer to our update documentation](upgrade/). + +{% content-ref url="requirements-and-prerequisites.md" %} +[requirements-and-prerequisites.md](requirements-and-prerequisites.md) +{% endcontent-ref %} +