# What's new in version 2.40

Portainer version 2.40 includes a number of new fixes and updates. For a full list of changes, please refer to our [release notes](https://docs.portainer.io/sts/release-notes).

## Short Term Support (STS) <a href="#short-term-support-sts" id="short-term-support-sts"></a>

2.40 is a Short Term Support, or "STS", release of Portainer. STS releases intended to be an introduction of new features and functionality in Portainer, and while we do perform significant testing prior to release are not recommended for production use. For production, we recommend staying with the Long Term Support (LTS) releases. The features that appear in STS releases will, once refined and stable, be implemented in the next LTS release.

You can read more about our release principles in our [lifecycle policy](https://docs.portainer.io/sts/start/lifecycle).

## New in this release

### Docker Compose to Kubernetes migration ![](https://content.gitbook.com/content/MdgxA76kWxcRmwybM8Ft/blobs/fp8yp7OGbKVvkUQk2aaP/button_be.png) ![](https://content.gitbook.com/content/MdgxA76kWxcRmwybM8Ft/blobs/o71I4fUnaR1vXoaW2Q24/button_ce.png)

We've added an experimental feature that allows you to [migrate Docker Compose workloads to Kubernetes](https://docs.portainer.io/sts/user/docker/stacks/migrate#docker-compose-to-kubernetes-migration). Using the [Kompose conversion tool](https://kompose.io/), Portainer can translate your existing Docker Compose definitions into Kubernetes resources, helping streamline the transition between platforms. As this feature is experimental, it is not recommended for production use, and we strongly advise taking a backup before starting any migration.

<figure><img src="https://679325054-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMdgxA76kWxcRmwybM8Ft%2Fuploads%2FvVLtLyvXsZ4n1pLggrTp%2F2.40.0-Migrate-to-K8s.png?alt=media&#x26;token=4992281d-f96d-4f60-a50d-d17149bf1f64" alt="" width="375"><figcaption></figcaption></figure>

### Banner and Custom Change Confirmation policy  ![](https://content.gitbook.com/content/MdgxA76kWxcRmwybM8Ft/blobs/fp8yp7OGbKVvkUQk2aaP/button_be.png)

Portainer 2.40.0 introduces a new [Banner and Custom Change Confirmation policy](https://docs.portainer.io/sts/admin/environments/policies/any-environment-type-policies/create-a-banner-and-change-confirmation-policy).

This policy allows you to display a custom banner with your chosen text and color across a specified group of environments, helping users clearly distinguish between them. It also lets you configure a confirmation prompt that appears whenever a user applies a change to those environments, adding an extra layer of protection for sensitive workloads.

By combining visual identification with enforced confirmation, this policy helps reduce the risk of unintended changes while improving environment awareness.

<figure><img src="https://679325054-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMdgxA76kWxcRmwybM8Ft%2Fuploads%2FPUYCIPNMKvKT7dHwkC4I%2F2.40.0-banner-and-change-policy.png?alt=media&#x26;token=2b7c12a4-ec4f-4852-8aa9-88ae250f1d9a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://679325054-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMdgxA76kWxcRmwybM8Ft%2Fuploads%2FrzGgpeh5ZrYJA4JtQHn7%2F2.40.0-banner-example.png?alt=media&#x26;token=cfb619c3-e049-400f-8bdc-1e9ec890db90" alt=""><figcaption></figcaption></figure>

<figure><img src="https://679325054-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMdgxA76kWxcRmwybM8Ft%2Fuploads%2FdIRf5gCbZXHyfQLGmiDh%2F2.40-warning-confirmation-box.png?alt=media&#x26;token=98a40a18-79f1-4772-b72c-cfc21bd28bc4" alt="" width="364"><figcaption></figcaption></figure>

### Default Service Account imagePullSecret management  ![](https://content.gitbook.com/content/MdgxA76kWxcRmwybM8Ft/blobs/fp8yp7OGbKVvkUQk2aaP/button_be.png) ![](https://content.gitbook.com/content/MdgxA76kWxcRmwybM8Ft/blobs/o71I4fUnaR1vXoaW2Q24/button_ce.png)

Portainer now automatically updates the default [Service Account](https://docs.portainer.io/sts/user/kubernetes/more-resources/service-accounts) in a namespace when registry access is added or removed as part of a [registry policy](https://docs.portainer.io/sts/admin/environments/policies/kubernetes-policies/kubernetes-registry-policy) (BE only) or from the [Registries view](https://docs.portainer.io/sts/user/kubernetes/cluster/registries#managing-access). When access is granted, the registry secret is added as an imagePullSecret to the default Service Account, allowing Pods in the namespace to pull images from the private registry automatically. When access is removed, the secret is removed from the default Service Account while any other existing imagePullSecrets are retained. This change is accompanied by an improved Service account details view, which allows you to view Service Account details and edit the YAML.

<figure><img src="https://679325054-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMdgxA76kWxcRmwybM8Ft%2Fuploads%2FR8MIJyb4E5IicegE0gcy%2F2.40-service-account-details.png?alt=media&#x26;token=3b3ce1a0-da96-4832-a574-a981ff3e9072" alt=""><figcaption></figcaption></figure>
