mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 12:46:18 +01:00
137 lines
6.7 KiB
Plaintext
137 lines
6.7 KiB
Plaintext
[id="understanding-odo"]
|
|
= Understanding odo
|
|
include::modules/developer-cli-odo-attributes.adoc[]
|
|
include::modules/common-attributes.adoc[]
|
|
:context: understanding-odo
|
|
|
|
toc::[]
|
|
|
|
`{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 xref:../../cli_reference/openshift_cli/getting-started-cli.adoc#cli-about-cli_cli-developer-commands[`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.
|
|
|
|
[id="odo-key-features"]
|
|
== Key features
|
|
|
|
`{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.
|
|
|
|
== Core concepts
|
|
|
|
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.
|
|
|
|
[id="odo-supported-languages-and-images"]
|
|
=== Officially supported languages and corresponding container images
|
|
|
|
.Supported languages, container images, package managers, and platforms
|
|
[options="header"]
|
|
|===
|
|
|Language |Container image |Package manager |Platform
|
|
|*Node.js*
|
|
|https://access.redhat.com/containers/#/registry.access.redhat.com/rhscl/nodejs-10-rhel7[rhscl/nodejs-10-rhel7]
|
|
|NPM
|
|
|amd64, s390x, ppc64le
|
|
|
|
|
|
|
|https://access.redhat.com/containers/#/registry.access.redhat.com/rhscl/nodejs-12-rhel7[rhscl/nodejs-12-rhel7]
|
|
|NPM
|
|
|amd64, s390x, ppc64le
|
|
|
|
|*Java*
|
|
|https://access.redhat.com/containers/#/registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift[redhat-openjdk-18/openjdk18-openshift]
|
|
|Maven, Gradle
|
|
|amd64, s390x, ppc64le
|
|
|
|
|
|
|
|https://access.redhat.com/containers/#/registry.access.redhat.com/openjdk/openjdk-11-rhel8[openjdk/openjdk-11-rhel8]
|
|
|Maven, Gradle
|
|
|amd64, s390x, ppc64le
|
|
|
|
|
|
|
|https://access.redhat.com/containers/#/registry.access.redhat.com/openjdk/openjdk-11-rhel7[openjdk/openjdk-11-rhel7]
|
|
|Maven, Gradle
|
|
|amd64, s390x, ppc64le
|
|
|===
|
|
|
|
[id="odo-listing-available-images"]
|
|
==== Listing available container images
|
|
|
|
[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}`:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ odo login -u developer -p developer
|
|
----
|
|
|
|
. List the available `{odo-title}` supported and unsupported components and corresponding container images:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ odo catalog list components
|
|
----
|
|
+
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
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
|
|
|
|
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 the `rhoar-nodejs/nodejs-10` container image.
|
|
To learn more about CLI commands, go to xref:../../cli_reference/developer_cli_odo/odo-cli-reference.adoc#basic-odo-cli-commands_odo-cli-reference[odo CLI reference].
|
|
|
|
[id="telemetry-in-odo"]
|
|
=== Telemetry in odo
|
|
|
|
`{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.
|