Portainer Versions Save

Making Docker and Kubernetes management easy.

2.20.1

3 weeks ago

2.20.1

See Upgrading Portainer instructions.

Overview of changes

Introducing the new Portainer CE 2.20.1 release. This is an STS (Short-Term Support) release.

As you gear up for the transition to Portainer CE 2.20.1, our latest STS (Short-Term Support) installment, ensuring a smooth upgrade is key. We urge you to back up your configurations via the Portainer UI beforehand. This backup acts as your safety net, ensuring you can gracefully revert to the prior version or state if the new frontier proves too wild. Additionally, pore over the release notes for catching any compatibility issues, understanding deprecated functionalities, and identifying essential tweaks to your current setup. Your diligence will pave the way for a seamless update.

A Short-Term Support release can be considered as "bleeding-edge" as it will contain the latest features and functionality we've developed. The STS releases (including this one) will go through a significant amount of pre-release testing, but there may be changes that could cause regressions and features that might see further iterations. As such, if stability is a crucial concern for your setup we wouldn't recommend deploying STS releases on production environments.

Read more in our "Portainer 2.20 STS" blog

Important Note Regarding Docker 26 Support

Please be aware that support for Docker 26 is provided on an "as-is" basis and is primarily driven by best-effort principles. Minimal regression testing has been conducted to ensure basic functionality. Users should proceed with caution and report any issues they encounter.

Docker

  • Resolved an issue where Docker 25/26 API changes affected container-related pages and image size display portainer/portainer#11504

Kubernetes

  • Resolved an issue where deploying GitOps edge stacks on a Kubernetes edge device resulted in error portainer/portainer#11503
  • Resolved an issue where the secret owner migration process could lead to a deadlock, preventing the HTTP(S) server from starting. portainer/portainer#11501

Portainer

  • Fixed an issue where local stacks were being overwritten by orphaned stacks with the same name in the regular stack listing page portainer/portainer#11502

2.20.0

1 month ago

2.20.0

See Upgrading Portainer instructions.

Overview of changes

Introducing the new Portainer CE 2.20.0 release. This is an STS (Short-Term Support) release.

As you gear up for the transition to Portainer CE 2.20.0, our latest STS (Short-Term Support) installment, ensuring a smooth upgrade is key. We urge you to back up your configurations via the Portainer UI beforehand. This backup acts as your safety net, ensuring you can gracefully revert to the prior version or state if the new frontier proves too wild. Additionally, pore over the release notes for catching any compatibility issues, understanding deprecated functionalities, and identifying essential tweaks to your current setup. Your diligence will pave the way for a seamless update.

A Short-Term Support release can be considered as "bleeding-edge" as it will contain the latest features and functionality we've developed. The STS releases (including this one) will go through a significant amount of pre-release testing, but there may be changes that could cause regressions and features that might see further iterations. As such, if stability is a crucial concern for your setup we wouldn't recommend deploying STS releases on production environments.

Read more in our "Portainer 2.20 STS" blog

Breaking Changes

  • Introduced a requirement to specify the current user's password when adding an API token via the UI or the POST /users/{id}/tokens API endpoint.
  • Fixed issue when deploying Docker stacks from Git-based custom templates where a user could edit the content via the web editor, when they should only have been able to deploy the content from Git.

Deprecation Notice

  • DEPRECATED API endpoint GET /kubernetes/{id}/namespaces/{namespace}/configuration. Following Portainer 2.19 split of K8s ConfigMaps and Secrets to two UI tabs and K8s API proxy use, the original endpoint combining both resource types is marked deprecated.
  • DEPRECATED API endpoint GET+POST /endpoints/{id}/kubernetes/helm/repositories, MOVED Helm UI option to Advanced Deployment/Create from Manifest screen + now allow users to delete their Helm repos. New endpoint GET+POST /users/{id}/helm/repositories added.

Resolved CVEs

  • Updated various packages to resolve CVEs. portainer/portainer#9224
  • Resolved CVEs for Portainer agent
  • Resolved CVEs for Portainer CE and BE

Edge

  • Fixed issue where admin users were unable to update a Git-based edge stack created by another user.
  • Fixed issue where the "Retry deployment" toggle did not persist when editing an edge stack.
  • Fixed issue clearing logs for edge jobs, addressing an error related to the absence of the specified directory
  • Resolved an issue by implementing timeouts for the agent during snapshot building, preventing it from getting stuck indefinitely or taking excessive time in unresponsive Docker daemon scenarios
  • Fixed an issue where the Edge Agent was resetting EndpointId to 0 and polling global-key incorrectly when disconnected from Portainer server, even with disabled edge compute features
  • Fixed an issue where a dynamic edge group would erroneously create a stack even if no environment was present

