[id="understanding-odo"] = Understanding OpenShift Do include::modules/openshift-developer-cli-attributes.adoc[] include::modules/common-attributes.adoc[] :context: understanding-odo toc::[] {odo-title-full} ({odo-title}) is a fast and easy-to-use CLI tool for creating applications on {product-title}. {odo-title} allows developers to concentrate on creating applications without the need to administrate an {product-title} cluster itself. Creating deployment configurations, build configurations, service routes and other {product-title} elements are all automated by {odo-title}. Existing tools such as `oc` are more 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 server is required within the {product-title} 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 {product-title} 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 building block of an application. Typically it is a software package, a web service, a web resource, or a module that encapsulates a set of related functions or data. Examples of components: Node.js, Pearl, 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 container images [options="header"] |==== |Node.js|Java |`centos/nodejs-8-centos7`|`redhat-openjdk-18/openjdk18-openshift` |`rhoar-nodejs/nodejs-8`|`openjdk/openjdk-11-rhel8` |`rhoar-nodejs/nodejs-10`|`openjdk/openjdk-11-rhel7` |`bucharestgold/centos7-s2i-nodejs`| |`rhscl/nodejs-8-rhel7`| |`rhscl/nodejs-10-rhel7`| |==== [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 {product-title} 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 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 the `rhoar-nodejs/nodejs-10` container image.