OpenShift Do (odo
) is a fast, iterative, and straightforward CLI tool for developers who write, build, and deploy applications on OpenShift.
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, thus allowing developers to focus on what is most important to them: code.
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 project, application, and component.
-
Completely client based. No server is required within the OpenShift cluster for deployment.
-
Supports multiple languages and frameworks such as Node.js, Java, 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 available components and services from the OpenShift cluster.
Use this bash script to quickly install odo
. It will automatically detect your operating system and install odo
accordingly.
$ curl -L https://github.com/openshift/odo/raw/master/scripts/installer.sh | bash
# curl -L https://github.com/openshift/odo/releases/latest/download/odo-darwin-amd64 -o /usr/local/bin/odo && chmod +x /usr/local/bin/odo
# curl -L https://github.com/openshift/odo/releases/latest/download/odo-linux-amd64 -o /usr/local/bin/odo && chmod +x /usr/local/bin/odo
For more installation options please refer the installation page.
In order to correctly use odo
you must download it and add it
to your PATH
environment variable:
-
Download the
odo-windows-amd64.exe.tar.gz
file from the GitHub releases page. -
Extract the file.
-
Add the location of extracted binary to your
PATH
environment variable by following the steps listed in this Wiki page.
Visit the installation page for instructions to set the PATH
environment variable on Windows 7, 8 or 10.
After installing odo
, follow these steps to build, push, and
deploy a Node.js application. Examples for other supported languages and runtimes can be found here.
These steps recommend using Minishift for running an OpenShift 3.x cluster or CodeReady Containers for an OpenShift 4.x cluster.
More information on how to install and use Minishift
can be found here. For CodeReady Containers
, information can be found here.
-
Start a local OpenShift development cluster by using
minishift
orcrc
.$ minishift start # or $ crc start
-
Log into the OpenShift cluster.
$ odo login -u developer -p developer
-
Download the Node.js sample code and change directory to the location of the sample code.
$ git clone https://github.com/openshift/nodejs-ex $ cd nodejs-ex
-
Add a component of type
nodejs
to your application.$ odo create nodejs
-
Deploy your application.
$ odo push
-
Create a URL to access the application and visit it to test it.
$ odo url create $ curl <generated URL>
-
When finished, remove your component from
Minishift
orCodeReady Containers
, and stop your cluster if you are finished with it.$ odo delete <component> $ minishift stop # or $ crc stop
For more in-depth information and advanced use-cases such as adding storage to a component or linking components, see the interactive tutorial or the Getting Started Guide.
Additional documentation can be found below:
Discussions: For any discussions or help with odo
, you can use our Google group or open a GitHub issue.
Issues: If you have an issue with odo
, please file it.
Contributing: Want to become a contributor and submit your own code? Have a look at our Development Guide.
These are some of the IDE plugins which use odo:
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.