Git Product home page Git Product logo

odo's Introduction

Odo - OpenShift Do

Build Status CircleCI codecov

Powered by OpenShift

Odo

OpenShift Do (Odo) is a CLI tool for developers who are writing, building, and deploying applications on OpenShift. With Odo, developers get an opinionated CLI tool that supports fast, iterative development which abstracts away Kubernetes and OpenShift concepts, thus allowing them to focus on what's most important to them: code.

Odo was created to improve the developer experience with OpenShift. Existing tools such as oc are more operations-focused and requires a deep-understanding of Kubernetes and OpenShift concepts. Odo is designed to be simple and concise so you may focus on coding rather than how to deploy your application. Since Odo can build and deploy your code to your cluster immediately after you save you changes, you benefit from instant feedback and can thus validate your changes in real-time. Odo's syntax and design is centered around concepts already familiar to developers, such as: project, application and component.

Demo

demo

Features

  • Designed for fast, iterative development cycles
  • 100% client based. No server required within your OpenShift cluster for deployment
  • Supports multiple languages and frameworks such as Node.js, Java, Ruby, Perl, PHP and Python
  • Detect changes to your local code and deploy automatically with odo watch
  • List all available components and services from your OpenShift cluster

Setup and Installation

Ready to get started? Follow the instructions below to set up Odo in your environment or give it a try in our interactive tutorial:

Requirements

  • minishift or an OpenShift environment 3.9.0+. The best way to deploy a development environment for OpenShift is using Minishift.

Installing Odo

Automated installation

The quickest way to install Odo is via this bash script, which will automatically detect your operating system and install odo accordingly.

curl -L https://github.com/redhat-developer/odo/raw/master/scripts/install.sh | bash

OS-specific installation methods

macOS

# Binary installation
sudo curl -L https://github.com/redhat-developer/odo/releases/download/v0.0.20/odo-darwin-amd64 -o /usr/local/bin/odo && sudo chmod +x /usr/local/bin/odo

# Alternative, compressed tarball installation
sudo sh -c 'curl -L https://github.com/redhat-developer/odo/releases/download/v0.0.20/odo-darwin-amd64.gz | gzip -d > /usr/local/bin/odo; chmod +x /usr/local/bin/odo'

Linux

# Binary installation
sudo curl -L https://github.com/redhat-developer/odo/releases/download/v0.0.20/odo-linux-amd64 -o /usr/local/bin/odo && sudo chmod +x /usr/local/bin/odo

# Alternative, compressed tarball installation
sudo sh -c 'curl -L https://github.com/redhat-developer/odo/releases/download/v0.0.20/odo-linux-amd64.gz | gzip -d > /usr/local/bin/odo; chmod +x /usr/local/bin/odo'

Windows

  1. Download the odo-windows-amd64.exe.gz file from the GitHub releases page.
  2. Extract the file
  3. Add the location of extracted binary to your PATH environment variable by following this Wiki page.

Other Methods

For a list of other methods such as installing the latest mastery binary, or specific OS installations, visit the installation page.

Deploying an Application using Odo

Now that you have Odo installed, follow these steps to build, push, and deploy a Node.js application using Odo. Examples for other supported languages and runtimes can be found here.

# Start a local OpenShift development cluster by running minishift
$ minishift start

# Log into the OpenShift cluster
$ odo login -u developer -p developer

# Create an application. An application in Odo is an umbrella under which you add other components
$ odo app create node-example-app

# Download the Node.js sample code
$ git clone https://github.com/openshift/nodejs-ex && cd nodejs-ex

# From the directory where the sample code is located, add a component of type nodejs to your application 
$ odo create nodejs

# Now let's deploy your application!
$ odo push

# Last, we'll create a way to access the application
$ odo url create

# Test it / visit the URL
$ curl nodejs-myproject.192.168.42.147.nip.io

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 Odo user guide.

Additional Documentation

Additional documentation can be found below:

Community, Discussion, Contribution and Support

Chat: We have a public channel #Odo on chat.openshift.io.

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.

Glossary

  • Application: Is, well, your application! It consists of multiple microservices or components, that work individually to build the entire application.
  • Component: Can be thought of as a microservice. Multiple components will make up an application. A component will have different attributes like storage, etc. Multiple component types are currently supported, like nodejs, perl, php, python, ruby, etc.
  • Service: A service will typically be a database or a "service" a component links / depends on. For example: MariaDB, Jenkins, MySQL. This comes from the OpenShift "Service Catalog" and must be enabled within your cluster.

odo's People

Contributors

kadel avatar cdrage avatar concaf avatar surajnarwade avatar mik-dass avatar syamgk avatar metacosm avatar geoand avatar anmolbabu avatar girishramnani avatar ashetty1 avatar piyush-garg avatar jorgemoralespou avatar amitkrout avatar dgolovin avatar mohammedzee1000 avatar acgoliyan avatar cmoulliard avatar apupier avatar praveenkumar avatar gunnarmorling avatar jankleinert avatar joshainglis avatar sherl0cks avatar rhuss avatar sbose78 avatar u5surf avatar springdo avatar glefloch avatar

Watchers

Alain Lompo avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.