1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-01-03 01:17:41 +03:00
Commit Graph

1151 Commits

Author SHA1 Message Date
Ruben S. Montero
d546ed3db3
F #6756: Fix for Scaleway driver
- Missing files in install.sh
- Fix bug in unregister_address_range
2024-12-09 01:08:21 +01:00
Ruben S. Montero
450563d408
F #6756: Add files to installer 2024-12-05 20:00:46 +01:00
Guillermo Ramos
1ef2f06ed6
F #5853: New version of ssh drivers
- Now are named local. SSH drivers will be distributed for running VMs
  that use the SSH drivers.
- The new drivers optimize Qcow2 operations in the same way as the
  shared TM driver, including:
    - thin provisioning, when available a cow copy is made
    - Qcow2 snapshots for the snapshot operations
    - Some operations has been improved code-wise
    - It should be a drop-in replacement for ssh
- New drivers are written in Ruby to accommodate future improvements
- By default new datastores will use "local" instead of "ssh"

co-authored-by: Ruben S. Montero <rsmontero@opennebula.org>
2024-11-24 18:41:32 +01:00
Pavel Czerný
fa73142e7d
F #6723: Remove onehost importvm (#3231)
* Remove vm_import table from DB
* Remove imported vms actions
* Fix fsck for image and network
* onedb fsck fix running_vms only for non-backup images
2024-11-21 17:31:47 +01:00
vichansson
dd844ee7d5
F OpenNebula/one#6627: Add base profile template (#3275)
Signed-off-by: Victor Hansson <vhansson@opennebula.io>
2024-10-23 13:46:15 +02:00
vichansson
48f508ea69
F OpenNebula/one#6742: Implement loading of OS profiles (#3267)
+ define windows profile

OpenNebula/one#6627

* Add windows profile
* Adds OS Profiles parsing & loading
  - new /profiles endpoint
  - profiles are stored in /etc/fireedge/sunstone/profiles/
  - YAML format only
* Update profile loading
* Load profile only once per step
* Add indicator for last applied profile
* Fix autocomplete controller equality comparison
* Install new 'profiles' directory
* Installs windows_optimized profile

Signed-off-by: Victor Hansson <vhansson@opennebula.io>
2024-10-18 09:59:25 +02:00
Michal Opala
b1ef4332e5
F OpenNebula/one#6641: Add the "string-phone" transparent proxy (#3221)
This feature let's cloud admin to proxy VM connections to any service through the hypervisor. VMs uses a link local IP that is forwarded to a local proxy. This simplifies VM network requirements, e.g. to access gateway, vaults, configuration services etc...

