Skip to content

Commit

Permalink
A short guide for proxying to a different nomad cluster
Browse files Browse the repository at this point in the history
when developing the UI
  • Loading branch information
DingoEatingFuzz committed Dec 6, 2017
1 parent ee7faa5 commit 935e08e
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
42 changes: 42 additions & 0 deletions ui/DEVELOPMENT_MODE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
## Running the Web UI in development mode against a production Nomad cluster

:warning: **Running the Web UI in development mode is only necessary when debugging
issues. Unless you are debugging an issue, please only use the Web UI contained
in the Nomad binary.** :warning:

The production Web UI concatenates and minifies JavaScript and CSS. This can make errors
cryptic or useless. In development mode, files are as expected and stack traces are useful.

Debugging Web UI issues with the Web UI in development mode is done in three steps:

1. Cloning the Nomad Repo
2. Setting up your environment (or using Vagrant)
3. Serving the Web UI locally while proxying to the production Nomad cluster

### Cloning the Nomad Repo

The Web UI is part of the same repo as Nomad itself. Clone the repo
[using Github](https://help.github.com/articles/cloning-a-repository/).

### Setting up your environment

The [Web UI README](README.md) includes a list of software prerequisites and instructions
for running the UI locally or with the Vagrant VM.

### Serving the Web UI locally while proxying to the production Nomad cluster

Serving the Web UI is done with a single command in the `/ui` directory.

- **Local:** `ember serve`
- **Vagrant:** `ember serve --watch polling --port 4201`

However, this will use the [Mirage fixtures](http://www.ember-cli-mirage.com/) as a backend.
To use your own Nomad cluster as a backend, use the proxy option.

- **Local:** `ember serve --proxy https://demo.nomadproject.io`
- **Vagrant:** `ember serve --watch polling --port 4201 --proxy https://demo.nomadproject.io`

The Web UI will now be accessible from your host machine.

- **Local:** [http://localhost:4200](http://localhost:4200)
- **Vagrant:** [http://localhost:4201](http://localhost:4201)
2 changes: 2 additions & 0 deletions ui/app/serializers/job.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ export default ApplicationSerializer.extend({
hash.PlainId = hash.ID;
hash.ID = JSON.stringify([hash.ID, hash.NamespaceID || 'default']);

hash.Derp = hash.PlainId.Non.Existent;

// Transform the map-based JobSummary object into an array-based
// JobSummary fragment list
hash.TaskGroupSummaries = Object.keys(get(hash, 'JobSummary.Summary') || {}).map(key => {
Expand Down

0 comments on commit 935e08e

Please sign in to comment.