Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Virtual Machine #184

Merged
merged 34 commits into from
Jun 19, 2019
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
c018028
WIP:create-vm
matthewcarleton May 22, 2019
f8a020b
updates
matthewcarleton May 23, 2019
f0e49e0
updates images
matthewcarleton May 23, 2019
8144098
updates name
matthewcarleton May 23, 2019
77fedcb
update
matthewcarleton May 23, 2019
a40f4d6
url updates
matthewcarleton May 23, 2019
01869cf
review updates
matthewcarleton May 23, 2019
761916d
markdown updates
matthewcarleton May 23, 2019
c4df2cc
field order
matthewcarleton May 23, 2019
2a34aef
update
matthewcarleton May 23, 2019
e9dca08
updates
matthewcarleton May 23, 2019
b33d1e8
update images
matthewcarleton May 23, 2019
d4b6119
update images
matthewcarleton May 24, 2019
212eda6
update readme links
matthewcarleton May 27, 2019
7f55e9c
update images
matthewcarleton May 28, 2019
df4fef3
password spelling update
matthewcarleton May 28, 2019
6e21b68
update links
matthewcarleton May 28, 2019
31f12ef
readme update
matthewcarleton May 28, 2019
8074819
clean up
matthewcarleton May 28, 2019
cdb78a5
update basic->general and icon
matthewcarleton May 28, 2019
615c975
updates
matthewcarleton May 28, 2019
8f5cd41
updating provision sources
matthewcarleton May 31, 2019
0b38d6e
add cloned disk flow
matthewcarleton Jun 3, 2019
6bd7b99
update buttons
matthewcarleton Jun 4, 2019
8b210f5
update img name
matthewcarleton Jun 6, 2019
d3af82f
update img name
matthewcarleton Jun 6, 2019
75bd0c8
adds attach and removes import provision sources
matthewcarleton Jun 7, 2019
b391f0f
rebase
matthewcarleton Jun 10, 2019
effe94e
image update
matthewcarleton Jun 11, 2019
efd68d4
update
matthewcarleton Jun 14, 2019
c34ce4a
update empty state
matthewcarleton Jun 14, 2019
c2b3602
update empty state
matthewcarleton Jun 18, 2019
bf51ab9
removes create vm screen
matthewcarleton Jun 18, 2019
1cbc642
andy's nit
matthewcarleton Jun 19, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,12 @@ Access design documentation specific to the KNI and KubeVirt features in OpenShi