Swarm

  • Updated the documentation link for Swarm agent setup in the UI to ensure it directs users to the correct documentation.
  • Updated the Quick Setup wizard to provide a more accurate message, eliminating misleading connection failure notifications when adding the local environment via Agent deployment.

Docker

  • Fixed issue where Docker Images List breaks when an image has no tags.

Kubernetes

  • Updated the version of the kubectl client in the kubectl shell console. portainer/portainer#11303
  • Fixed the stripping of labels from certain Kubernetes resources - Ingress, ConfigMap or Secret - when form-editing them. portainer/portainer#11147
  • Resolved an issue where, on adding a Helm repo, a timeout could sometimes occur. portainer/portainer#11137
  • Resolved an issue where the upgrade to BE from CE within Portainer on MicroK8s was failing because the wait time was too short.
  • Fixed an issue where namespaces 'set to system' from within Portainer weren't being detected as system. portainer/portainer#11146
  • Fixed 'Unable to determine which association to use to convert form' error when adding a service to a Kubernetes pod that had been deployed external to Portainer. portainer/portainer#11136
  • Corrected a minor UI issue introduced in 2.19.0, where, on create of Kubernetes application, if the user scrolled down and clicked 'Add persisted folder' without populating name and image fields, the focus would jump up to the first empty required field. portainer/portainer#11155
  • Fixed an issue introduced in 2.19 in the ConfigMaps and Secrets lists where a check was no longer made against them for deployments of type Pod and hence an 'Unused' badge in those instances was then not shown. portainer/portainer#11145
  • Fixed a 'this.formValues.Services is undefined' error that was shown when editing a pod created via manifest. portainer/portainer#11152
  • Resolved an issue where ConfigMaps and Secrets created via manifest were incorrectly shown with the 'External' badge. portainer/portainer#11169
  • Corrected showing of a blank screen when editing a Kubernetes application that had been deployed external to Portainer, so that the Edit application screen is now shown. portainer/portainer#11161
  • Introduced a per-user option to enable five-minute data caching for non-edge Kubernetes environments - to improve performance. portainer/portainer#11118
  • Fixed the Kubernetes Application details screen not showing referenced resources for an app that had used 'envFrom:' in its manifest to load an entire ConfigMap or Secret as environment variables instead of referencing individual values via 'valueFrom:'. portainer/portainer#11144
  • Introduced a setting to turn off the Stacks functionality within the Kubernetes side of Portainer. portainer/portainer#11119
  • Renamed the Kubernetes Advanced Deployment screen to be 'Create from Manifest'. portainer/portainer#11128
  • Corrected display of a very high 'CPU used' value in the Kubernetes Cluster details screen when micro-CPU units were being used. portainer/portainer#11154
  • DEPRECATED API endpoint GET+POST /endpoints/{id}/kubernetes/helm/repositories, MOVED Helm UI option to Advanced Deployment/Create from Manifest screen + now allow users to delete their Helm repos. New endpoint GET+POST /users/{id}/helm/repositories added. portainer/portainer#11127
  • Resolved issues that occurred around editing a Kubernetes application when a namespace had resource quotas set, where the application's (pre-edit) existing resource usage was not being taken into account. portainer/portainer#11143
  • Introduced a change so that, on deletion of an ECR or other registry, any related Kubernetes registry secret will now be removed. Note that this type of secret is auto created when assigning a registry to a namespace in a Kubernetes environment. portainer/portainer#11158
  • Migrated the Kubernetes Application Details screen's YAML, Events and Containers sections plus any of the screen's remaining code from Angular to React. portainer/portainer#11121
  • Fixed an issue around the display of incorrect search results for Kubernetes applications that are exposed via an ingress. portainer/portainer#11160
  • Corrected the Kubernetes Volume Details screen to show the Shared Access Policy of the Volume rather than (erroneously) of the StorageClass. portainer/portainer#11163
  • Corrected the deploying of a Kubernetes Daemonset with shared storage so that RWX access is granted to the Persistent Volume Claim, as relevant. portainer/portainer#11168
  • Migrated the Kubernetes Cluster Setup screen from Angular to React and improved loading of its elements. portainer/portainer#11122
  • Introduced a change so that, on assigning a user access to a Kubernetes environment that is down, the access is enabled when the environment next connects. portainer/portainer#11157
  • Corrected the display of the 'Allow resource over-commit' setting in Portainer CE, which was showing as off even though the functionality has always operated as though it is on. Note that no actual changes to functionality have been made. portainer/portainer#11142
  • Fixed a console error that could arise in the Kubernetes Add/Edit Application screen when updating resource sliders. portainer/portainer#11159
  • Corrected the labelling of the Stack field in the Kubernetes Advanced Deployment (now 'Create from Manifest') screen. Also clarified the labelling of Namespace and Name concepts. portainer/portainer#11120
  • Updated the Ingress list screen to indicate system resources correctly. portainer/portainer#11162
  • Migrated the CE Kubernetes Nodes list table (as seen in the Cluster Details screen) from Angular to React. portainer/portainer#11125
  • Fixed incorrect display of an error message when adding a Kubernetes secret under certain circumstances. portainer/portainer#11156
  • Made changes to allow stopping of a replicated Kubernetes application by scaling it to zero instances. portainer/portainer#11117
  • Migrated most of the components of the Kubernetes Create and Edit application screens from Angular to React. portainer/portainer#11123
  • Migrated the Kubernetes Add Namespace screen from Angular to React. portainer/portainer#11124
  • Ensured confirmed support of vanilla Kubernetes 1.29 clusters. portainer/portainer#11129

