84 lines
4.7 KiB
Markdown
84 lines
4.7 KiB
Markdown
---
|
|
tags: [ "eclipse" , "che" ]
|
|
title: OpenShift Use
|
|
excerpt: "How to use the OpenShift plug-in."
|
|
layout: openshift
|
|
permalink: /:categories/user-guide/
|
|
---
|
|
# Run Che
|
|
|
|
```shell
|
|
# if you downloaded binaries
|
|
/bin/che.sh run
|
|
|
|
# if you built Che from source
|
|
|
|
assembly/openshift-plugin-assembly-main/target/eclipse-che-${version}/eclipse-che-${version}/bin/che.sh run\
|
|
```
|
|
Che will be available at `http://localhost:8080`
|
|
# Connect Account
|
|
Login to your account **OpenShift > Connect Account**. You will retrieve a token using authentication method set up for your OpenShift installation (login/password, Google oAuth etc).
|
|
# Create Application From Template
|
|
Create a new app from a template at **OpenShift > Create Application From Template**. This will both create a new OpenShift project (namespace) and a set of configs, as well as import an app into Che.
|
|
|
|
Once an app is imported, OpenShift metadata is added to project attributes, thus a connection between Che and OpenShift resources is established.
|
|
#### Import a Module
|
|
}
|
|
|
|
|
|

|
|
|
|
#### Development cycle
|
|
Since projects created from OpenShift templates use GitHub repositories that you cannot push to, use templates just for demo purposes. Alternatively, you may replace Git URL in *buildConfig* with the one you have push permissions at `OpenShift > Manage Configs`.
|
|
|
|
|
|
# Import Existing OpenShift App
|
|
When importing an existing OpenShift application, the plugin checks for all *buildConfigs* in all user namespaces, extracts Git URLs and shows them in the application list, grouped by a namespace.
|
|
# Deploy Existing App to OpenShift
|
|
Deployment to OpenShift triggers two actions: marking Che project as OpenShift project type and creating a set of objects on the OpenShift side.
|
|
|
|
A user can choose/edit:
|
|
|
|
* namespace where all the objects will be created (new vs existing one)
|
|
* builder image, i.e. where the code will be compiled (if applicable) and deployed with an app server
|
|
* environment variables/labels and their values
|
|
|
|
You'll need to enter both project and application names.
|
|
# Link Che App With Existing OpenShift App / Unlink App
|
|
Che projects can be linked with existing OpenShift applications at **OpenShift > Deploy > Link With Existing App**. When a Che project is linked to OpenShift application, OpenShift metadata is saved to Che project attributes (namespace and label).
|
|
|
|
It is possible to `'unlink'` Che project from OpenShift, which means clearing Che project attributes. Unlinking project does not delete OpenShift namespace and its associated resources.
|
|
# Delete OpenShift Project
|
|
It is possible to delete an OpenShift project only when a related Che project is selected in a project tree. Deleting OpenShift project resets Che project (OpenShift attributes are removed) and deletes OpenShift namespace.
|
|
|
|
If an OpenShift namespace has multiple `buildConfigs` (apps), a user will be prompted to confirm namespace deletion. Warning message will contain the list of resources that will be deleted.
|
|
# Get Webhooks
|
|
GitHub and generic Git webhooks make it possible to notify OpenShift that a Git repo has been updated. Git push will trigger a new build in OpenShift, and a `buildConfig` will clone updated source code. Webhooks are retrieved at `OpenShift > Manage Configs > Build`.
|
|
# Show Appication URL
|
|
If a project has been deployed to OpenShift, linked with existing app or imported an as existing OpenShift application, it is possible to get preview URL of a running app (get route) at `OpenShift > Manage Configs > Route`.
|
|
# Trigger Build
|
|
`OpenShift > Start Build` will initiate a new build, subscribe to Websocket channels to track build status and stream build logs.
|
|
|
|
Che will also listen to other build channels, and if a build has been triggered (not necessarily from Che), build logs will be streamed to a dedicated panel.
|
|
# Add A Database
|
|
Databases can be added at `OpenShift > Services > Add Service`.
|
|
|
|
OpenShift Plugin will look for database templates in `openshift` namespace and all user namespaces, let a user edit/add environment variables (username, password, databasename) create objects listed in a template, and add database pod environment variables to application `deploymentConfig`.
|
|
#### Database Templates
|
|
The plugin filters templates by `database` tag. If you database templates do not have this tag, they will not be listed in the popup.
|
|
|
|
|
|
# How to Connect to a Database Pod
|
|
Pods use environment variables for communication. Some env variables are shared across all pods running in the same namespace, while others are added to application `deploymentConfig` when a database pod is created.
|
|
|
|
Having added a database, connect to it, using environment variables.
|
|
|
|
A few examples:
|
|
```java
|
|
System.getenv("MYSQL_USER")
|
|
```
|
|
|
|
```php
|
|
$servername = getenv("MYSQL_PORT_3306_TCP_ADDR");
|
|
```
|