{odo-title}
is a CLI tool for creating applications on {product-title} and Kubernetes. With {odo-title}
, you can write, build, and debug applications on a cluster without the need to administer the cluster itself.
Creating deployment configurations, build configurations, service routes and other {product-title} or Kubernetes elements are all automated by {odo-title}
.
Existing tools such as oc
are operations-focused and require a deep understanding of Kubernetes and {product-title} concepts. {odo-title}
abstracts away complex Kubernetes and {product-title} concepts allowing developers to focus on what is most important to them: code.
{odo-title}
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 additional server other than {product-title} is required 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.
- Project
-
A project is your source code, tests, and libraries organized in a separate single unit.
- Application
-
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.
- Component
-
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.
- Service
-
A service is software that your component links to or depends on. Examples of services: MariaDB, Jenkins, MySQL. In
{odo-title}
, services are provisioned from the OpenShift Service Catalog and must be enabled within your cluster.
Language | Container image | Package manager | Platform |
---|---|---|---|
Node.js |
NPM |
amd64, s390x, ppc64le |
|
NPM |
amd64, s390x, ppc64le |
||
Java |
Maven, Gradle |
amd64, s390x, ppc64le |
|
Maven, Gradle |
amd64, s390x, ppc64le |
||
Maven, Gradle |
amd64, s390x, ppc64le |
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:
-
Log in to the cluster with
{odo-title}
:$ odo login -u developer -p developer
-
List the available
{odo-title}
supported and unsupported components and corresponding container images:$ odo catalog list components
Example outputOdo 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 Odo OpenShift Components: NAME PROJECT TAGS SUPPORTED java openshift 11,8,latest YES dotnet openshift 2.1,3.1,latest NO golang openshift 1.13.4-ubi7,1.13.4-ubi8,latest NO httpd openshift 2.4-el7,2.4-el8,latest NO nginx openshift 1.14-el7,1.14-el8,1.16-el7,1.16-el8,latest NO nodejs openshift 10-ubi7,10-ubi8,12-ubi7,12-ubi8,latest NO perl openshift 5.26-el7,5.26-ubi8,5.30-el7,latest NO php openshift 7.2-ubi7,7.2-ubi8,7.3-ubi7,7.3-ubi8,latest NO python openshift 2.7-ubi7,2.7-ubi8,3.6-ubi7,3.6-ubi8,3.8-ubi7,3.8-ubi8,latest NO ruby openshift 2.5-ubi7,2.5-ubi8,2.6-ubi7,2.6-ubi8,2.7-ubi7,latest NO wildfly openshift 10.0,10.1,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,8.1,9.0,latest NO
The
TAGS
column represents the available image versions, for example,10
represents therhoar-nodejs/nodejs-10
container image. To learn more about CLI commands, go to odo CLI reference.
{odo-title}
collects information about how {odo-title}
is used: operating system, RAM, CPU size, number of cores, version of {odo-title}
, errors, success/failure, and time it took for a command to complete.
You can modify your Telemetry consent by using odo preference
:
-
odo preference set ConsentTelemetry true
to consent to Telemetry. -
odo preference unset ConsentTelemetry
to disable Telemetry. -
odo preference view
to verify the current preferences.