Portainer

  • Fixed an issue that caused local stacks to be overwritten by orphaned stacks with the same name on the regular stack listing page
  • Added version path to in-app documentation links to support long-term support (LTS) vs. short-term support (STS) releases. portainer/portainer#11375
  • Fixed issue where users could erroneously edit web editor content in Git-based custom templates.
  • Resolved an issue with restoring from backup where portainer_data was stored on a network volume. portainer/portainer#11150
  • Resolved 'Unable to download backup' error that sometimes occurred when initiating database backup if portainer_data was sited on a network volume. portainer/portainer#11153
  • Fixed an issue where the cursor would jump to the end of the field after entering a character while editing environment variables for a stack.
  • Fixed issue where sorting images by tags in the Images view of a Docker/Swarm environment had no effect, ensuring that images are now sorted in tag order when clicking on the Tags column header.
  • Fixed an issue where users were unable to edit the YAML provided by a selected Custom template when deploying a stack.
  • Improved GitOps auto updates to prevent piling up when the deployment time exceeds the polling interval.
  • Resolved an issue with the upgrade and rollback process where the database was being backed up to a name that the rollback was not expecting. portainer/portainer#10751
  • Fixed a minor typo in the 'Back up Portainer' settings section. portainer/portainer#11138
  • Fixed an invalid commit link in the Stack details screen that could occur if the original copy/pasted Git URL of the stack was a GitHub repo URL with an extension of .git. portainer/portainer#11140
  • Fixed inconsistency in container counting between the environment tile on the home page and the containers tile on the environment's Dashboard.
  • Introducing 'Auto-Complete' branch selection for Git repositories in stack creation
  • Introduced a UI fix to show a 'disabled input' cursor on hover of a toggle that's disabled for change (similar to existing disabled fill-ins, etc.). portainer/portainer#11165
  • Provided information text to notify users that the GPU feature supports only Nvidia graphics cards, addressing any potential confusion
  • Fixed an issue where the "Force HTTPS only" toggle in the SSL certificates section was not functioning as expected.
  • Resolved an issue in GitLab registry handling, ensuring that Portainer continues loading images seamlessly despite errors such as deleted repositories, preventing 401 errors from affecting the display.
  • Enhanced version details popup to display the current Git commit hash and specific server environment variables for improved transparency and troubleshooting.
  • Fixed a minor UI issue with the Environment -> Manage access screen enabling the 'Create access' button even though no changes had been made. portainer/portainer#11141
  • Enlarged a too-small font used in the Web editor's search/replace feature. portainer/portainer#11175
  • Improved security by storing sensitive JWT tokens in a more secure manner, enhancing protection for user authentication in the local browser storage
  • Implemented improvements to restrict access to specific environment group details
  • Enhanced measures to prevent global admins from accessing each other's tokens through direct HTTP requests. This ensures data privacy and aligns with intended access levels in the User Interface.
  • Fixed an issue where the "Save Settings" button remained disabled after changing Advanced Options for a Git stack
  • Fixed issue where sorting by the "Updated" column in the Stacks view of a Docker environment incorrectly sorted based on the "Created" column instead.
  • Resolved an issue where attempting to upgrade from CE to EE using a 3NF license key in versions prior to 2.18.4 resulted in a failed license validation.
  • Implemented displaying of the exit code for containers in the Portainer UI.
  • Improved Portainer navigation so all submenus now have their top-level option moved down to be the first option within their submenu and they always open to that. Implemented several other small menu improvements. portainer/portainer#11116
  • Fixed an issue where the client secret field appeared blank when editing an OAuth configuration under 'Settings - Authentication'.
  • Improved the functionality around changing a linked environment's IP address so Portainer Server no longer needs restarting for the update to apply. portainer/portainer#11151
  • Improved security by adding a dropdown to hide environment variables in the stack UI on the details page, preventing potential exposure of sensitive information in public or share environments.
  • Resolved an issue where hiding a container would incorrectly label the associated container image as Unused. We now ensure accurate representation and address potential user confusion and unintended image deletion.
  • Introduced 'noindex' meta-tag to the Portainer login page to denote to search engines that the page should not be indexed and served in search results. portainer/portainer#11164
  • Fixed a console error that occurred when resizing the browser window on the containers page, particularly during an active exec console session.
  • Improved styling and layout of headings and sub-headings throughout the user interface to improve legibility and hierarchy within pages. portainer/portainer#11166
  • Introduced success notification that was missing when adding a user to a team. portainer/portainer#11170
  • Improved styling of toggles throughout the user interface to make it clearer whether they are on or off, both when they are enabled for change or disabled for change. portainer/portainer#11167
  • Improved high contrast mode so that field borders, box selector text and expiry banners are easier to make out. portainer/portainer#11173
  • Improved high contrast mode to introduce a border around modals and tooltips so they are easier to distinguish from the rest of the screen. portainer/portainer#11174
  • Resolved an issue where adding an environment to a newly created group didn't move it from 'available environment' to 'associated environment'; this now functions correctly.
  • Introduced support for input, copy and paste of extended Unicode characters in Docker container and Kubernetes kubectl shell consoles. portainer/portainer#5780

