Skip to main content

odo 2.0.0 GA Release

2.0.0 of odo has been released!

What's new#

Changes to the default deployment method#

Devfile is a file format that is used as odo's new deployment engine. Starting from 2.0.0 onwards, Source-to-Image (S2I) is no longer the default deployment method. S2I is still supported and can now be accessed with the --s2i flag from the command-line.

Learn how to deploy your first devfile using devfiles from our Devfile tutorial.

Example on how to download a starter project and deploy a devfile:

$ odo create nodejs --starter
โœ“ Checking devfile existence [22411ns]
โœ“ Checking devfile compatibility [22492ns]
โœ“ Creating a devfile component from registry: DefaultDevfileRegistry [24341ns]
โœ“ Validating devfile component [74471ns]
Starter Project
โœ“ Downloading starter project nodejs-starter from [479ms]
Please use `odo push` command to create the component with source deployed
$ odo push
โœ“ Validating the devfile [132092ns]
Creating Kubernetes resources for component nodejs
โœ“ Waiting for component to start [5s]
Applying URL changes
โœ“ URL http-3000: created
Syncing to component nodejs
โœ“ Checking files for pushing [1ms]
โœ“ Syncing files to the component [868ms]
Executing devfile commands for component nodejs
โœ“ Executing install command "npm install" [4s]
โœ“ Executing run command "npm start" [2s]
Pushing devfile component nodejs
โœ“ Changes successfully pushed to component

Deploying a custom Kubernetes controller with odo#

With the release of 2.0.0 deploying operators is now out of experimental mode.

Learn how to deploy your first Kubernetes custom controller from our installation guide.

Example on how to deploy your first Operator:

$ odo catalog list services
Operators available in the cluster
etcdoperator.v0.9.4 EtcdCluster, EtcdBackup, EtcdRestore
$ odo service create etcdoperator.v0.9.4/EtcdCluster

odo debug is no longer in technical preview#

The odo debug command is no longer in technical preview.

Learn how to debug your component via the CLI or VSCode.

Full changelog#

New features:

Code Refactoring:

  • "odo link" help message should not check for ClusterServiceVersion support #4008
  • API version and schema version tests should be migrated to devfileV2 #3794
  • Do not check for CSV when initializing odo link command #4010 (dharmit)
  • Update odo debug --help screen #3963 (cdrage)
  • Clarify description of the force-build flag in help text for odo push #3958 (johnmcollier)
  • Switch to use project instead of namespace in env #3951 (GeekArthur)
  • Remove the namespace flag from odo #3949 (johnmcollier)
  • Migrate devfile cmd validation to validate pkg #3912 (maysunfaisal)
  • Remove command group type init #3898 (adisky)


  • "odo link -h" shows same message for 3.x & 4.x clusters #3992
  • make goget-tools fails due to go mod dependency #3983
  • Handle edge case when index file is commented in .gitignore #3961
  • Java component build execution requires pom.xml #3943
  • default registry not initialized when user already has a preference.yaml file #3940
  • odo url create shouldn't require a port if only one port exists in the devfile #3923
  • odo push with alternate --run-command should push complete file set upon new pod creation #3918
  • converting s2i items to devfile items does not set the Endpoint's name properly #3910
  • Unexpected EOF during watch stream event decoding, watch channel was closed. #3905
  • odo debug serial tests script panic out #3897
  • Default URL does not propagate to .odo/env/env.yaml and you cannot delete it. #3893
  • Breaking component create without exposing port #3882
  • odo registry list causes panic if preference has not been setup #3842
  • odo watch goes into infinite push loop if ignore flag is used #3819
  • 'odo create' should properly validate devfiles #3778
  • context flag does not work with devfile url create #3767
  • odo log is unusable for multi container components #3711
  • "odo registry add" adds registry for invalid url in devfileV2 #3451
  • Prints help message based on backend cluster #3993 (dharmit)
  • s2i component fix: use Config instead of ContainerConfig for port detection #3957 (kadel)
  • 3923- url creation with optional port flag #3950 (yangcao77)
  • Add mandatory file ignores when using --ignore flag #3942 (maysunfaisal)
  • Fix default registry support #3941 (GeekArthur)
  • Update s2i image from library for ppc64le #3939 (sarveshtamba)
  • update s2i to devfile conversion as per new url design #3930 (adisky)
  • Add test-case for validating devfiles on component create #3908 (johnmcollier)
  • Improve URL format validation #3900 (GeekArthur)
  • implement odo describe for devfile #3843 (metacosm)


  • Test failures while running test-cmd-push test suite on ppc64le #3539
  • Test failures while running test-cmd-storage test suite on ppc64le #3531

Documentation & Discussions:

  • Update installation page to include instructions for VSCode / IDE's #3970
  • Update docs according to schema changes in the command and component struct #3925
  • Help for odo push -f should explain that the full set of project source is pushed to the container #3919
  • Make the front page documentation simpler #3887
  • Add debug examples for "odo debug -h" #3871
  • Remove technology preview feature for debug command #3869
  • Update devfile "" doc #3868
  • Documentation for Operator Hub integration in v2 #3810
  • Document on converting s2i to devfile #3749
  • Adds a blog folder #4003 (cdrage)
  • Document odo and Operator Hub integration #3982 (dharmit)
  • Add instructions on how to install VSCode plugin #3977 (cdrage)
  • Update installation page to indicate beta-1 #3960 (cdrage)
  • Remove references to Docker support #3954 (cdrage)
  • Updates docs to use the new schema changes for commands and components #3928 (mik-dass)
  • Update commands ouputs in docs. #3927 (boczkowska)

Closed issues:

  • Determine if we want to keep Docker support in experimental mode, or disable it #3955
  • rename --namespace flag in odo push to --project #3948
  • rename odo env variable namespace to project #3947
  • Test failures while running test-integration and test-e2e-all test suite on ppc64le #3945
  • "unknown flag: --s2i" while running odo test suite 'test-generic' on ppc64le #3934
  • odo make commands fail on ppc64le after latest changes. #3891
  • Downstream release of the odo cli #3852
  • clonePath should be supported in odo #3729
  • Move devfile command validation to validate pkg #3703
  • make test throws "Errorf format %w has unknown verb w" error on ppc64le with latest master #3607
  • Move Operator Hub integration out of Experimental mode #3595
  • Move container image used in springboot devfile to some odo owned image repository #3578
  • Move the devfile feature set out of the experimental mode #3550
  • JSON / machine output support for Devfile Components #3521
  • Component push throws error of "Waiting for component to start" on ppc64le #3497
  • odo project create throws error of connection refused on ppc64le #3491
  • Tests for devfiles in odo devfile registry #3378

Merged pull requests: