Portainer - 2.17.0



See Upgrading Portainer instructions.

Breaking change

  • For breaking changes in the API, please see the REST API changes section
  • The Kompose functionality in Kubernetes has been removed. Compose yaml can no longer be deployed on Kubernetes.

Resolved CVEs

Portainer dependencies:

Agent dependencies:

Overview of changes

New Portainer CE 2.17.0 release


  • Introduced new homepage view with edge devices at same level as other supported environments: https://github.com/portainer/portainer/issues/8333
  • Introduced ability of browsing snapshot of async edge environment: https://github.com/portainer/portainer/issues/8336
  • Introduced ability of scaling edge devices to 5,000: https://github.com/portainer/portainer/issues/8349
  • Introduced improved environment tile layout to address consistency when edge devices moved to homepage: https://github.com/portainer/portainer/issues/8334
  • Fixed issue where edge stack incorrectly deployed to default namespace when there is specify namespace is defined in manifest: https://github.com/portainer/portainer/issues/8346
  • Fixed issue where select all checkbox is missing for edge stack and edge jobs table: https://github.com/portainer/portainer/issues/8029
  • Fixed issue with Edge device tags not showing on Create Edge Group screen: https://github.com/portainer/portainer/issues/7936
  • Fixed issue where delete edge device does not remove it from the edge groups mapping: https://github.com/portainer/portainer/issues/8348


  • The Kubernetes deployment option for docker-compose format manifests and the Kompose conversion tool that enabled this have now been removed due to long-standing Common Vulnerabilities and Exposures (CVEs) in Kompose: https://github.com/portainer/portainer/issues/8355
  • Improved the explanatory tooltips and info text for Kube application automatic updates functionality: https://github.com/portainer/portainer/issues/8223
  • Resolved an issue where Kubernetes secrets were no longer shown in an expand panel for each application listed in the Applications list screen: https://github.com/portainer/portainer/issues/8118
  • Improved config setting defaults when connecting clusters: ingress controllers (with a class) are auto detected/set as allowed, metrics API features setting is on (if metrics server is deployed), and storage classes with the 'default' annotation are on: https://github.com/portainer/portainer/issues/8240
  • Corrected the look of the fallback icon used for Helm charts that don't have their own icon: https://github.com/portainer/portainer/issues/8116
  • Made a change to default the resource quota's resource assignment setting to off for new Kubernetes namespaces but always show the toggle (although it can be disabled for change if the cluster's (BE only) allow over-commit setting is off): https://github.com/portainer/portainer/issues/8122
  • In the Kubernetes Add ingress screen, corrected the namespace selection dropdown to only show those that the user has access to: https://github.com/portainer/portainer/issues/8150
  • Added a check in Kube Cluster setup and Namespace -> Manage access to see if Kube RBAC addon is enabled in the cluster, and if not, show a warning that Portainer RBAC functionality will be limited. Warning also gives info on enabling RBAC in the cluster: https://github.com/portainer/portainer/issues/8171
  • Fixed an issue introduced in 2.16, where deploying of an ingress via the Portainer Add ingress form does not label the ingress object in the cluster with a Portainer 'internal' deployment label. Any deployment of ingress via Portainer should have this: https://github.com/portainer/portainer/issues/8337
  • Fixed an issue introduced in 2.16, where, when attaching a ConfigMap to an application being deployed via the Portainer Add application form, the ConfigMap is wrongly included as a Secret in the manifest and the deployment could therefore fail: https://github.com/portainer/portainer/issues/8323
  • Fixed an incorrect mention in the UI of a 'docker-compose file' which was showing when editing a Kube application deployed from git: https://github.com/portainer/portainer/issues/8228
  • Fixed an issue preventing adding of a Helm repo that has a redirect: https://github.com/portainer/portainer/issues/7892
  • Fixed an issue where the kubectl shell does not work when Istio Proxy is installed in the cluster: https://github.com/portainer/portainer/issues/8321


  • Upgraded docker compose to v2.13.0: https://github.com/portainer/portainer/issues/8289
  • Provided clarification and rewording in the UI around the 'Pull latest image' toggle in Stacks, Swarm Services and Service details update and Container recreate: https://github.com/portainer/portainer/issues/8226
  • Updated embedded docker binaries in portainer and agent from 20.10.13 to 20.10.18: https://github.com/portainer/portainer/issues/8290
  • Fixed issue of not been able to associate stack created from other docker environments: https://github.com/portainer/portainer/issues/8030
  • Fixed issue where content overlap edge of screen and left column becomes too narrow: https://github.com/portainer/portainer/issues/8161
  • Fixed issue where default option for access control is not selected when editing public resource: https://github.com/portainer/portainer/issues/8162
  • Fixed incorrect wording for private box selector under user access control: https://github.com/portainer/portainer/issues/7969
  • Fixed issue where text input jumps to the end of the input box in repository form: https://github.com/portainer/portainer/issues/8214
  • Fixed issue where scrollbar always visible in web editor form regardless contents of web editor: https://github.com/portainer/portainer/issues/7968
  • Fixed issue where number of stopped container does not display in dashboard correctly: https://github.com/portainer/portainer/issues/7925
  • Fixed an issue where deleting a network, config or secret did not show a confirmation warning modal: https://github.com/portainer/portainer/issues/7920
  • Fixed an issue where a user cannot upload a stack file as a custom template: https://github.com/portainer/portainer/issues/7921
  • Fixed an issue where the old-style UI was still being used in a Docker template-related page: https://github.com/portainer/portainer/issues/7950


  • Introduced the ability to upgrade Portainer CE to BE from within app for Docker Standalone: https://github.com/portainer/portainer/issues/8335
  • On the header context sensitive help icon, the red dot notification has been removed. This was put there to highlight the new feature in 2.16: https://github.com/portainer/portainer/issues/8167
  • Updated portainer dependencies of community edition: https://github.com/portainer/portainer/issues/8350
  • Upgraded version golang.org/x/net from v0.0.0 to v0.1.0 for agent: https://github.com/portainer/portainer/issues/8073
  • Upgraded jwt version to 4.4.2: https://github.com/portainer/portainer/issues/7970
  • Improved Portainer tooltips to allow them to stay open long enough for clicking of links and selecting of text in them. Also left-justified them for better readability: https://github.com/portainer/portainer/issues/8224
  • Resolved an issue related to revoking of user permissions: https://github.com/portainer/portainer/issues/8338
  • Fixed issue where password can be leaked to the logs files when error occur: https://github.com/portainer/portainer/issues/8343
  • Fixed issue where navigating to the login page log as a unique visitor in matomo: https://github.com/portainer/portainer/issues/8344
  • Fixed issue where Pro Feature wording misleading for pro edition which does not exist: https://github.com/portainer/portainer/issues/8217
  • Fixed an svg attribute height error in the page (visible via the browser console): https://github.com/portainer/portainer/issues/8105
  • Fixed typo where occurred is used in error message instead of occurred: https://github.com/portainer/portainer/issues/8027
  • Fixed issue where long notification is pushed out of table make it hard for reading: https://github.com/portainer/portainer/issues/8215
  • Fixed incorrect link for other settings and agent setup: https://github.com/portainer/portainer/issues/8347
  • Fixed issue where deleted environment does not clear in table and sidebar when deleting current selected environment: https://github.com/portainer/portainer/issues/8291
  • Fixed issue where standard users were not able to change ownership to their own team: https://github.com/portainer/portainer/issues/8216
  • Fixed issue where user encountered an error by deleting tags associated to deleted environments: https://github.com/portainer/portainer/issues/8089
  • Fixed an issue where the 'hide for all users' button styling behaves differently in dark mode: https://github.com/portainer/portainer/issues/7926
  • Fixed a minor issue where the pages and items per page elements in data table pagination controls did not quite vertically align with each other: https://github.com/portainer/portainer/issues/8227
  • Fixed issue where team lead feature is unexpectedly enabled when external authentication is enabled with team sync: https://github.com/portainer/portainer/issues/7972
  • Fixed issue where response from API when creating edge environments wasn't clearly specifying that URL is compulsory: https://github.com/portainer/portainer/issues/7997
  • Fixed issue where internal authentication setting is not saved when switch from other authentication method without refreshing browser manually: https://github.com/portainer/portainer/issues/8028


  • Replaced Feather svg icon set with Lucide, a Feather fork that is actively maintained and has a larger and improved range of icons: https://github.com/portainer/portainer/issues/8121
  • Removed Font Awesome and all remaining references to it. All icons are now svg-based: https://github.com/portainer/portainer/issues/8120
  • Redesigned Portainer database migration versioning to improve the robustness of the upgrade process: https://github.com/portainer/portainer/issues/8153
  • Fixed issue where random number generator is not seed cause predictable outputs: https://github.com/portainer/portainer/issues/8342
  • Resolved issues building Portainer (caused by third-party deletion of the github.com/rkl-/digest package) by replacing the package with imported code. This provides HTTP Digest Authentication for Portainer's FIDO Device Onboard (FDO) protocol support: https://github.com/portainer/portainer/issues/8177
  • Fixed swagger doc generation issues cause by empty examples in code: https://github.com/portainer/portainer/issues/8345
  • Corrected a minor UI issue around a corrupted file-code.svg icon: https://github.com/portainer/portainer/issues/8117
  • Removed the Go experimental module golang.org/x/exp, replacing the small amount of functionality that we use from it with direct code: https://github.com/portainer/portainer/issues/8176
  • Deprecated the github.com/portainer/libhelm Helm wrapper and moved the code into CE, since EE can now share from CE. This is used by Portainer's Helm functionality: https://github.com/portainer/portainer/issues/8178
  • Fixed issue where struct tag is malformed with incorrect blank space in template_file.go: https://github.com/portainer/portainer/issues/7923

REST API changes

New Endpoints

  • GET /kubernetes/{id}/rbac_enabled
  • GET /status/nodes
  • GET /system/info
  • GET /system/nodes
  • GET /system/status
  • POST /system/upgrade
  • GET /system/version

Deleted Endpoints

  • GET /edge_update_schedules
  • POST /edge_update_schedules
  • GET /edge_update_schedules/active
  • GET /edge_update_schedules/agent_versions
  • DELETE /edge_update_schedules/{id}
  • GET /edge_update_schedules/{id}

Deprecated Endpoints

  • GET /status - Deprecated: use the /system/status endpoint instead to retrieve the Portainer status.
  • GET /status/version - Deprecated: use the /system/version endpoint instead to check if portainer has an update available.

Modified Endpoints

  • POST /edge_jobs
  • POST /edge_jobs/{id}
  • POST /edge_stacks
  • PUT /edge_stacks/{id}
  • PUT /settings