Get your Developer Workspace

10 MINUTE EXERCISE

In this lab you will learn about providing your Developer Workspace with a Kubernetes-native development platform and getting familiar with the OpenShift CLI and OpenShift Web Console.

What is Red Hat OpenShift Dev Spaces?

Red Hat OpenShift DevSpaces

OpenShift Dev Spaces is a Kubernetes-native IDE and developer collaboration platform.

As an open-source project, the core goals of OpenShift Dev Spaces are to:

  • Accelerate project and developer onboarding: As a zero-install development environment that runs in your browser, OpenShift Dev Spaces makes it easy for anyone to join your team and contribute to a project.

  • Remove inconsistency between developer environments: No more: “But it works on my machine.” Your code works exactly the same way in everyone’s environment.

  • Provide built-in security and enterprise readiness: As OpenShift Dev Spaces becomes a viable replacement for VDI solutions, it must be secure and it must support enterprise requirements, such as role-based access control and the ability to remove all source code from developer machines.

To achieve those core goals, OpenShift Dev Spaces provides:

  • Workspaces: Container-based developer workspaces providing all the tools and dependencies needed to code, build, test, run, and debug applications.

  • Browser-based IDEs: Bundled browser-based IDEs with language tooling, debuggers, terminal, source control (SCM) integration, and much more.

  • Extensible platform: Bring your own IDE. Define, configure, and extend the tools that you need for your application by using plug-ins, which are compatible with Visual Studio Code extensions.

  • Enterprise Integration: Multi-user capabilities, including Keycloak for authentication and integration with LDAP or AD.

Getting your Developer Workspace with a single click

OpenShift Dev Spaces will provide you an out-of-the-box Developer Workspace with all the tools and the dependencies we need to do the job. And with only one single click!

Devfile

OpenShift Dev Spaces uses Devfiles to automate the provisioning of a specific workspace by defining:

  • projects to clone

  • browser IDE to use

  • preconfigured commands

  • tools that you need

  • application runtime definition

Providing a devfile.yaml file inside a Git source repository signals to OpenShift Dev Spaces to configure the project and runtime according to this file.

Click on the 'Developer Workspace' button below

Then Click 'Log in with OpenShift'

OpenShift - Login

Then login as user%USER_ID%/%OPENSHIFT_PASSWORD%.

Che - Login

Now there are a couple of steps before we can get started. Firstly you need to Trust the Git source you need to import for this workshop

Che - Workspace

Then you need to accept or select the Visual Studio Code UI Settings. You can just click Mark Done to skip these.

Che - Workspace

Once completed, you will have a fully functional Browser-based IDE within the source code already imported.

Che - Workspace

Connect Your Workspace to Your OpenShift User

First, in your Workspace,

  • IDE Task

  • CLI

Click on 'Terminal' → 'Run Task…​' → 'devfile: OpenShift - Login'

Che - RunTask

Execute the following commands in the terminal window

oc login $(oc whoami --show-server) --username=user%USER_ID% --password=%OPENSHIFT_PASSWORD% --insecure-skip-tls-verify
oc project my-project%USER_ID% 2> /dev/null
To open a terminal window, click on 'Terminal' → 'New Terminal'

The output should be as follows:

Login successful.

You have access to the following projects and can switch between them with 'oc project <projectname>':

  * cn-project%USER_ID%
    user%USER_ID% -devspaces

Using project "user%USER_ID% -devspaces".

Then, create your Development Environment:

  • IDE Task

  • CLI

Click on 'Terminal' → 'Run Task…​' → 'devfile: OpenShift - Create Development Project'

Che - RunTask

Execute the following commands in the terminal window

oc new-project my-project%USER_ID%
To open a terminal window, click on 'Terminal' → 'New Terminal'

The output should be as follows:

 Now using project "my-project%USER_ID%" on server "https://172.30.0.1:443".

You can add applications to this project with the 'new-app' command. For example, try:

    oc new-app rails-postgresql-example

to build a new example application in Ruby. Or use kubectl to deploy a simple Kubernetes application:

    kubectl create deployment hello-node --image=k8s.gcr.io/e2e-test-images/agnhost:2.33 -- /agnhost serve-hostname

Log in to the OpenShift Developer Console

OpenShift ships with a web-based console that will allow users to perform various tasks via a browser.

Click on the 'Developer Console' button below

Enter your username and password (user%USER_ID%/%OPENSHIFT_PASSWORD%) and then log in. After you have authenticated to the web console, you will be presented with a list of projects that your user has permission to work with.

Select the 'Developer View' then your 'my-project%USER_ID%' to be taken to the project overview page which will list all of the routes, services, deployments, and pods that you have running as part of your project. There’s nothing there now, but that’s about to change.

OpenShift - Empty Project

Now you are ready to get started with the labs!