Implementation:
- Use network namespaces to isolate VNET networking. ip netns command is executed through a wrapper to limit sudo access to commands.
- Add tproxy.rb app to manage a group of daemons on HV nodes.
- Use unix sockets for communication between proxy peers. "Inner" proxy runs in the netns without any network access. "Outer" proxy handles HV connections to services.
- Use OpenNebulaNetwork.conf + 'onehost sync -f' for configuration. Proxy can be defined per network.
2024-09-26 18:19:48 +02:00
Ruben S. Montero
abe1818b10
F #6668: Add Prometheus support for OpenNebula 2024-07-30 14:41:09 +02:00
Ruben S. Montero
f583187d19
F #6671: Add restic code to OpenNebula repo 2024-07-29 14:45:54 +02:00
Tino Vázquez
05d147c524
M #-: Bump version 6.10.0
Also bump copyright year to 2024
2024-07-29 14:27:11 +02:00
Ruben S. Montero
f194c1241f
M #-: Remove tproxy logic 2024-07-23 13:29:48 +02:00
Michal Opala
360605628c
F #6641: Implement OneGateProxy in VN drivers (#3142)
This commit implements a transparent proxy for OneGate service (as well as any other  TCP service)
* #6281: Disable legacy OneGateProxy
* Implement OneGateProxy in VN drivers
2024-07-19 11:55:49 +02:00
Daniel Clavijo Coca
a275fa18d3
F OpenNebula/one#6645: Implement QEMU Guest agent based monitoring (#3153)
Co-authored-by: Tino Vázquez <cvazquez@opennebula.io>
2024-07-16 19:12:02 +02:00
David
b5c8bc1acb
F OpenNebula/one#6444: Modify install views (#3152)
Signed-off-by: dcarracedo <dcarracedo@opennebula.io>
2024-07-11 17:20:57 +02:00
Ruben S. Montero
41f25a2518
F OpenNebula/one#6397: Removes Marketplaces, Hypervisor drivers and others
- Remove Firecracker driver
- Remove LXD driver
- Remove dockerhub, docker registry marketplaces
- Remove turnkey linux marketplace
- Remove docker machine
- Remove references to above components in Sunstone
- Change suffix to LXC to avoid confussion, remove turnkeylinux driver
2024-07-08 09:49:11 +02:00
Ruben S. Montero
eda3084beb
F #6586: Remove docker-machine add-on 2024-05-21 12:47:36 +02:00
Guillemo Ramos
4db0e74f43
F #6053: In-place restore of VM backups (Ceph) (#3051) 2024-05-14 15:58:36 +02:00
Pavel Czerný
c985ad35f9
F OpenNebula/one#6053: GO and Java api (#3055)
* GO api, including backup struct and VM states
* Java api
* remove snapshots on restore_success callback
* fix xmlrpc response in case VM doesn't exists
2024-05-10 11:58:00 +02:00
Ruben S. Montero
3dfd53df1c
F #6053: In-place restore of VM backups (shared and ssh drivers)
This commit implements the in-place restore of VM backups. Selected VM disks will
be replaced with the specified backup:

* A new API call has been added to the XML-RPC API (`one.vm.restore`) with
  the following arguments:
    - VM ID to be restored, needs to be in **poweroff** state
    - IMAGE ID of the backup to restore
    - INCREMENT ID, only for incremental backups, the increment to use
      (defults to -1 to use the last increment available)
    - DISK ID of the disk to restore (defaults to -1 to restore all VM
      disks)

* Datastore drivers needs to implemente a new operation `ls`. This new
  operation takes the VM, image information of the backup and datastore
  information and returns the restore URL for the disks in the backup.

* This commit includes the implementation for qcow2 and ssh drivers,
  ceph will be implemented in a separated PR. The new driver action is
  `restore host:vm_dir vm_id img_id inc_id disk_id`

* The restore operation is performed in a new state `PROLOG_RESTORE`
  rendered as `RESTORE` and `rest` in short form. State in in RSuntone.

TODO:
  - Remove any existing VM snapshot (system/disk) in the VM. Note that
    snapshots are not included in a backup.

  - Ceph drivers

  - JAVA, GO Lang API bindings

  - Sunstone interface, new state and new operation. Review new state in
    RSuntone.

