Skip to content

Commit

Permalink
F OpenNebula/one#6430: Sunstone review ovm, vm backups and end user i…
Browse files Browse the repository at this point in the history
…nterfaces (#2970)

vm, vm backups and end user interfaces

Signed-off-by: dcarracedo <[email protected]>
  • Loading branch information
dcarracedo authored Jul 11, 2024
1 parent fe97fab commit 633a204
Show file tree
Hide file tree
Showing 78 changed files with 677 additions and 305 deletions.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file added source/images/ruby_sunstone_guac_rdp.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/images/ruby_sunstone_guac_vnc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Binary file added source/images/ruby_sunstone_labels_edit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/images/ruby_sunstone_labels_filter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
File renamed without changes
File renamed without changes
Binary file added source/images/sunstone_charter_info.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/images/sunstone_cloud_add_ssh_key.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/images/sunstone_cloud_create_service.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/images/sunstone_cloud_create_vm.png
Binary file added source/images/sunstone_cloud_dash.png
Binary file added source/images/sunstone_cloud_service_info.png
Binary file added source/images/sunstone_cloud_services_list.png
Binary file added source/images/sunstone_cloud_user_quotas.png
Binary file added source/images/sunstone_cloud_user_settings.png
Binary file added source/images/sunstone_cloud_vm_info.png
Binary file added source/images/sunstone_cloud_vms_list.png
Binary file modified source/images/sunstone_groupadmin_create_user.png
Binary file modified source/images/sunstone_groupadmin_create_vm_templates_list.png
Binary file modified source/images/sunstone_groupadmin_create_vrouter.png
Binary file modified source/images/sunstone_groupadmin_dash.png
Binary file modified source/images/sunstone_groupadmin_edit_quota.png
Binary file modified source/images/sunstone_groupadmin_group_acct.png
Binary file modified source/images/sunstone_groupadmin_group_showback.png
Binary file modified source/images/sunstone_groupadmin_instantiate.png
Binary file modified source/images/sunstone_groupadmin_list_vms.png
Binary file modified source/images/sunstone_groupadmin_share_template.png
Binary file removed source/images/sunstone_groupadmin_topology.png
Diff not rendered.
Binary file modified source/images/sunstone_groupadmin_user_acct.png
Binary file modified source/images/sunstone_groupadmin_users.png
Binary file added source/images/sunstone_guac_nic_1.png
Binary file added source/images/sunstone_guac_nic_2.png
Binary file modified source/images/sunstone_guac_rdp.png
Binary file modified source/images/sunstone_guac_vnc.png
Binary file added source/images/sunstone_labels_create.png
Binary file modified source/images/sunstone_labels_edit.png
Binary file modified source/images/sunstone_labels_filter.png
Binary file added source/images/sunstone_persistent_vm.png
Binary file added source/images/sunstone_save_vm_1.png
Binary file added source/images/sunstone_save_vm_2.png
Binary file added source/images/sunstone_save_vm_3.png
Binary file modified source/images/sunstone_sg_attach.png
Binary file modified source/images/sunstone_sg_main_view.png
Binary file modified source/images/sunstone_template_create.png
Binary file modified source/images/sunstone_template_share.png
Binary file added source/images/sunstone_vm_charter.png
4 changes: 4 additions & 0 deletions source/legacy_components/ruby_sunstone/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@ Ruby Sunstone
:maxdepth: 1

Sunstone Service Configuration <sunstone>
Virtual Machine Charters <ruby_sunstone_vm_charter>
Accessing VM Console and Desktop <ruby_sunstone_vm_console>
Sunstone Labels <ruby_sunstone_labels>
Cloud view <ruby_sunstone_cloud_view>
121 changes: 121 additions & 0 deletions source/legacy_components/ruby_sunstone/ruby_sunstone_cloud_view.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
.. _ruby_sunstone_cloud_view:

================================================================================
Self-service Cloud View
================================================================================

This is a simplified view intended for cloud consumers that just require a portal where they can provision new VMs easily. To create new VMs and Services, they just have to select one of the available Templates prepared by the administrators.

|ruby_sunstone_cloud_dash|

Using the Cloud
================================================================================

Create VM
--------------------------------------------------------------------------------

In this scenario the cloud administrator must prepare a set of Templates and Images to make them available to the cloud users. These resources must be **ready** to be used.

E.g. when template attributes are defined as mandatory, users can optionally **customize the VM capacity**, **resize disks**, **add new Network Interfaces** and **provide values required by the template**. Read tips on how to :ref:`prepare VM Templates for End-Users <vm_templates_endusers>`.

|ruby_sunstone_cloud_create_vm|

.. _ruby_sunstone_cloudview_ssh_keys:

Access the VMs with SSH Keys
--------------------------------------------------------------------------------

Any user can provide his own ssh public key to be included in the VMs created through this view. This requires the VM guest to be :ref:`contextualized <context_overview>`, and the Template must have the ssh **contextualization enabled**.

|ruby_sunstone_cloud_add_ssh_key|

Manage VMs
--------------------------------------------------------------------------------

The status of the virtual machines can be monitored from the **VMs tab**.

|ruby_sunstone_cloud_vms_list|

Information about the capacity, operating system, ips, creation time and monitoring graphs for a specific VM are available in the **detail view**.

|ruby_sunstone_cloud_vm_info|

Users can perform the following actions from this view:

* Access the VNC console, but only if it's configured in the Template.
* Reboot the VM, the user can send the reboot signal (``reboot``) or reboot the machine (``reboot hard``).
* Power off the VM, the user can send the power off signal (``poweroff``) or power off the machine (``poweroff hard``).
* Terminate the VM.
* Save the VM into a new Template.
* Power on the VM.

.. _ruby_sunstone_save_vm_as_template_cloudview:
.. _ruby_sunstone_cloudview_persistent:

Make the VM Changes Persistent
--------------------------------------------------------------------------------

Users can create a persistent private copy of the available templates. A **persistent copy will preserve the changes** made to the VM disks after the instance is terminated. This **template is private**, and will only be listed to the owner user.

To create a persistent copy, use the **Persistent** switch next to the create button:

|ruby_sunstone_persistent_1|

Alternatively, a VM that wasn't created as persistent can be saved before it's destroyed. To do so, the user has to ``power off`` the VM first and then use the ``save`` operation.

|ruby_sunstone_persistent_3|

Any of the these two actions will create a new Template. This Template can be used to create **restore the state of a VM after deletion**. This template contains a copy of each one of the original disk images.

.. warning:: If you delete this template, all the disk contents will be also lost.

|ruby_sunstone_persistent_2|

.. note:: **Avoid making a persistent copy of a persistent copy!** Although there are use cases where it is justified, you will end with a long list of Templates and the disk usage quota will decrease quickly.

For more details about the limitations of saved VM, continue to the :ref:`Managing Virtual Machines guide <vm_guide2_clone_vm>`.

Create Service
--------------------------------------------------------------------------------

In the same way that instantiating a VM, the cloud administrator must prepare a set of Service Templates. Before instantiating them, users can optionally **customize the Service cardinality**, **define the network interfaces** and **provide values required by the template**.

|ruby_sunstone_cloud_create_service|

Manage Services
--------------------------------------------------------------------------------

The status of the Services can be monitored from the Services tab.

|ruby_sunstone_cloud_services_list|

Information of the creation time, cardinality and status for each Role are available in the **detail view**.

|ruby_sunstone_cloud_service_info|

Users can perform the following actions from this view:

* Change the cardinality of each Role
* Retrieve the VMs of each Role
* Delete the Service
* Recover the Service from a fail status

Usage, Accounting and Showback
--------------------------------------------------------------------------------

From the user settings dialog, the user can check his current **quotas**, **accounting**, **showback** information and **change account configuration** like his password, language, ssh key and view:

|ruby_sunstone_cloud_user_settings|

.. |ruby_sunstone_cloud_dash| image:: /images/ruby_sunstone_cloud_dash.png
.. |ruby_sunstone_cloud_create_vm| image:: /images/ruby_sunstone_cloud_create_vm.png
.. |ruby_sunstone_cloud_add_ssh_key| image:: /images/ruby_sunstone_cloud_add_ssh_key.png
.. |ruby_sunstone_cloud_vms_list| image:: /images/ruby_sunstone_cloud_vms_list.png
.. |ruby_sunstone_cloud_vm_info| image:: /images/ruby_sunstone_cloud_vm_info.png
.. |ruby_sunstone_cloud_create_service| image:: /images/ruby_sunstone_cloud_create_service.png
.. |ruby_sunstone_cloud_services_list| image:: /images/ruby_sunstone_cloud_services_list.png
.. |ruby_sunstone_cloud_service_info| image:: /images/ruby_sunstone_cloud_service_info.png
.. |ruby_sunstone_cloud_user_settings| image:: /images/ruby_sunstone_cloud_user_settings.png
.. |ruby_sunstone_persistent_1| image:: /images/ruby_sunstone_persistent_1.png
.. |ruby_sunstone_persistent_2| image:: /images/ruby_sunstone_persistent_2.png
.. |ruby_sunstone_persistent_3| image:: /images/ruby_sunstone_persistent_3.png
90 changes: 90 additions & 0 deletions source/legacy_components/ruby_sunstone/ruby_sunstone_labels.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
.. _ruby_sunstone_labels:

================================================================================
Sunstone Labels
================================================================================

Labels can be defined for most of the OpenNebula resources from the admin view.

Each resource **will store the label information in its own template**, thus it can be easily edited from the CLI or Sunstone.

|ruby_sunstone_labels_edit|

This feature enables the possibility to **group the different resources** under a given label and filter them in the admin and cloud views. The user will be able to easily find the template she wants to instantiate, **or select a set of resources** to apply a given action.

|ruby_sunstone_labels_filter|

The list of labels defined for each pool **will be shown in the left navigation menu**. After clicking on one of these labels, only the resources with this label will be shown in the table.

This filter is **also available in the cloud view** inside the virtual machine creation form to easily select a specific template.

|ruby_sunstone_labels_cloud|

To create a **label hierarchy**, use slash character: ``/``. For example, you could have the labels ``Linux/Ubuntu`` and ``Linux/RedHat``.

.. _ruby_suns_views_labels_behavior:

Normalization
================================================================================

Labels have a few peculiarities worth taking into account:

* When a resource is assigned a the label with hierarchy, e.g. ``Linux/Ubuntu`` the label parent ``Linux`` **isn't automatically added**, but you can do it manually.

* Labels created from Sunstone **will ignore the labels case**, and show them in lowercase with the first letter in uppercase. For example, ``label with-spaces/andSubtree`` will transform to ``Label With-spaces/Andsubtree``

Persistent Labels
================================================================================
Persistent labels have an extra behavior: it **isn't removed** when it does not have associated resources.

To define persistent a labels we have two options: :ref:`system label <ruby_suns_views_system_labels>` or :ref:`user label <ruby_suns_views_user_labels>`.

.. _ruby_suns_views_user_labels:

User Labels
--------------------------------------------------------------------------------
These labels will be **saved in the User's template** through the CLI or Sunstone interface

|ruby_sunstone_labels_user_persis|

When the user clicks on the **padlock** of already-created labels, it add the following block in the User's template:

.. code-block:: none
TEMPLATE = [
LABELS = "Nodejs/Old,Linux/Ubuntu"
]
.. _ruby_suns_views_system_labels:

System Labels
--------------------------------------------------------------------------------
These labels are defined in ``/etc/one/sunstone-views.yaml``.

You can separate them per groups of users or introduce them into the default section. For example:

.. code-block:: yaml
logo: images/opennebula-5.0.png
groups:
oneadmin:
- admin
- groupadmin
- user
- cloud
default:
- cloud
default_groupadmin:
- groupadmin
- cloud
labels_groups:
oneadmin:
- Linux/Ubuntu
- Linux/RedHat
default:
- default
.. |ruby_sunstone_labels_edit| image:: /images/ruby_sunstone_labels_edit.png
.. |ruby_sunstone_labels_filter| image:: /images/ruby_sunstone_labels_filter.png
.. |ruby_sunstone_labels_cloud| image:: /images/ruby_sunstone_labels_cloud.png
.. |ruby_sunstone_labels_user_persis| image:: /images/ruby_sunstone_labels_user_persis.png
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
.. _ruby_sunstone_vm_charter:

================================================================================
Virtual Machine Charters
================================================================================

This functionality automatically adds scheduling actions in VM templates. To enable Charters, you only need add the following to ``sunstone-server.conf`` file:

|vm_charter|

.. prompt:: text $ auto

:leases:
suspend:
time: "+1209600"
color: "#000000"
terminate:
time: "+1209600"
color: "#e1ef08"

In the previous example you can see that Scheduled Actions are added to the VMs. You can tune the following values:

+---------+-------------------------------------------------------------------------------------------------------+
| time | Time for the action in secs example: +1209600 is two weeks. |
| | The order is very important since time adds to the previous scheduled action. |
+---------+-------------------------------------------------------------------------------------------------------+
| color | Is the color in hexadecimal since the icon will appear in the Vms table |
+---------+-------------------------------------------------------------------------------------------------------+

.. |vm_charter| image:: /images/vm_charter.png
Loading

0 comments on commit 633a204

Please sign in to comment.