Development

  • Updated Chisel to version 1.9 to facilitate the upgrade of Golang to version 1.20 for improved performance and compatibility
  • Updated the logging library to restore colored console logs from the Portainer binary, enhancing readability and improving visibility for users.

API Docs

  • Corrected Swagger API documentation for the GET+POST /users/{id}/tokens endpoint so the example response describes the digest format correctly as a string, rather than (erroneously) as a list of integers. portainer/portainer#11172
  • Resolved further Swagger API documentation problems including issues definition of GET /edge_stacks/{id}/logs/{endpoint_id}/file, GET /kubernetes/{id}/max_resource_limits and GET /kubernetes/{id}/namespaces/{namespace}/role_bindings. portainer/portainer#11171
  • Updated Swagger API documentation to ensure consistency in property naming conventions by using PascalCase instead of camelCase.
  • Corrected Swagger API documentation which listed creation of custom template POST endpoints as /custom_templates/file (or repository or string), but should have listed them as /custom_templates/create/file (or repository or string). portainer/portainer#11149
  • Corrected API endpoint GET /webhooks documentation to describe filters parameter as a JSON string. portainer/portainer#11148

API Changes

  • Introduced a requirement to specify the current user's password when adding an API token via the UI or the POST /users/{id}/tokens API endpoint. portainer/portainer#11126
  • Enhanced the system version API endpoint's response to now include the Portainer version type, distinguishing between Community Edition and Business Edition.

Deprecated Endpoints

  • POST /custom_templates/file Create a custom template
  • POST /custom_templates/repository Create a custom template
  • POST /custom_templates/string Create a custom template
  • POST /kubernetes/{id}/namespaces/{namespace} Create a kubernetes namespace

New Endpoints

  • POST /custom_templates/create/file Create a custom template
  • POST /custom_templates/create/repository Create a custom template
  • POST /custom_templates/create/string Create a custom template
  • GET /docker/{environmentId}/images Fetch images
  • PUT /endpoints/{id}/forceupdateservice force update a docker service
  • GET /kubernetes/{id}/namespaces/{namespace}/configuration Get ConfigMaps and Secrets
  • DELETE /stacks/name/{name} Remove Kubernetes stacks by name
  • POST /templates/{id}/file Get a template's file
  • GET /users/{id}/helm/repositories List a users helm repositories
  • POST /users/{id}/helm/repositories Create a user helm repository
  • DELETE /users/{id}/helm/repositories/{repositoryID} Delete a users helm repositoryies
  • GET /users/me Inspect the current user user
  • POST /kubernetes/{id}/namespaces Create a kubernetes namespace

Modified Endpoints

  • POST /auth Authenticate
  • POST /auth/oauth/validate Authenticate with OAuth
  • POST /custom_templates Create a custom template
  • GET /custom_templates List available custom templates
  • PUT /custom_templates/{id} Update a template
  • GET /custom_templates/{id} Inspect a custom template
  • GET /edge_groups list EdgeGroups
  • POST /edge_stacks/create/repository Create an EdgeStack from a git repository
  • GET /edge_templates Fetches the list of Edge Templates
  • POST /endpoints Create a new environment(endpoint)
  • GET /endpoints List environments(endpoints)
  • PUT /endpoints/{id} Update an environment(endpoint)
  • GET /endpoints/{id} Inspect an environment(endpoint)
  • GET /endpoints/{id}/edge/stacks/{stackId} Inspect an Edge Stack for an Environment(Endpoint)
  • PUT /endpoints/{id}/settings Update settings for an environment(endpoint)
  • PUT /kubernetes/{id}/namespaces/{namespace} Updates a kubernetes namespace
  • PUT /settings Update Portainer settings
  • GET /settings Retrieve Portainer settings
  • PUT /stacks/{id}/git/redeploy Redeploy a stack
  • GET /status/version Check for portainer updates
  • GET /system/info Retrieve system info
  • GET /system/version Check for portainer updates
  • GET /templates List available templates
  • POST /users Create a new user
  • GET /users List users
  • PUT /users/{id} Update a user
  • GET /users/{id} Inspect a user
  • POST /users/{id}/tokens Generate an API key for a user
  • GET /users/{id}/tokens Get all API keys for a user
  • POST /users/admin/init Initialize administrator account
  • GET /webhooks List webhooks