co-authored-by: Pavel Czerny <pczerny@opennebula.io>
2024-04-26 12:45:04 +02:00
vichansson
4eb464cfdd
F OpenNebula/one#5899: Add VR tabs (#3030)
Signed-off-by: Victor Hansson <vhansson@opennebula.io>
2024-04-11 11:25:26 +02:00
David
45bcac8e1c
F OpenNebula/one#6117: Marketplace tab (#2975)
Signed-off-by: David Carracedo <dcarracedo@opennebula.io>
2024-03-08 12:36:08 +01:00
Jorge Miguel Lobo Escalona
4225245789
F OpenNebula/One#6120: fix view zones fireedge (#2972)
Signed-off-by: Jorge Lobo <jlobo@opennebula.io>
2024-03-05 18:58:57 +01:00
Jorge Miguel Lobo Escalona
cd33d27cfb
F #5905: Add Support Tab to FireEdge (#2948)
Signed-off-by: Jorge Lobo <jlobo@opennebula.io>
2024-02-22 13:50:44 +01:00
vichansson
3d59f15a41
F OpenNebula/one#5388: Add OneFlow tabs (#2915)
Signed-off-by: Victor Hansson <vhansson@opennebula.io>
2024-02-05 14:11:27 +01:00
Jorge Miguel Lobo Escalona
8db778d1e7
F #6118: vnet template (#2890) 2024-01-11 10:53:38 +01:00
Tino Vázquez
4bb6d9310d
M #–: Remove odd indentation 2024-01-08 19:14:16 +01:00
David
863ed452f7
F OpenNebula/one#6119: Add Cluster tab (#2885) 2024-01-05 11:43:23 +01:00
David
b4e35e34a5
OpenNebula/one#6124: ACL tab (#2878) 2023-12-22 12:44:52 +01:00
David
679455158a
F OpenNebula/one#6122: Groups tab (#2825)
Co-authored-by: vichansson <vhansson@opennebula.io>
Co-authored-by: Tino Vázquez <cvazquez@opennebula.io>
2023-11-20 18:00:18 +01:00
Jorge Miguel Lobo Escalona
5f0d555d07
F #6323: BackupJobs tab in FireEdge (#2798) 2023-11-02 16:27:02 +01:00
vichansson
c461d30846
F OpenNebula/one#5901: Add VmGroup Tab (#2775) 2023-10-18 16:33:24 +02:00
Jan Orel
b4ebee7ff0
B #6318: OneProvision: update equinix provider (#2735)
- no more facility, use metro
 - don't use ancient packet gem
2023-09-18 17:10:34 +02:00
Ruben S. Montero
bc1086c3e2
F #6725: Install external sched example 2023-09-14 12:11:14 +02:00
vichansson
44204ebf05
F OpenNebula/one#6121: Add users tab (#2707) 2023-09-06 19:30:01 +02:00
Jorge Miguel Lobo Escalona
618062f0ea
F #6063: BackupJobs tab for RSunstone (#2714)
Co-authored-by: Pavel Czerny <pczerny@opennebula.io>
2023-09-06 19:02:27 +02:00
Ruben S. Montero
7a77dff659
F #1636: Add KVM_CPU_FEATURES to Virtual Machines
Add support to <feature> element for the virtual cpu (see [1]). It
includes:

* A new probe that gets the supported features of the hypervisor CPU
  using virsh capabilities.
* Generate AUTOMATIC_REQUIREMENTS if the CPU_MODEL/FEATURES is present.
  Note that a MODEL needs to be set for this to work (libvirt error otherwise is:
  "XML error: Non-empty feature list specified without CPU model...")

[1] https://libvirt.org/formatdomain.html#cpu-model-and-topology

Example
--------------------------------------------------------------------------------

* Template configuration:

CPU_MODEL = [
    MODEL    = "host-passthrough",
    FEATURES = "ss,vmx,tsc_adjust"
]

* Generated AUTOMATIC_REQUIREMENTS in the VM:

AUTOMATIC_REQUIREMENTS="(CLUSTER_ID = 0) & !(PUBLIC_CLOUD = YES) & !(PIN_POLICY = PINNED) & (KVM_CPU_FEATURES = \"*ss*\") & (KVM_CPU_FEATURES = \"*vmx*\") & (KVM_CPU_FEATURES = \"*tsc_adjust*\")"

* Generated deployment file:

<cpu mode='host-passthrough'>
    <feature policy='require' name='ss'/>
    <feature policy='require' name='vmx'/>
    <feature policy='require' name='tsc_adjust'/>
</cpu>

* Information gathered by the probe:
...
MONITORING INFORMATION
ARCH="x86_64"
CGROUPS_VERSION="2"
...
KVM_CPU_FEATURES="ss,vmx,pdcm,osxsave,hypervisor,tsc_adjust,clflushopt,umip,md-clear,stibp,arch-capabilities,ssbd,xsaves,pdpe1gb,ibpb,ibrs,amd-stibp,amd-ssbd,rdctl-no,ibrs-all,skip-l1dfl-vmentry,mds-no,pschange-mc-no"
KVM_CPU_MODEL="Skylake-Client-noTSX-IBRS"
...

