Giter Site home page Giter Site logo

harvester-ui's Introduction

harvester-ui

Build Status

Harvester UI. For the other Rancher UI see rancher/ui.

Build Setup

Running for development

This is what you probably want to get started.

# install dependencies
$ yarn install

# serve with hot reload at https://localhost:8005
# using the endpoint for your Steve (or Rancher) API
$ API=http://localhost:8989 yarn dev

# build for production and launch server
$ yarn build
$ yarn start

# generate static project
$ yarn generate

Running with standalone Steve on a Mac

cd steve
make run-host

cd harvester-ui
docker build -f Dockerfile.dev -t rancher/harvester-ui:dev
docker run -v $(pwd):/src \
  -v dashboard_node:/src/node_modules \
  -p 8005:8005 \
  -e API=http://172.17.0.1:8989 \
  rancher/harvester-ui:dev

# The first time will take forever installing node_modules into the volume; it will be faster next time.
#
# Goto https://localhost:8005

Creating a Steve user

Steve does not currently create any default user to login to when it is first run. Use kubectl to apply this to create an admin/admin user:

---
apiVersion: management.cattle.io/v3
kind: User
metadata:
  name: admin
principalIds:
  - local://admin
enabled: true
username: admin
# bcrypt hash of "admin" , or use e.g. https://bcrypt-generator.com/ to generate your own
password: $2a$10$lQpf/73orx5T3TBzbu.xNOXFgODGsR4wc39vTGc6Hbt8cdQVza.Pq
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: default-admin
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: admin

License

Copyright (c) 2014-2021 Rancher Labs, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

harvester-ui's People

Contributors

bashofmann avatar bk201 avatar codyrancher avatar daiyuzeng avatar dbason avatar dependabot[bot] avatar ericpromislow avatar futuretea avatar ibuildthecloud avatar juadk avatar lucidd avatar lvuch avatar mantis-toboggan-md avatar mook-as avatar morecache avatar n313893254 avatar neillsom avatar nmacd avatar nwmac avatar rawmind0 avatar richard-cox avatar tfiduccia avatar vincent99 avatar vocatan avatar westlywright avatar wgdzlh avatar wujun2016 avatar yzeng25 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

harvester-ui's Issues

Settings list page

  • Make the settings page match the one we have for Cluster Manager (remove Age, add Value field to table and show the value for that setting) We have a component you should be using for this... connect with Vincent.

Table and list page should look like this:
image

Network text changes & "Type" question

Text Changes:

  • On Network list page : If the Network NIC isn't moved into Edit host, then the warning message should change to -
    "You must configure a network in Settings before you can create a new network." have "Settings" be a link to the network settings.

  • If the physical NIC is invalid in settings: on Network list page: CHange the text to say "Physical NIC value in Setting is invalid". Have "Settings" be a link to the network settings.

  • In Network setting if you enter a wrong NIC, the message should say '[nic field info] is not a valid physical NIC."

Questions in Settings & Create Network:

  1. I noticed in Network Setting and Create Network, in the Type drop-down you can only select VLAN. If that is the only option it probably shouldn't be a drop-down (or a field at all)

  2. If you can have more than one "Type", then the behavior should be: If only 1, show it as a regular read-only field (not a drop-down). Once there is more than 1, it should change to active and a drop-down field.

Labels Enhancement

Now we can delete all labels of resources, maybe some labels should not be deleted.
We should provide the configuration that labels cannot be deleted in it.

Virtual Machine list page

  • Change top title from VirtualMachines to Virtual Machines
    image

  • Change left menu pane from Virtual Machine to Virtual Machines (add the s)
    image

  • Remove the console drop-down button and put the two actions in the action menu for each VM

Move this:
image

Into here:
image

  • Why is there a namespace field? Can I change where it is going? I didn't see that in the Create? If it's always going to be the same and I can't switch it can we remove this field?

Create Volumes UI polish

  • Top title should say "Volume: Create"

  • 1st line Name & Description component

  • Should have 3 tab component after

  • First tab should be Basic Information, 1st line Source & Image, 2nd line Size/Unit (1 UnitInput component) & Storage Class

  • Second tab should be Labels & Annotations (there is a component for this)

  • Third tab should be Advanced Options

Icons are not correct?

  • The icons in the Action menu are not the same ones we are using?
    image

  • We aren't using icons on the Left menu pane? Should these be here?
    image

Template list page UI polish

  • Make each template their own "section"

  • Have name of template at top

  • Table column titles should be: State, Version, Age

  • Add set as default to the action menu on the left for each version.

image

Top Menu issues

Top left menu:

  • Cow should be 1/2 cow coming in from left
  • Harvester text is wrong font size - 14 px

Harvester:
image

Cluster Explorer:
image

Left menu pane:

  • Rename "Home" to "Dashboard"
    image

Redesign home page to be a Dashboard

The home page needs to be changed to full Dashboard: We should probably discuss what info you would like to see in each section but I took a first shot:

image

Create Image UI polish

  • Put Image Name & Description on top (use name/description component)
  • Put Url field on second line
  • Take Label & Annotation out of tabs and move them below URL, like this (there might be a component for this?):
    image

failed to create multiple instances

