Skip to content

Release 2.19.0

Compare
Choose a tag to compare
@deviantony deviantony released this 04 Sep 03:49
· 2 commits to 04073f0d1fe30eb917e974e748c0b6bd1b2218d6 since this release
7abed62

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