co-authored-by: Neal Hansen <nhansen@opennebula.io>
2023-09-01 14:10:30 +02:00
Jorge Miguel Lobo Escalona
b06bd9a5ff
F #6123: Add VDC tab to FireEdge Sunstone (#2661)
Co-authored-by: Frederick Borges <fborges@opennebula.io>
2023-07-12 11:22:28 +02:00
Ruben S. Montero
6bbfbb03e4
F #6063: Backup Jobs for OpenNebula
Includes the following changes:
- xml-schema for Backup Job and Scheduled Actions
- GO, Java api
- Deprecate onevm update-chart, delete-chart
    * The commands are replaced by sched-update and sched-delete
    * Refactor method deprecate_command, it's still possible to run the
    command
    * Delete 'shutdown' and 'delete' commands deprecated years ago
    * Fix --verbose option for sched-update and sched-delete
- Re-implementation of scheduled actions, now are managed and executed
  by oned
- Backup Job objects, API, and CLI commands
2023-07-03 18:15:52 +02:00
Daniel Clavijo Coca
fafc1e0a94
B OpenNebula/one#6173: Include missing actions in firecracker driver 2023-05-10 16:24:31 +02:00
Frederick Borges
0555b272c0
F OpenNebula/one#6095: Add datastore tab (#2565) 2023-03-24 10:57:13 +01:00
Ruben S. Montero
a9da75db0e
F #6030: Cancel backup operation
Author: Pavel Czerny <pczerny@opennebula.systems>
Author: Michal Opala <mopala@opennebula.io>
(cherry picked from commit f12c365d3e)
2023-03-16 13:11:27 +01:00
Michal Opala
1458fd7ca4
F #6029: Add rsync incremental backups (#2516)
* Fix rsync datastore monitoring
* Add increment flatten for rsync backups
* Fix/Refactor rsync restore action handler
* Fix/Refactor rsync rm action handler
* Add dedicated downloader code for rsync

(cherry picked from commit f4eee21924)
2023-02-21 17:19:35 +01:00
Jorge Miguel Lobo Escalona
5b8bafcd6e
M #~: add views security groups master (#2500) 2023-02-13 18:36:03 +01:00
Ruben S. Montero
8cb3a360b8
F #6029, #6074: Retention and restore opetions for incremental backups
* Introduce support to follow KEEP_LAST for incremental backups.
  - New increment_flatten action added for backup datastores.
  - increment_flatten will consolidate KEEP_LAST increments into the
    current first increment in the chain.
  - increment_flatten MUST return the new chain (inc1:source1,...) and size
    of the new first increment (FULL) in the chain.

* Downloader logic for restore has been extracted from downloader.sh to
  reuse the increment flatten logic. A new command restic_downloader.rb
  process restic:// pseudo-urls.

* Restore process uses two new attributes to customize the restore
  process:
  - NAME to be used as base name for images and VM Template
  - INCREMENT_ID to restore disks from a given increment (not always the
    last one)

* Common logic has been added to BackupImage class (backup.rb)

* Includes the following fixes:
  - Fix when increment includes blocks larger than max qemu-io request size
  - Fix IMAGE counter for quotas on backup images
  - Fix rsync restore NO_IP / NO_NIC attributes

TODO:
* Mimic increment_flatten logic and restore images on the backup server
* Suntone restore options

co-authored-by:Michal Opala <mopala@opennebula.io>
2023-02-07 13:19:03 +01:00
Ruben S. Montero
9489d0aac2
F #6057: Confine backup commands
- New TransferManager::Datastore class with confine helpers
- "Confinement" methods for backup file preparation and backup:
  * ionice/nice
  * systemd slice

- IONICE/NICE
  * Execute commands under a given nice and ionice (class 2)
  * The following variables can be set
    - RESTIC_NICE
    - RESTIC_IONICE
    - RSYNC_NICE
    - RSYNC_IONICE

