$ odo login -u developer -p developer
Red Hat OpenShift Developer CLI (
odo) is a tool for creating applications on OKD and Kubernetes. With
odo, you can develop, test, debug, and deploy microservices-based applications on a Kubernetes cluster without having a deep understanding of the platform.
odo follows a create and push workflow. As a user, when you create, the information (or manifest) is stored in a configuration file. When you push, the corresponding resources are created on the Kubernetes cluster. All of this configuration is stored in the Kubernetes API for seamless accessibility and functionality.
odo uses service and link commands to link components and services together.
odo achieves this by creating and deploying services based on Kubernetes Operators in the cluster. Services can be created using any of the Operators available on the Operator Hub. After linking a service,
odo injects the service configuration into the component. Your application can then use this configuration to communicate with the Operator-backed service.
odo is designed to be a developer-friendly interface to Kubernetes, with the ability to:
Quickly deploy applications on a Kubernetes cluster by creating a new manifest or using an existing one
Use commands to easily create and update the manifest, without the need to understand and maintain Kubernetes configuration files
Provide secure access to applications running on a Kubernetes cluster
Add and remove additional storage for applications on a Kubernetes cluster
Create Operator-backed services and link your application to them
Create a link between multiple microservices that are deployed as
Remotely debug applications you deployed using
odo in your IDE
Easily test applications deployed on Kubernetes using
odo abstracts Kubernetes concepts into terminology that is familiar to developers:
A typical application, developed with a cloud-native approach, that is used to perform a particular task.
Examples of applications include online video streaming, online shopping, and hotel reservation systems.
A set of Kubernetes resources that can run and be deployed separately. A cloud-native application is a collection of small, independent, loosely coupled components.
Examples of components include an API back-end, a web interface, and a payment back-end.
A single unit containing your source code, tests, and libraries.
A directory that contains the source code, tests, libraries, and
odo config files for a single component.
A mechanism to expose a component for access from outside the cluster.
Persistent storage in the cluster. It persists the data across restarts and component rebuilds.
An external application that provides additional functionality to a component.
Examples of services include PostgreSQL, MySQL, Redis, and RabbitMQ.
odo, services are provisioned from the OpenShift Service Catalog and must be enabled within your cluster.
An open standard for defining containerized development environments that enables developer tools to simplify and accelerate workflows. For more information, see the documentation at https://devfile.io.
You can connect to publicly available devfile registries, or you can install a Secure Registry.
odo uses the portable devfile format to describe components and their related URLs, storage, and services.
odo can connect to various devfile registries to download devfiles for different languages and frameworks. See the documentation for the
odo registry command for more information on how to manage the registries used by
odo to retrieve devfile information.
You can list all the devfiles available of the different registries with the
odo catalog list components command.
Log in to the cluster with
$ odo login -u developer -p developer
List the available
$ odo catalog list components
Odo Devfile Components: NAME DESCRIPTION REGISTRY dotnet50 Stack with .NET 5.0 DefaultDevfileRegistry dotnet60 Stack with .NET 6.0 DefaultDevfileRegistry dotnetcore31 Stack with .NET Core 3.1 DefaultDevfileRegistry go Stack with the latest Go version DefaultDevfileRegistry java-maven Upstream Maven and OpenJDK 11 DefaultDevfileRegistry java-openliberty Java application Maven-built stack using the Open Liberty ru... DefaultDevfileRegistry java-openliberty-gradle Java application Gradle-built stack using the Open Liberty r... DefaultDevfileRegistry java-quarkus Quarkus with Java DefaultDevfileRegistry java-springboot Spring Boot® using Java DefaultDevfileRegistry java-vertx Upstream Vert.x using Java DefaultDevfileRegistry java-websphereliberty Java application Maven-built stack using the WebSphere Liber... DefaultDevfileRegistry java-websphereliberty-gradle Java application Gradle-built stack using the WebSphere Libe... DefaultDevfileRegistry java-wildfly Upstream WildFly DefaultDevfileRegistry java-wildfly-bootable-jar Java stack with WildFly in bootable Jar mode, OpenJDK 11 and... DefaultDevfileRegistry nodejs Stack with Node.js 14 DefaultDevfileRegistry nodejs-angular Stack with Angular 12 DefaultDevfileRegistry nodejs-nextjs Stack with Next.js 11 DefaultDevfileRegistry nodejs-nuxtjs Stack with Nuxt.js 2 DefaultDevfileRegistry nodejs-react Stack with React 17 DefaultDevfileRegistry nodejs-svelte Stack with Svelte 3 DefaultDevfileRegistry nodejs-vue Stack with Vue 3 DefaultDevfileRegistry php-laravel Stack with Laravel 8 DefaultDevfileRegistry python Python Stack with Python 3.7 DefaultDevfileRegistry python-django Python3.7 with Django DefaultDevfileRegistry
odo collects information about how it is being used, including metrics on the operating system, RAM, CPU, number of cores,
odo version, errors, success/failures, and how long
odo commands take to complete.
You can modify your telemetry consent by using the
odo preference command:
odo preference set ConsentTelemetry true consents to telemetry.
odo preference unset ConsentTelemetry disables telemetry.
odo preference view shows the current preferences.