2.19.4

4 months ago

2.19.4

See Upgrading Portainer instructions.

Overview of changes

New Portainer CE 2.19.4 release

Swarm

2.19.3

5 months ago

2.19.3

See Upgrading Portainer instructions.

Overview of changes

New Portainer CE 2.19.3 release

Portainer

2.19.2

5 months ago

2.19.2

See Upgrading Portainer instructions.

Overview of changes

New Portainer CE 2.19.2 release

Swarm

Kubernetes

Portainer

Rest API Changes

Modified Endpoints: 1

POST /auth/logout

  • Description changed from 'Access policy: authenticated' to 'Access policy: public'

2.19.1

7 months ago

See Upgrading Portainer instructions.

Overview of changes

New Portainer CE 2.19.1 release

Breaking Changes

  • Changes to API format and checking of some requests - See rest API changes below for more details.

Portainer

Rest API Changes

2.19.0

7 months ago

2.19.0

See Upgrading Portainer instructions.

Overview of changes

New Portainer CE 2.19.0 release

Breaking Changes

  • A number of components/views have been migrated from Angular to React.
  • Internal versioning on stacks feature has introduced file structure changes in 2.19.
  • We have addressed an API issue in which an incorrect parameter was being used for API endpoint /edge_groups. Users relying on the HasEdgeGroup parameter should now use HasEdgeJob to achieve the intended functionality.
  • Four API endpoints are broken and will be restored in the next release POST /custom_templates, POST /edge_jobs, POST /edge_stacks, POST /stacks

Resolved CVE's

Edge

  • Fixed an issue where deploying a large volume edge stack triggered a 'URI too large' error. portainer/portainer#10128
  • Fixed an API issue where the incorrect parameter HasEdgeGroup was being used instead of HasEdgeJob for endpoint /edge_groups. Users relying on the HasEdgeGroup parameter should now use HasEdgeJob to achieve the intended functionality. portainer/portainer#10133
  • Improved logging for edge agent when polling fails. This enhancement provides more informative and detailed logs when polling encounters failures, aiding in quicker identification and resolution of issues. portainer/portainer#10143
  • Resolved an issue where users were able to create schedulers with an empty edge group, which is no longer allowed to ensure proper functionality and avoid potential errors portainer/portainer#10149
  • Resolved an issue where the edge agent default poll frequency selector was not lining up correctly portainer/portainer#10150
  • Resolved an issue where users were unable to create an edge group when there were no members present in that group. Edge groups can now be created without requiring initial members, offering greater flexibility in edge device and configuration management. portainer/portainer#10153
  • Introduce an enhancement to our snapshot creation process for edge devices which streamlines the snapshot creation experience, providing users with a more efficient and user-friendly way to capture snapshots on edge devices. portainer/portainer#10154
  • Fixed an issue where environment files were not functioning properly in Git deployments for edge stacks. portainer/portainer#10171
  • Introduced webhooks for edge stack, you can now set up webhooks for your edge stacks, enabling automated polling for GitOps updates. portainer/portainer#10178
  • Fixed an issue where the agent was unintentionally flushing edge job entries when collecting logs. portainer/portainer#10172

Docker

  • Addressed an issue where the Docker client was not utilising version negotiation. portainer/portainer#10125
  • Resolved an issue where the image name was displayed incorrectly when a user tried to duplicate or edit a container portainer/portainer#10126
  • Fixed an issue in the API where sending files to a Docker endpoint resulted in a panic. portainer/portainer#10129
  • Resolved an issue with Docker Proxy's performance, resulting in improved overall performance and responsiveness when using the Docker Proxy feature. portainer/portainer#10131
  • Resolved an issue in the Docker Container List where searching by published ports was no longer working. portainer/portainer#6656
  • Resolved an issue where '.' was not allowed in the image name (but should be) when building a Docker image via the UI. portainer/portainer#8047
  • Resolved some minor UI issues in Docker Services-related screens. portainer/portainer#10117

Swarm

  • Fixed an issue in Docker Swarm version 24.0.0 where image tags were not being displayed. portainer/portainer#10134
  • Resolved an issue where clicking into the details page of a Swarm stack would redirect users to the service section instead of the top of the page portainer/portainer#10151