- Systemd Slice
  * A user slice is created for each datastore that set:
    - CPUQuota
    - IOReadIOPSMax
    - IOWriteIOPSMax

    This requires delegation of io/cpu/cpuset controllers to oneadmin
    Also VM folder needs to be local (e.g. not an NFS volume).
  * Commands are passed specific environment (e.g. SSH agent socket)
  * The following variables can be set:
    - RESTIC_MAX_RIOPS
    - RESTIC_MAX_WIOPS
    - RESTIC_CPU_QUOTA
    - RSYNC_MAX_RIOPS
    - RSYNC_MAX_WIOPS
    - RSYNC_CPU_QUOTA

The new interface is added to file (qcow2/shared/ssh) and ceph TM
drivers.

(cherry picked from commit 276f093073)
2023-01-21 14:08:43 +01:00
Tino Vázquez
3376afdaf0
M #-: Bump year 2023 2023-01-09 12:23:19 +01:00
Michal Opala
777b5fd6f0
B #-: Drop the /etc/one/onegate-proxy.conf file (onecfg fix) (#2407) 2022-12-07 09:25:48 +01:00
Ruben S. Montero
f599d813ca
M #5989: Add missing files
- Add update_nic operation to all drivers, linked to dummy (no actual
  operation will be performed, but the network will be updated)
- Add missing update_nic in bridge driver
2022-12-05 14:14:18 +01:00
Ruben S. Montero
865908de1c
F #5989: Live update of Virtual Network attributes
co-authored-by: Pavel Czerný <pczerny@opennebula.systems>
co-authored-by: Frederick Borges <fborges@opennebula.io>
co-authored-by: Christian González <cgonzalez@opennebula.io>

* VNET updates trigger a driver action on running VMs with NICs in the
  network.

* VNET includes a sets with VM status: updated, outdated, error and
  updating. With VMs in each state.

* VNET flags error situations with a new state UPDATE_FAILURE.

* The same procedure is applied when an AR is updated (only VMs in that
  AR are updated).

* A new options in the one.vn.recover API call enable to recover or
  retry this VM update operations.

* The following attributes can be live-updated per VNET driver:
    - PHYDEV (novlan, vlan, ovs driver)
    - MTU (vlan, ovs driver)
    - VLAN_ID (vlan, ovs driver)
    - QINQ_TYPE (ovs driver)
    - CVLANS (ovs driver)
    - VLAN_TAGGED_ID (ovs driver)
    - OUTER_VLAN_ID (ovs driver)
    - INBOUND_AVG_BW (SG, ovs driver + KVM)
    - INBOUND_PEAK_BW (SG, ovs driver + KVM)
    - INBOUND_PEAK_KB (SG, ovs driver + KVM)
    - OUTBOUND_AVG_BW (SG, ovs driver + KVM)
    - OUTBOUND_PEAK_BW (SG, ovs driver + KVM)
    - OUTBOUND_PEAK_KB (SG, ovs driver + KVM)

* New API call one.vm.updatenic, allows to update individual NICs
  without the need of detach/attach (only QoS supported).

* Update operations for: 802.1Q, bridge, fw, ovswitch, ovswitch_vxlan
  and vxlan network drivers.

* VNET attributes (old values) stored in VNET_UPDATE to allow
  implementation of update operations. The attribute is removed after a
  successful update.

* Updates to CLI onevnet (--retry option) / onevm (nicupdate command)

* XSD files updated to reflect the new data model

* Ruby and JAVA bindings updated: new VNET state and recover option, new
  VM API call.

* Suntone and Fireedge implementation (lease status, recover option, new
  states)

TODO: Virtual Functions does not support this functionality

iii
2022-11-16 15:06:49 +01:00
Pavel Czerný
de8c7b7869
F #5516: Dummy drivers for backup (#2350)
* Dummy drivers for backup/restore
* Sync backup ADMIN rights with oned.conf
2022-11-16 09:27:03 +01:00