Code Monkey home page Code Monkey logo

juju-lens's Introduction

Juju Lens Build Status

Juju Lens is a new web GUI for the [Juju] orchestration tool with a beautiful interface and support for multiple controllers.

juju-lens.mp4

Try The Desktop App!

Juju Lens has a desktop application featuring instant, one-click SSH support. Read the announcement on the Juju Forum or check out our releases to download and try it out!

Getting Started

To get started, you don’t need to install anything! ( assuming you already have a Juju controller to connect to. ) Just go to the Juju Lens Web App, add one or more controllers, and you’re all set. All data is stored locally in your browser, so if you access the Lens from a different browser you will have to re-add your controllers.

Adding a controller

To add a controller, first go to the Controllers tab:

screenshot 2

Then click the big plus button:

screenshot 3

Fill out the form and click Add:

screenshot 4

Juju Lens will connect to your controller and display the number of machines, models, applications, and units in the controller list. Then click on the models tab:

screenshot 5

Juju Lens will show you all your models and units!

screenshot 6

Features

  • Multi-controller support
    • View models across controllers or filter by specific controllers
  • Alert menu to bring you quickly to problems and warnings
  • Sorted lists for models, applications, and units that automatically bring errors and warnings to the top of the list
  • Pleasant animations and UI components
  • Beautiful dark and light themes
  • Ridiculously mobile optimized
  • Never have to deploy it, ever!
    • No need to find servers, setup a domain, or pick a Juju controller to deploy it to, just use it right from the official deployment or the desktop application and monitor any number of controllers!
  • ( WIP ) Floating, dragable log and temrinal windows that can minimize to a taskbar
  • ( WIP ) Ability to add and edit models, applications, units, etc. from the GUI

Gallery

App unit view:

app unit view

Floating, dragable log and terminal windows:

floating log and terminal windows

Ridiculously mobile optimized:

ridiculously mobile optimized

juju-lens's People

Contributors

dependabot[bot] avatar zicklag avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

juju-lens's Issues

Add The Ability to Hide Models

Certain models like the "controller" model that come with Juju aren't very useful to have showing in the model list all the time. It would be nice if I could hide these models to put them in some sort of "hidden" list where they would stay unless I explicitly revealed them again.

Controller Name Displayed on Model Bar

In order to allow me to see which controller a specific model is a part of

As a user

I want to have the controller name displayed after the model name, in a different font, on the model header bar

Add Machines View

We need to add the machines view to the model tab. View needs to show all the machines and which units are on each machine for each model.

Models View: Cloud/Region should be notated

In order to have more comprehensive context
As an Operator
I want the Cloud / Region that my model is deployed in to be notated on the Models view

Given that each model can be deployed to different regions, I would like to know which region each of my Models is deployed to.

Controllers View: Cloud/Region should be notated

In order to have more comprehensive context
As an Operator
I want the Cloud / Region that my controller is deployed in to be notated on the Controllers view

I am often curious as to what region my Controller is deployed to as I am usually working with various different controllers at any given time. The resource group naming convention used for Juju components in the cloud are not very indicative of what they are actually serving, other than "juju-controller" or "juju-". Knowing which region the controller I am working on just gives me more data points to cross reference when I need to navigate multiple controllers.

Add SSH Support To Desktop Application

  • Generate SSH Keypairs
  • Create an XTerm.js Vue component for ssh-ing into arbitrary hosts
  • Add SSH keypair trust to the Juju models
  • Obtain the remote host keys for Juju machines
  • Setup SSH into the Juju hosts

Remove Unused GUI Elements

There are some GUI elements that we had in the initial prototype that aren't going to be included ( or not until much later ) and should be removed: the admin tab, the controller terminal window.

Add Missing Unit Information

Add missing information to unit table such as: machine id, IP address, exposed ports. Possibly provide the option to select which columns should be visible by putting checkboxes in the app details heading. The checkbox list could collapse to a multi-select dropdown on mobile sizes.

Enable Model/App/Unit Actions

Allow actions such as "remove" for units, models, and applications through their context menus or hamburger buttons.

Comprehensive Unit "Dot" Tooltips

Currently the colored unit "dot"s have a tooltip that displays the unit's current status message, but it would be good to have more information such as the unit name, IP, and maybe the log viewer button and such like that. Make it like a full blown unit preview possibly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.