The Topology view in the Developer perspective of the web console provides a visual representation of all the applications within a project, their build status, and the components and services associated with them.

Prerequisites

To view your applications in the Topology view and interact with them, ensure that:

Viewing the topology of your application

You can navigate to the Topology view using the left navigation panel in the Developer perspective. After you create an application, you are directed automatically to the Topology view where you can see the status of the application Pods, quickly access the application on a public URL, access the source code to modify it, and see the status of your last build. You can zoom in and out to see more details for a particular application.

A serverless application is visually indicated with the Knative symbol (odc serverless app).

Serverless applications take some time to load and display on the Topology view. When you create a serverless application, it first creates a service resource and then a revision. After that it is deployed and displayed on the Topology view. If it is the only workload, you might be redirected to the Add page. Once the revision is deployed, the serverless application is displayed on the Topology view.

The status or phase of the Pod is indicated by different colors and tooltips as Running (odc pod running), Not Ready (odc pod not ready), Warning(odc pod warning), Failed(odc pod failed), Pending(odc pod pending), Succeeded(odc pod succeeded), Terminating(odc pod terminating), or Unknown(odc pod unknown). For more information about pod status, see the Kubernetes documentation.

After you create an application and an image is deployed, the status is shown as Pending. After the application is built, it is displayed as Running.

Application Topology

The application resource name is appended with indicators for the different types of resource objects as follows:

  • DC: DeploymentConfigs

  • D: Deployment

  • SS: StatefulSet

  • DS: Daemonset

Interacting with the application

The Topology view in the Developer perspective of the web console provides the following options to interact with the application:

  • Click Open URL (odc open url) to see your application exposed by the route on a public URL.

  • Click Edit Source code to access your source code and modify it.

    This feature is available only when you create applications using the From Git, From Catalog, and the From Dockerfile options.

    If the Eclipse Che Operator is installed in your cluster, a Che workspace (odc che workspace) is created and you are directed to the workspace to edit your source code. If it is not installed, you will be directed to the Git repository (odc git repository) your source code is hosted in.

  • Hover your cursor over the lower left icon on the Pod to see the name of the latest build and its status. The status of the application build is indicated as New (odc build new), Pending (odc build pending), Running (odc build running), Completed (odc build completed), Failed (odc build failed), and Canceled (odc build canceled).

Scaling application pods and checking builds and routes

The Topology view provides the details of the deployed components in the Overview panel. You can use the Overview and Resources tabs to scale the application Pods, check build status, services, and routes as follows:

  • Click on the component node to see the Overview panel to the right. Use the Overview tab to:

    • Scale your Pods using the up and down arrows to increase or decrease the number of instances of the application manually. For serverless applications, the Pods are automatically scaled down to zero when idle and scaled up depending on the channel traffic.

    • Check the Labels, Annotations, and Status of the application.

  • Click the Resources tab to:

    • See the list of all the Pods, view their status, access logs, and click on the Pod to see the Pod details.

    • See the builds, their status, access logs, and start a new build if needed.

    • See the services and routes used by the component.

    For serverless applications, the Resources tab provides information on the revision, routes, and the configurations used for that component.

Grouping multiple components within an application

You can use the Add page to add multiple components or services to your project and use the Topology page to group applications and resources within an application group. The following procedure adds a MongoDB database service to an existing application with a Node.js component.

Prerequisites
  • Ensure that you have created and deployed a Node.js application on OpenShift Online using the Developer perspective.

Procedure
  1. Create and deploy the MongoDB service to your project as follows:

    1. In the Developer perspective, navigate to the Add view and select the Database option to see the Developer Catalog, which has multiple options that you can add as components or services to your application.

    2. Click on the MongoDB option to see the details for the service.

    3. Click Instantiate Template to see an automatically populated template with details for the MongoDB service, and click Create to create the service.

  2. On the left navigation panel, click Topology to see the MongoDB service deployed in your project.

  3. To add the MongoDB service to the existing application group, select the mongodb Pod and drag it to the application; the MongoDB service is added to the existing application group.

  4. Dragging a component and adding it to an application group automatically adds the required labels to the component. Click on the MongoDB service node to see the label app.kubernetes.io/part-of=myapp added to the Labels section in the Overview Panel.

    Application Grouping

Alternatively, you can also add the component to an application as follows:

  1. To add the MongoDB service to your application, click on the mongodb Pod to see the Overview panel to the right.

  2. Click the Actions drop-down menu on the upper right of the panel and select Edit Application Grouping.

  3. In the Edit Application Grouping dialog box, click the Select an Application drop-down list, and select the appropriate application group.

  4. Click Save to see the MongoDB service added to the application group.

Connecting components within an application and across applications

In addition to grouping multiple components within an application, you can also use the Topology view to connect components with each other. You can connect a MongoDB service with a Node.js application as follows:

Prerequisites
  • Ensure that you have created and deployed a Node.js application on OpenShift Online using the Developer perspective.

  • Ensure that you have created and deployed a MongoDB service on OpenShift Online using the Developer perspective.

Procedure
  1. Hover over the MongoDB service to see a dangling arrow on the node.

    Connector
  2. Click and drag the arrow towards the Node.js component to connect the MongoDB service with it.

  3. Click on the MongoDB service to see the Overview Panel. In the Annotations section, click the edit icon to see the Key = app.openshift.io/connects-to and Value = nodejs-ex annotation added to the service.

    Annotation

    Similarly you can create other applications and components and establish connections between them.

    Connecting Multiple Applications

Labels and annotations used for the Topology view

The Topology view uses the following labels and annotations:

Icon displayed in the node

Icons in the node are defined by looking for matching icons using the app.openshift.io/runtime label, followed by the app.kubernetes.io/name label. This matching is done using a predefined set of icons.

Link to the source code editor or the source

The app.openshift.io/vcs-uri annotation is used to create links to the source code editor.

Node Connector

The app.openshift.io/connects-to annotation is used to connect the nodes.

App grouping

The app.kubernetes.io/part-of=<appname> label is used to group the applications, services, and components.

For detailed information on the labels and annotations OpenShift Online applications must use, see Guidelines for labels and annotations for OpenShift applications.