Kubernetes

  • Adjusted Kubernetes Cluster setup screen's ingress settings to be clearer and to give info on ingress defaults. portainer/portainer#10101
  • Resolved an issue with Kubernetes ECR image pull where the secret token was not updating on manifest deployment. portainer/portainer#10119
  • Migrated the Kubernetes Add/Edit Application screen's Services section from Angular to React. portainer/portainer#9235
  • Reintroduced the ability to specify and use (via Add/Edit Application) ingress defaults (hostname and annotations). portainer/portainer#10030
  • Reintroduced the ability to publish via ingress from the Add/Edit Application screen. portainer/portainer#10103
  • Introduced correct redirecting of the user, following deployment of a Kubernetes manifest. Previously the user was always returned to the Applications List but will now arrive back at the screen from which they accessed the Advanced Deployment function. portainer/portainer#10115
  • Migrated the Kubernetes Application Details screen's Summary and Details sections from Angular to React. portainer/portainer#10102
  • Introduced a loading spinner to the Add/Edit ingress screen's ingress class dropdown, to indicate that available options are still being retrieved. portainer/portainer#10000
  • Resolved an issue that was occurring on the exposing of Portainer over a subpath, where Kubernetes Cluster Setup and other screens failed to load and reported an error. portainer/portainer#10112
  • Resolved a Node details issue where nodes showed incorrect role of 'Worker' due to deprecated 'node-role.kubernetes.io/master' K8s label (now 'control-plane'). Also where MicroK8s cluster nodes were incorrectly identified (though not due to labels). portainer/portainer#10104
  • Split the Kubernetes ConfigMaps & Secrets functionality in order to provide better performance and a clearer user experience. We now have separate tabs in the list screen and separate add/edit functions. portainer/portainer#9222
  • Resolved an issue with Kubernetes pages where a warning showed in the browser console ('findDOMNode is deprecated in StrictMode') when resource assignment was first toggled on for the namespace. portainer/portainer#10111
  • Updated Kubernetes ConfigMaps & Secrets terminology that was previously shown as Configurations, so as to align more clearly with Kubernetes. portainer/portainer#10025
  • In the Dashboard screen of Kubernetes environments, Ingresses and Services panels have now been introduced, providing a count of these resources and an easy means to click through and access their list screens. portainer/portainer#9223
  • Migrated Kubernetes Application console page from Angular to React. portainer/portainer#9177
  • Introduced a feature that lets you upgrade your Portainer Community Edition to the Business Edition right within Portainer on Kubernetes platform. portainer/portainer#10177
  • Resolved an issue where the Helm repository URL in (Kubernetes) Settings could not be updated.

