odo
is a fast, iterative, and straightforward CLI tool for developers who write, build, and deploy applications on OpenShift and Kubernetes.
Existing tools such as oc
are more operations-focused and require a deep-understanding of Kubernetes and OpenShift concepts. odo
abstracts away complex Kubernetes and OpenShift concepts for the developer.
odo
is designed to be simple and concise with the following key features:
-
Simple syntax and design centered around concepts familiar to developers, such as projects, applications, and components.
-
Completely client based. No server is required within the cluster for deployment.
-
Official support for Node.js and Java components.
-
Partial compatibility with languages and frameworks such as Ruby, Perl, PHP, and Python.
-
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.
Language | Container Image | Supported Package Manager |
---|---|---|
Node.js |
NPM |
|
Java |
Maven, Gradle |
|
Maven, Gradle |
||
Maven, Gradle |
Note
|
The list of available container images is sourced from the cluster’s internal container registry and external registries associated with the cluster. |
To list the available components and associated container images for your cluster:
-
Access your cluster. Authentication with
odo login
for Kubernetes clusters is currently not supported. For OpenShift cluster, you can authenticate withodo login
:$ odo login -u developer -p developer
-
List the available
odo
supported and unsupported components and corresponding container images:$ odo catalog list components Odo Supported OpenShift Components: NAME PROJECT TAGS java openshift 8,latest nodejs openshift 10,8,8-RHOAR,latest Odo Unsupported OpenShift Components: NAME PROJECT TAGS dotnet openshift 1.0,1.1,2.1,2.2,latest fuse7-eap-openshift openshift 1.3
The
TAGS
column represents the available image versions, for example,10
represents therhoar-nodejs/nodejs-10
container image.
To install on Linux / Windows / macOS follow our guide located on docs.openshift.com. All binaries and tarballs are synced between our GitHub releases and OpenShift mirrors.
Click on the tutorial below to deploy your first odo
application:
The following demonstration provides an overview of odo
:
Discussions:
-
For general help and inquiries, join our odo-users Google group.
-
For any developmental discussion, use our odo-dev Google group.
Chat: Join us on Slack.
Issues: If you have an issue with odo
, please file it.
Documentation Issues: If you have any documentation issues related to the docs.openshift.com site, file an issue in Bugzilla. Choose the OpenShift Container Platform product type and the Documentation component type.
Want to become a contributor and submit your code? Please have a look at our Development Guide.
We work in 3-week sprint cycles. On a week when the sprint starts we have two planning calls:
-
"Sprint Planning Preparation and Issue Triage" - on Monday
-
"Sprint Planning" - on Wednesday
On top of our sprint planning calls, we have our regular "odo contributors call" (biweekly on Tuesdays). This is where we discuss technical challenges and anything related to odo development.
All our calls are open to public. You are welcome to join any of our calls.
You can find the exact dates of all scheduled odo calls together with sprint dates in the odo calendar (iCal format).
To participate in the calls, please join odo-dev Google group. When you join the group, you will automatically get invites to all odo related calls and get permissions to all necessary documents.
These are some of the IDE plugins which use odo:
Want to try out the odo experimental mode? Please read the document for more information.
Application: An application consists of multiple microservices or components that work individually to build the entire application.
Component: A component is similar to a microservice. Multiple components make up an application. A component has different attributes like storage. odo
supports multiple component types like nodejs, perl, php, python, and ruby.
Service: Typically a service is a database or a service that a component links to or depends on. For example: MariaDB, Jenkins, MySQL. This comes from the OpenShift Service Catalog and must be enabled within your cluster.