Skip to content
Frank Rosner edited this page Apr 27, 2018 · 12 revisions

Broccoli Web UI

Description

Cluster Broccoli comes with a Web UI for creating and managing instances based on templates. It allows you to start and stop jobs as well as explore the services your jobs expose. It show the status of your job (according to Nomad) and the status of your services (according to Consul).

image

image

Managing Instances

You can start and stop instances by clicking on the corresponding buttons (►, ◾) on the right. The label next to it will indicate whether the instance is currently stopped, pending or running.

In order to change the parameter values of an instance, expand the instance by clicking on its name or the chevron next to it. Please keep in mind that the changes will only take effect if you resubmit the job (↺) or restart it.

To update a template of an instance (e.g. when you released a new template versions and want to migrate your running instances), just select the template from the dropdown menu in the expanded instance form. Keep in mind however, that a running instance will keep running in Nomad the same way it was submitted. So in order to physically migrate the running job, you have to resubmit the job after changing the template.

If you want to delete an instance, select it and click on the delete button. Note however, that deleting an instance will make Broccoli submit a stop request to Nomad as well.

Managing Services

Each instance can expose services. Broccoli shows this services in the middle of each instance row. The service state is reflected in the color of the link. Healthy services are printed green, unhealthy ones are red. If no information about the service is available, it is rendered grey.

Notes on Websockets and Reverse Proxies

The Web UI requires a WebSocket connection at /ws. If you are using a reverse proxy, please make sure to configure it so the WebSocket gets proxied correctly.

If you are using Nginx, the configuration would look something like this:

location /ws {
    proxy_pass http://<url-of-broccoli>;
    proxy_http_version 1.1;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection upgrade;
    proxy_read_timeout 86400;
}