odo is a CLI tool for creating applications on OpenShift and
odo allows developers to concentrate on creating
applications without the need to administer a cluster itself. Creating
deployment configurations, build configurations, service routes and
other OpenShift or Kubernetes elements are all automated by
Existing tools such as
oc are more operations-focused and require a
deep understanding of Kubernetes and OpenShift concepts.
away complex Kubernetes and OpenShift concepts allowing developers to
focus on what is most important to them: code.
odo is designed to be simple and concise with the following key
Simple syntax and design centered around concepts familiar to developers, such as projects, applications, and components.
Completely client based. No additional server other than OpenShift is required for deployment.
Official support for Node.js and Java components.
Detects changes to local code and deploys it to the cluster automatically, giving instant feedback to validate changes in real time.
Lists all the available components and services from the cluster.
A project is your source code, tests, and libraries organized in a separate single unit.
An application is a program designed for end users. An application consists of multiple microservices or components that work individually to build the entire application. Examples of applications: a video game, a media player, a web browser.
A component is a set of Kubernetes resources which host code or data. Each component can be run and deployed separately. Examples of components: Node.js, Perl, PHP, Python, Ruby.
A service is software that your component links to or depends on. Examples of services: MariaDB, Jenkins, MySQL.
A portable file responsible for your entire reproducable development environment.
Devfiles describe your development environment link. Click here for more information on Devfile.
All official example Devfiles are hosted on the registry.
|Language||Devfile Name||Description||Devfile Source|
|Java||java-maven||Upstream Maven and OpenJDK 11||java-maven/devfile.yaml|
|Java||java-openliberty||Open Liberty microservice in Java||java-openliberty/devfile.yaml|
|Java||java-quarkus||Upstream Quarkus with Java+GraalVM||java-quarkus/devfile.yaml|
|Java||java-springboot||Spring Boot® using Java||java-springboot/devfile.yaml|
|Node.JS||nodejs||Stack with NodeJS 12||nodejs/devfile.yaml|
List of Devfiles which are officially supported by odo
Listing available Devfiles
The list of available Devfiles is sourced from the official odo registry as well as any other registies added via
odo registry add.
To list the available Devfiles:
$ odo catalog list components Odo Devfile Components: NAME DESCRIPTION REGISTRY java-maven Upstream Maven and OpenJDK 11 DefaultDevfileRegistry java-openliberty Open Liberty microservice in Java DefaultDevfileRegistry java-quarkus Upstream Quarkus with Java+GraalVM DefaultDevfileRegistry java-springboot Spring Boot® using Java DefaultDevfileRegistry nodejs Stack with NodeJS 12 DefaultDevfileRegistry