Issues:

  1. failed to create multiple instances, the second VM shows
    Error creating DataVolume aa-disk-0-c5cs8: admission webhook "datavolume-validate.cdi.kubevirt.io" denied the request: Destination PVC already exists
  2. VM listing page did not show all new added VMs, need to refresh the page to get it to display correctly.

add annotations

version: 1
config:
  - type: physical
    name: enp1s0
    subnets:
      - type: dhcp
  - type: physical
    name: enp2s0
    subnets:
      - type: static
        address: 10.10.1.110/24
        gateway: 10.10.1.0

Add networks.harvester.cattle.io/ips: [โ€œ10.10.1.22/24โ€] to annotation when there is an address

Log In shouldn't tell which field has failed - general message is better

Issue - when my log in has failed it tells me that my password has failed (recognized the user & failed the password). We shouldn't tell the user which field failed. No matter what fails it should say "Log in failed: Check your credentials, or your account may not be authorized to log in."

Reorder Left Menu pane

  • Dashboard
  • Hosts
  • Virtual Machines
  • Volumes
  • Images
  • Advanced ^ (drop-down menu - this is basically for things you set once or not often enough to show all the time)
    • VM Templates
    • Networks
    • SSH Keys
    • Users
    • Settings

Example:
image

Add Edit to host

We should add the ability to Edit the host &

  • Allow a friendly name to be set

  • Move the Network setting from setting into the edit host. Each host may have it's own physical NIC so setting one globally isn't a good idea?

SSH key configuration does not take effect

Version
master 11/17

Steps to reproduce

  1. Create an ssh key
  2. Create a VM and select the ssh key
  3. Failed to log in with the ssh key

Other details
The VM yaml is :

      volumes:
      - cloudInitNoCloud:
          userData: |
            #cloud-config
            # some other stuff...
            sshAuthorizedKeys:
              - >-
                ssh-rsa
                AAAAB3NzaC1yc2EAAAADAQABAAABAQCmAZFWNfXPfzV2o203bW1107LpQeynoQ4JhByXRDM3rd1gHW60Xdcbpr7Yi9JHiqSR7YIW+mMpmjacr9bwQ1EjkfsozxHrx69IFfvYRpasBaXdBdHD/Ye3DZ28rQvEEZbyWsa9bIWcWb/m/PPmb2I4p2gX7dGxFxR/DCwUyNk95pra+w5z2H7IyXMHwTI+60dV+GguHaWfCwA/LUnDsq253hJsmAvn4Sr3G2hXqO0x+bD7hWwJHYHi6z1ZU62W3ex7w6D/0+YNh1AhTCkBI9gSKOqnWbkAekbvItSKVVqN9IfkXvvZBsgKPKjledhAHnAvXjt/+Pfkq3RhSEZp7+iL

The expected key should be ssh_authorized_keys instead of sshAuthorizedKeys.
ref: https://cloudinit.readthedocs.io/en/latest/topics/examples.html

Create Template UI polish

  • This should be exactly the same as Create Virtual Machine.

  • Only show "Set as Default" checkbox on the creation of more then 1 version.

Create VirtualMachine UI polish

  • On all drop-down that have a static list that is under 10 items, they should be marked so that the cursor doesn't show when I click on the drop-down. Set the drop-down field :searchable="false"

  • Use the Name/Description component (move count to end) <NameNsDescription>

  • Use VM Template needs to be moved out of the Create screen & be before in a selection page. (Lauren will give you design for that) <CruResource>

  • Change Image boxes to a searchable drop-down with list of images.
    image <LabeledSelect>

  • Remove Add Image button (should not leave create screen in middle)

  • All other fields will go into the side-tabbed component (where the tabs are on the left side not on top) <Tabbed :side-tabs="true">
    image

  • 1st tab - Basic - Fields going into this tab: CPU, Memory, Authentication, Start VM on create checkbox

  • Memory field should just be GiB and should use the <UnitInput>
    image

  • Authentication field should be multi-select drop-down <LabledSelect :multiple="true" :searchable="true" ...>

  • New SSH key button, either remove it. Or take out modal and put into two fields side by side and rename to Create SSH Key. Also if you decide to add the key, need to automatically show it after create & have it checked (show up in the drop-down)

  • 2nd tab - Volumes (Change from Disks) - (Will new volumes I create here get added to Volumes list page?)

  • Change table to be a "block" control with Add Volume & Add Existing Volume buttons. Fields that won't change should be on top (Name/Type). Design: Block control is standard and you can get from Lauren or Vincent (<ArrayListGrouped>):

image

  • Can we change "blank" in Source drop-down to "New"?

  • 3rd tab - Networks

  • Change Table to be "block" control. Same as above... design. Name & Model on first row, Network & Type on second, with Mac address on third.

  • For the tooltip, remove the text "Protip:" Change text to say "Guest system address."

  • 4th tab - Advanced Options - put all advanced fields in this tab.

  • Remove tooltip from Host Name field in Advanced. Host Names by default normally have to be lowercase, number & - only. This is a standard. Also you don't have to remember the host name because we don't hide it? They can always come back and get it if they need to. Also as Advanced Users they should really be expected to know what these fields are for and their limits.

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.