Chapter 4. Create and Build an Image Using the Web Console
4.1. Overview
This getting started experience walks you through the simplest way to get a sample project up and running on OpenShift Container Platform. There are a few different ways to launch images within a project, but this topic focuses on the quickest and easiest method.
If this is the first part of the documentation you have read, and you are unfamiliar with the core concepts of OpenShift Container Platform version 3 (v3), you might want to start by reading about what’s new. This version of OpenShift Container Platform is significantly different from version 2 (v2).
OpenShift Container Platform 3 provides out of the box a set of languages and databases for developers with corresponding implementations and tutorials that allow you to kickstart your application development. Language support centers around the Quickstart templates, which in turn leverage builder images.
Language | Implementations and Tutorials |
---|---|
Ruby | |
Python | |
Node.js | |
PHP | |
Perl | |
Java |
Other images provided by OpenShift Container Platform include:
In addition, JBoss Middleware has put together a broad range of OpenShift Container Platform templates.
The technologies available with the xPaaS services in particular include:
- Java EE 6 Application Server provided by JBoss EAP 6
- Integration and Messaging Services provided by JBoss Fuse and JBoss A-MQ
- Data Grid Service provided by JBoss Data Grid
- Real Time Decision Service provided by JBoss BRMS
- Java Web Server 3.0 provided by Tomcat 7 and Tomcat 8
With each of these offerings, a series of combinations are provided:
- HTTP only versus HTTP and HTTPS
- No database required, or the use of either MongoDB, PostgreSQL, or MySQL
- If desired, integration with A-MQ
To help illustrate constructing such applications, the following sections guide you through creating a project that contains a sample Node.js application that will serve a welcome page and the current hit count (stored in a database).
This topic discusses both Quickstart and Instant App templates and applications. Quickstarts provide a starting point for application development, but they rely on your development to create a useful application. In contrast, Instant Apps like Jenkins are instantly usable.
4.1.1. Browser Requirements
Review the browser versions and operating systems that can be used to access the web console.
4.2. Before You Begin
Before you can get started:
- You must be able to access a running instance of OpenShift Container Platform. If you do not have access, contact your cluster administrator.
- Your instance must be pre-configured by a cluster administrator with the Instant App templates and builder images. If they are not available, direct your cluster administrator to the Loading the Default Image Streams and Templates topic.
- You must have the OpenShift Container Platform CLI downloaded and installed.
4.3. Forking the Sample Repository
Visit the Ruby example page while you are logged in to GitHub.
NoteThis topic follows the Ruby example, but you can follow along using any of the language examples provided in the OpenShift Container Platform GitHub project.
You are redirected to your new fork.
- Copy the clone URL for your fork.
- Clone the repository to your local machine.
4.4. Creating a Project
To create an application, you must first create a new project, then select an InstantApp template. From there, OpenShift Container Platform begins the build process and creates a new deployment.
- Visit the OpenShift Container Platform web console in your browser. The web console uses a self-signed certificate, so if prompted, continue past a browser warning.
- Log in using the username and password recommended to you by your administrator.
- To create a new project, click New Project.
- Type a unique name, display name, and description for the new project.
Click Create.
The web console’s welcome screen loads.
4.5. Creating an Application
The Select Image or Template page gives you the option to create from a publicly accessible git repository, or from a template:
- If creating a new project did not automatically redirect you to the Select Image or Template page, you might need to click Add to Project.
- Click Browse, then select ruby from the drop-down list.
- Click the ruby:latest builder image.
-
Type a name for your application, and specify the Git Repository URL, which is
https://github.com/<your_github_username>/ruby-ex.git
. - Optionally, click Show advanced routing, build, and deployment options, though by default this example application automatically creates a route, webhook trigger, and build change triggers.
Click Create.
NoteAfter creation, some of these settings can be modified from the web console by clicking Browse, Builds, select your build, then click Actions, and either Edit or Edit YAML.
Creating your application might take some time. You can follow along on the Overview page of the web console to see the new resources being created, and watch the progress of the build and deployment.
While the Ruby pod is being created, its status is shown as pending. The Ruby pod then starts up and displays its newly-assigned IP address. When the Ruby pod is running, the build is complete.
4.6. Verify the Application is Running
If your DNS is correctly configured, then your new application can be accessed using a web browser. If you cannot access your application, then speak with your system administrator.
To view your new application:
-
In the web console, view the overview page to determine the web address for the application. For example, under SERVICE: RUBY-EX you should see something similar to:
ruby-ex-my-test.example.openshiftapps.com
. - Visit the web address for your new application.
4.7. Configuring Automated Builds
You forked the source code for this application from the OpenShift Container Platform GitHub repository. Therefore, you can use a webhook to automatically trigger a rebuild of your application whenever you push code changes to your forked repository.
To set up a webhook for your application:
- From the Web Console, navigate to the project containing your application.
- Click the Browse tab, then click Builds.
- Click your build name, then click the Configuration tab.
- Click next to GitHub webhook URL to copy your webhook payload URL.
- Navigate to your forked repository on GitHub, then click Settings.
- Click Webhooks & Services.
- Click Add webhook.
- Paste your webhook URL into the Payload URL field.
- Click Add webhook to save.
GitHub now attempts to send a ping payload to your OpenShift Container Platform server to ensure that communication is successful. If you see a green check mark appear next to your webhook URL, then it is correctly configured. Hover your mouse over the check mark to see the status of the last delivery.
The next time you push a code change to your forked repository, your application will automatically rebuild.
4.8. Writing a Code Change
To work locally and then push changes to your application:
- On your local machine, use a text editor to change the sample application’s source for the file ruby-ex/config.ru
-
Make a code change that will be visible from within your application. For example: on line 229, change the title from
Welcome to your Ruby application on OpenShift
toThis is my Awesome OpenShift Application
, then save your changes. Commit the change in git, and push the change to your fork.
If your webhook is correctly configured, your application will immediately rebuild itself based on your changes. Once the rebuild is successful, view your updated application using the route that was created earlier.
Now going forward, all you need to do is push code updates and OpenShift Container Platform handles the rest.
4.8.1. Manually Rebuilding Images
You may find it useful to manually rebuild an image if your webhook is not working, or if a build fails and you do not want to change the code before restarting the build. To manually rebuild the image based on your latest committed change to your forked repository:
- Click the Browse tab, then click Builds.
- Find your build, then click Start Build.