Portainer

  • Fixed an issue where a bad gateway response occurred when updating an environment with an empty URL. portainer/portainer#10123
  • Resolved an issue where users were unable to deploy a stack when utilising an image from a private GitLab registry. portainer/portainer#10124
  • To identify Portainer submenus more clearly, their sub-options are now indented. portainer/portainer#9216
  • Renamed "Automatic updates" in Git deployment section to "GitOps Updates" to clarify the feature at first glance for users. Please note this is a name change only and no functionality has been altered. portainer/portainer#10175
  • Resolved an issue with the App Templates screen, where a Kubernetes icon was incorrectly showing for Docker Swarm stacks. Also updated the Swagger API documentation to detail the existence of a 'Compose edge stack' App Template (numbered 4) type. portainer/portainer#10028
  • Resolved a minor UI issue where warning icons were smaller in size in multi-line warning messages. portainer/portainer#10118
  • Fixed an issue where standard users were unable to create Azure Container Instances (ACI) resources. portainer/portainer#10152
  • Fixed an issue where line break HTML tags were showing in some pop-up dialogs instead of actual line breaks. portainer/portainer#9226
  • Improved App Templates page with enhanced cursor icon and tile highlighting portainer/portainer#10136
  • Improved rolling back to CE from a CE to BE migration, by providing better logging and performing a check that the db file exists. portainer/portainer#9225
  • Fixed an issue where the primary environment remained permanently down after restoring from backup. portainer/portainer#10137
  • Introduced validation to prevent the use of invalid names when creating or editing Kubernetes or Docker Custom Templates. portainer/portainer#10113
  • Fixed an issue where the 'Skip TLS Verification' option was not functioning properly for custom templates. portainer/portainer#10138
  • Resolved a minor UI issue where multi-line text-tip and form-error icons were incorrectly vertically center-aligned rather than top-aligned. portainer/portainer#10118
  • Fixed an issue where the hover interaction for the environment tile on the homepage was missing portainer/portainer#10136
  • Fixed a security issue where usernames and passwords were displayed in responses. portainer/portainer#10140
  • Improved error logging in libhttp to provide more useful context. portainer/portainer#10142
  • Addressed an issue where TLS handshake error messages were being logged, which should only occur when using the DEBUG log level. portainer/portainer#10144
  • Resolved an issue where unnecessary snapshots were being loaded on the home page, leading to improved loading times and a smoother user experience portainer/portainer#10147
  • Resolved an issue where users were not being notified about the proper referencing of their uploaded .env files, requiring them to now utilize "stack.env" for appropriate referencing portainer/portainer#10148
  • Introduced a 'copy to clipboard' button to web editors within the Portainer UI. portainer/portainer#10116
  • Introduced the ability to manage time in seconds or milliseconds for container logs, expanding your time management options beyond seconds for more insightful troubleshooting. portainer/portainer#10176
  • Resolved a logging issue with database migrations, where, if an error occurred causing a rollback to the pre-upgrade version of the database, that error was no longer output to the console. portainer/portainer#10110
  • Resolved an issue that prevented users from stopping stacks with invalid project names during their upgrade from versions 2.6 or 2.7 to 2.13, 2.14, 2.15, 2.16, and subsequent versions. portainer/portainer#10163
  • Resolved an issue that prevented users from deleting stacks with invalid project names during their upgrade from versions 2.6 or 2.7 to 2.13, 2.14, 2.15, 2.16, and subsequent versions. portainer/portainer#10164
  • Resolved an issue where users were encountering difficulties when attempting to push images using a service principal account on Azure Registry. portainer/portainer#10155
  • Fixed an issue where delete confirmation modals were absent for edge stacks, Docker images, environment groups, and tags. portainer/portainer#10156
  • Fixed an issue where the creation of manifest file paths slice was incorrect. portainer/portainer#10170
  • Community contribution - The enhancement ensures that the response rewrite operation is properly wrapped with a valid status check, contributing to a more robust and reliable system behavior. portainer/portainer#2705
  • Fixed an issue where enabling GPU support on existing containers resulted in errors. portainer/portainer#10174
  • Addressed an issue where users were unable to update the TLS certificate for the Docker API environment. portainer/portainer#10166
  • Resolved an issue where incorrect AWS ECR icon was used when creating registry portainer/portainer#10162
  • Fixed a user interface issue where only up to 100 groups were being displayed. portainer/portainer#10160
  • Addressed an issue where using incorrect Azure registry credentials resulted in errors, even after updating with correct credentials, the issue persisted. portainer/portainer#10159
  • Resolved an issue where custom templates created from Git were not being pulled again at deploy time. This improvement has also been extended to Kubernetes custom templates. portainer/portainer#10157
  • Improved dark mode teaser color enhanced for reduced visual strain portainer/portainer#10127
  • Fixed an issue where 'PublicAccess' middleware was missing from some API routes, ensuring consistent access control. portainer/portainer#10146

Development

  • Resolved an issue with new React version list screens where filter icons were not positioned next to the correct column heading but were abutting the next heading along. portainer/portainer#10098
  • Applied changes to the helper-reset-password utility to prevent it being accidentally used with the Docker Desktop Extension version of Portainer (where it could break access to the Portainer instance). portainer/portainer#10109
  • Replaced archived gorilla/securecookie library with just the function that we need extracted out. portainer/portainer#10008
  • Transitioned Edge stack environments table to React, delivering a more dynamic user experience with modernized interface, improved performance, and interactive management. portainer/portainer#10210

Rest API Changes

Broken Endpoints: 4

POST /custom_templates POST /edge_jobs POST /edge_stacks POST /stacks

New Endpoints: 44

POST /custom_templates/file POST /custom_templates/repository POST /custom_templates/string PUT /custom_templates/{id}/git_fetch POST /edge_jobs/create/file POST /edge_jobs/create/string POST /edge_stacks/create/file POST /edge_stacks/create/repository POST /edge_stacks/create/string PUT /endpoints/relations POST /gitops/repo/file/preview GET /kubernetes/{id}/ingresscontrollers PUT /kubernetes/{id}/ingresscontrollers POST /kubernetes/{id}/ingresses/delete GET /kubernetes/{id}/metrics/nodes GET /kubernetes/{id}/metrics/nodes/{name} GET /kubernetes/{id}/metrics/pods/{namespace} GET /kubernetes/{id}/metrics/pods/{namespace}/{name} GET /kubernetes/{id}/namespaces DELETE /kubernetes/{id}/namespaces/{namespace} GET /kubernetes/{id}/namespaces/{namespace} POST /kubernetes/{id}/namespaces/{namespace} PUT /kubernetes/{id}/namespaces/{namespace} GET /kubernetes/{id}/namespaces/{namespace}/ingresscontrollers PUT /kubernetes/{id}/namespaces/{namespace}/ingresscontrollers GET /kubernetes/{id}/namespaces/{namespace}/ingresses POST /kubernetes/{id}/namespaces/{namespace}/ingresses PUT /kubernetes/{id}/namespaces/{namespace}/ingresses GET /kubernetes/{id}/namespaces/{namespace}/services POST /kubernetes/{id}/namespaces/{namespace}/services PUT /kubernetes/{id}/namespaces/{namespace}/services POST /kubernetes/{id}/services/delete POST /stacks/create/kubernetes/repository POST /stacks/create/kubernetes/string POST /stacks/create/kubernetes/url POST /stacks/create/standalone/file POST /stacks/create/standalone/repository POST /stacks/create/standalone/string POST /stacks/create/swarm/file POST /stacks/create/swarm/repository POST /stacks/create/swarm/string POST /webhooks/{id} DELETE /webhooks/{token} PUT /webhooks/{token}

