Skip to main content

odo v3.9.0 Released

· 5 min read

odo v3.9.0 is now out!

To install odo, follow the installation guide.

Notable Changes

Check the following Playlists for an overview of the most notable changes in this release:

Deprecation notice

odo registry --details without --devfile

We are deprecating the usage of odo registry --details without --devfile. Using odo registry --details without --devfile still works, but might take very long to return information.

--details allows to get more details about a specific Devfile stack, and was not intended to be used without specifying --devfile.

The correct usage of odo registry --details is by specifying the additional --devfile flag.

See the command reference page for more details and examples.


Pod Security Admission support

Kubernetes v1.25 introduced Pod Security Standards defining different isolation levels for Pods, along with a Pod Security admission controller to enforce those standards. Namespaces can be labeled to enforce the Pod Security Standards, meaning that a Pod can be rejected if it is not compliant with the security restrictions defined.

See Pod Security Admission for more details.

When used against a Kubernetes or OpenShift cluster, odo is now able to automatically detect if the current namespace has such restrictions enforced; and if so, it can dynamically adjust the specifications of the Pods it creates such that they are approved by the Pod Security admission controller. This applies to resources created automatically by the following odo commands:


Bear in mind that you can always customize those resources through pod-overrides and container-overrides attributes in the Devfile. See Extending Kubernetes resources.

Support for autoBuild and deployByDefault Devfile fields

To clarify which Devfile components should get created/applied automatically, the Devfile specification introduced two new fields:

odo now supports those fields, following the rules depicted in our Devfile reference page.

Component name added to odo analyze

odo analyze now includes a new name field in its output, representing the name of the application if was detected automatically or the current directory name.

See the command reference page for more details.


"devfile": "dotnet50",
"ports": [
"devfileRegistry": "DefaultDevfileRegistry",
- "devfileVersion": "1.0.3"
+ "devfileVersion": "1.0.3",
+ "name": "my-dotnet-backend"

Detailed Changelog

As with every release, you can find the full list of changes and bug fixes on the GitHub release page.

Full Changelog


  • Patch Pods to pass pod security admission #6602 (feloy)
  • Pod Security Admission support for odo deploy #6679 (feloy)
  • Speedup odo registry --details #6678 (feloy)
  • Support autoBuild and deployByDefault on Image and Kubernetes/OpenShift components #6654 (rm3l)
  • Add name detection to odo analyze #6682 (valaparthvi)
  • odo dev/odo deploy should display a warning about default namespace on cluster #6688 (valaparthvi)


  • odo analyze reporting wrong Devfile (nodejs instead of python) #6707 (kadel)
  • Fix problem when odo deploy processes do not terminate #6716 (feloy)
  • Fix issue preventing app from being restarted if /proc/[pid]/task/[tid]/children is missing in container (case of Minikube with VirtualBox or KVM drivers) #6690 (rm3l)
  • Fix: odo init does not ask for starter project if the Devfile stack contains extra files #6684 (valaparthvi)
  • Fix UX issue when exec command fails to run as part of a deploy command #6673 (rm3l)
  • Fix issue with conflicting ports when starting multiple Dev sessions on Podman #6660 (rm3l)
  • Fix error handling when trying to delete remote resources not present in Devfile #6659 (rm3l)
  • Downloading a starter project with odo init should no longer replace the contents of the current directory #6633 (valaparthvi)


Merged pull requests

  • Bump version to 3.9.0 #6717 (rm3l)
  • Update the PR template #6712 (valaparthvi)
  • Exit a test early if a session has exited while waiting for an output to contain a substring #6711 (valaparthvi)
  • Fix nodejs-react versions on generated doc #6710 (feloy)
  • Add DEVFILE_REGISTRY env var for periodic tests #6709 (feloy)
  • Website: Bump @svgr/webpack from 6.5.1 to 7.0.0 in /docs/website #6708 (dependabot[bot])
  • Update alizer #6707 (kadel)
  • Get DEVFILE_REGISTRY value for tests, to use local Registry #6705 (feloy)
  • Website: Bump @docusaurus/* from 2.3.1 to 2.4.0 in /docs/website #6685 (dependabot[bot])
  • Go: Bump from 0.0.0-20220722155255-886fb9371eb4 to 0.1.0 #6665 (dependabot[bot])
  • Website: Bump @tsconfig/docusaurus from 1.0.6 to 1.0.7 in /docs/website #6664 (dependabot[bot])
  • Go: Bump from 0.14.1-0.20220413143725-33310d6154f3 to 0.17.3 #6656 (dependabot[bot])
  • Website: Bump webpack from 5.75.0 to 5.76.1 in /docs/website #6655 (dependabot[bot])
  • Update alizer dependency #6650 (kadel)
  • Fix potential issue with odo describe component integration tests when Podman is installed #6642 (rm3l)

Contributing to odo

If odo interests you, and you would like to contribute to it, we welcome you!

You can contribute to odo in a lot of different ways!

Take it for a spin 🚘 and report back bugs🐞 that you encountered, or features🌟 that you would like to see.

Help us with the documentation📜, or tell us how you used odo 🖍.

Review the PRs👀, or help us fix a failing test 🚩.

Work on the TODOs📝, or help us cleanup the code🚮.

Or, simply tune in📻 to our contributor calls and learn more about odo.

odo is your playground!

Read the developer reference guide on contributing to odo to know more.