### KubeVirt (Virtualization in OpenShift)
- [Clone VM](http://openshift.github.io/openshift-origin-design/web-console/knikubevirt/clone-vm/clone-vm)
- Create VM
- Create VM
- [Step 1 - General](http://openshift.github.io/openshift-origin-design/web-console/knikubevirt/create-vm/create-vm.md)
- [Step 2 - Networking]
- [Step 3 - Storage]
- [Step 4 - Advanced]
- [Step 5 - Review]
- [Expose Secret, CM and SA as Disks](http://openshift.github.io/openshift-origin-design/web-console/knikubevirt/expose-secret/expose-secret)
- [Expose VM as a Service](http://openshift.github.io/openshift-origin-design/web-console/knikubevirt/expose-vm-as-a-service/expose-vm-as-a-service)
- [Guest Agent Not Installed](http://openshift.github.io/openshift-origin-design/web-console/knikubevirt/guest-agent-not-installed/guest-agent-not-installed)
Expand Down
163 changes: 163 additions & 0 deletions web-console/knikubevirt/Create-vm/create-vm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# Create A Virtual Machine

## Launching the Wizard

![Create VM](img/create-vm.png)
matthewcarleton marked this conversation as resolved.
Show resolved Hide resolved

When no virtual machines exist, the Virtual Machines section of the UI will include quick access to the Create Virtual Machine wizard in its empty state.


## Step 1: Basic

![Basic step](img/Step-1-basic-template.png)
Copy link
Contributor

@andybraren andybraren May 23, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- May as well switch to RHEL 8 in this screen and all others
- I think everything in PF4 is supposed to be capitalized sentence-style except for product names. The “Create Virtual Machine” title and quick action button would then be “Create virtual machine”. Might be worth double-checking.
- Where do help icons go? PF4’s form documentation shows the help icon next to the input label, rather than within a FormGroup. Which is correct? (I hope the documentation)
- Should include an auto-generated name here since that’s the new default behavior.
- "Create new template from configuration" should be disabled when a Template is selected unless they tweak the Flavor of that template.
- Screens use Flavour but text uses ‘merican Flavor, we should check on this 😄

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only thing with the auto generated name is that it might not always be generated. There is a possibility that the feature has been disabled OR they are creating a VM from scratch and haven't chosen any settings yet. This is the only one I left it empty though for that reason. There will be a follow up PR to focus on this feature specifically.


The wizard has 5 steps: Basic, Networking, Storage, Advanced, and Review.

The first (alphabetical) template is selected by default if available. Provision Source, Operating System, Flavor, and Workload Profile are pre-filled by the template, but only Flavor can be modified between either the predefined option or custom. The user can switch to a different template, or choose the top-most “None” option to not use a template at all.

The “Start virtual machine on creation” checkbox will do exactly that. The “Create new template from configuration” checkbox will be enabled if the user changes the Provision Source, OS, Flavor, or Workload Profile fields.

Once a name is provided the user can create the VM via the "Create virtual machine" action. Clicking this button will immediately bring them to the “Review” step and initiate the creation/import process.

If the user modifies the OS, Flavor, or Workload profile, the “Create new template from configuration” checkbox will no longer be disabled.


## Fields

## Namespace field

![No namespace](img/Step-1-basic-namespace.png)

If the user initializes this wizard while viewing “All Projects” without a specific namespace selected, a new required Namespace field should appear above the template dropdown.

## Template Field

### Template selected

![template chosen](img/Step-1-basic-template.png)

Template automatically loads the first (alphabetical) template and fills in the Provision Source, Operating System, Flavor, and Workload Profile. Only Flavor can be changed by the user between the template-defined default (Medium in this case) or Custom.

### Template error

![template error](img/Step-1-basic-template-2.png)
matthewcarleton marked this conversation as resolved.
Show resolved Hide resolved

Every template should be shown within the Template dropdown. If the selected template will not be able to run on the cluster (because the CPU family is incompatible or a Machine Type is unavailable) a warning message should be shown with a link to relevant documentation.

### Template modified

![template error](img/Step-1-basic-template-4.png)

When a template has been modified the template field will reflect this by appending -modified to the template name.

### No Template State

![No template](img/Step-1-basic-no-template-chosen.png)


If no templates are available the Templates field should be disabled with inner text of “No template available”.

Because a Provision Source has not been chosen, the OS, Flavor, and Workload Profile dropdowns should be disabled.

As soon as the OS, Flavor, or Workload profile fields are modified, the “Create new template from configuration” checkbox will no longer be disabled.

## Provision Source Field

### ISO (this is not implemented yet, but is planned)
Provision source tooltip content: Use an optical disk image that contains installation media for an operating system.

![ISO](img/Step-1-basic-ISO.png)

ISO enables the user to install an Operating System from existing installation media within ContainerDisk.

![ISO selected](img/Step-1-basic-ISO-2.png)

The user must select an ISO and then manually specify the OS, Flavor, and Workload Profile. None of those fields can be automatically pre-filled.


### PXE
Provision source tooltip content: Discover provisionable virtual machines over the network.

![PXE](img/Step-1-basic-PXE-1.png)

PXE enables the user to install an OS and configure it over a network. PXE depends on DHCP to find the PXE Server on an L2 Network. If one is detected, it will automatically be selected in the Networking step (see Networking section) and a note will be displayed below Provision Source.

If a PXE-capable NIC cannot be found, one will be automatically created with the name “PXE” and selected by default.

### URL
Provision source tooltip content: An external URL to the .iso, .img, .qcow2 or .raw that the virtual machine should be created from.

![URL](img/Step-1-basic-url.png)


### Container
Provision source tooltip content: Ephemeral virtual machine disk image which will be pulled from container registry.

Container allows the user to provide an image from container registry.

The user must provide a container image and then manually specify the OS, Flavor, and Workload Profile. None of those fields can be automatically pre-filled.

![Container](img/Step-1-basic-container.png)

### Attach Disk
Provision source tooltip content: Select an existing disk that has been previously cloned or created.

When selecting `Attached disk` the user will be prompted to select an available disk that has been previously cloned or created and made available in the Persistent Volume Claims. They must manually specify the OS, Flavor, and Workload Profile. None of those fields can be automatically pre-filled.
matthewcarleton marked this conversation as resolved.
Show resolved Hide resolved

![Attach-disk](img/Step-1-basic-attach-disk.png)

![attach-disk-dropdown](img/Step-1-basic-attach-disk-dropdown.png)

This list is populated by making a PVC available as a provision source for a virtual machine. This list is limited by the namespace it belongs to. These lists have the potential to be very long so a search field can help alleviate scrolling.

![attach-disk-selected](img/Step-1-basic-attach-disk-selected.png)


## Operating System Field

Recommended minor version editing

![OS](img/Step-1-basic-Operating-system-1.png)

Only major version numbers are shown in the OS dropdown. The user selects one.

![OS minor version](img/Step-1-basic-Operating-system-2.png)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Minor version dropdown here should be 8.0 (or whatever's the latest) rather than 7.x. This applies to the next screen too.


In situations where the minor OS version could be important (like versions of RHEL), a new dropdown for the minor version should appear next to the major version dropdown.

The latest recommended version should be pre-selected.

![OS error](img/Step-1-basic-Operating-system-3.png)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Go to this page to learn more."

Maybe we should align with whatever the OpenShift pattern is here. I've been just putting hyperlinked "Learn more" text after the period of the previous sentence, but I'm not sure that's right either. We should figure that out.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 Ya I was just adding this text to be more accessible.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I should also say that this is just placeholder not actually what it should say. It would hopefully be different for each to allow for a more descriptive text.


If the user changes the minor OS version to something else, a warning appears with a link to relevant documentation about what functionality may not be supported in earlier versions of the OS.

## Flavor Field

![Flavour](img/Step-1-basic-Flavour.png)

The user can choose from four flavors:

* Small - 2 vCPU, 4 GB Memory
* Medium - 4 vCPU, 8 GB Memory
* Large - 8 vCPU, 16 GB Memory
* Custom
* Tiny (default)

The “Custom” flavor allows the user to define Memory and vCPU manually.

## Workload Profile Field

![OS](img/Step-1-basic-workload-profile.png)

The user can choose from three workload profiles:

* High Performance
* Server
* Desktop

## Step 2: Networking
## Step 3: Storage
## Step 4: Advanced
## Step 5: Review


Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.