Modified Endpoints: 28

PUT /custom_templates/{id} PUT /edge_stacks/{id} PUT /edge_stacks/{id}/status DELETE /edge_stacks/{id}/status/{endpoint_id}

  • New path param: environmentId
  • Deprecated changed from false to true GET /endpoints
  • New query param: edgeCheckInPassedSeconds
  • New query param: edgeStackStatus
  • New query param: excludeSnapshots POST /endpoints DELETE /endpoints/{id}
  • Responses changed
    • New response: 403 POST /fdo/configure/{guid}
  • New path param: guid DELETE /fdo/profiles/{id}
  • New path param: id GET /fdo/profiles/{id}
  • New path param: id PUT /fdo/profiles/{id}
  • New path param: id POST /fdo/profiles/{id}/duplicate
  • New path param: id GET /kubernetes/config
  • Description changed from 'Generates kubeconfig file enabling client communication with k8s api server Access policy: authenticated' to 'Generate a kubeconfig file enabling client communication with k8s api server Access policy: authenticated' POST /open_amt/{id}/activate
  • Modified path param: id
    • Description changed from 'Environment(Endpoint) identifier' to 'Environment identifier' POST /open_amt/{id}/devices/{deviceId}/action
  • New path param: deviceId
  • New path param: id POST /open_amt/{id}/devices_features/{deviceId}
  • New path param: deviceId
  • New path param: id GET /open_amt/{id}/info
  • New path param: id PUT /ssl DELETE /stacks/{id}
  • Modified query param: endpointId
    • Description changed from 'Environment(Endpoint) identifier used to remove an external stack (required when external is set to true)' to 'Environment identifier'
    • Required changed from false to true PUT /stacks/{id}
  • Modified query param: endpointId
    • Description changed from 'Stacks created before version 1.18.0 might not have an associated environment(endpoint) identifier. Use this optional parameter to set the environment(endpoint) identifier used by the stack.' to 'Environment identifier'
    • Required changed from false to true PUT /stacks/{id}/associate
  • Modified query param: endpointId
    • Description changed from 'Stacks created before version 1.18.0 might not have an associated environment(endpoint) identifier. Use this optional parameter to set the environment(endpoint) identifier used by the stack.' to 'Environment identifier' POST /stacks/{id}/start
  • New query param: endpointId POST /stacks/{id}/stop
  • New query param: endpointId POST /system/upgrade
  • Responses changed
    • New response: 204
    • Deleted response: 200 POST /tags POST /webhooks PUT /webhooks/{id}
  • New path param: id POST /webhooks/{token}
  • Modified path param: token

2.18.4

9 months ago

2.18.4

See Upgrading Portainer instructions.

Overview of changes

New Portainer CE 2.18.4 release

Resolved CVEs

Docker

Swarm

Portainer

REST API Changes

2.18.3

11 months ago

2.18.3

See Upgrading Portainer instructions.

Overview of changes

New Portainer CE 2.18.3 release

Kubernetes

Docker

  • Fixed issue preventing configuration of Portainer authentication settings with an alternative mTLS certificate

Portainer

REST API Changes

2.18.2

11 months ago

2.18.2

See Upgrading Portainer instructions.

Upgrade notice:

  • Users upgrading from 2.16.x should note that a bug was introduced then which prevented enforcing of TLS verifications. This has now been fixed but, in circumstances where certificates were not set up correctly and appeared to work due to the bug, you may now need to resolve the certificate issue or deliberately set the new 'Skip verification' toggle.

Overview of changes

New Portainer CE 2.18.2 release

Kubernetes

  • Increased potential success rate of updating portainer with larger databases by changing Kubernetes manifest and Helmchart for Portainer, to have “initialDelaySeconds” of 45(sec) and “failureThreshold” 3. https://github.com/portainer/portainer/issues/8860

Docker

Portainer