1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-04-09 10:50:08 +03:00

2064 Commits

Author SHA1 Message Date
Pavel Czerný
130bd13394
F #1550: Fix xml-schema (#3484) 2025-03-19 16:05:20 +01:00
Ruben S. Montero
66043b56fc
M #-: Add dummy as supported system datastore
Now dummy drivers are enabled by default in TM and image DS drivers, but
not for system DS. This commit enables 'dummy' for the system DS drivers.
2025-03-19 12:52:49 +01:00
Valentyn Bohdan
0e1069c2e5
F #1550: Split optimize and place scheduler selection (#3480) 2025-03-18 16:32:49 +01:00
Pavel Czerný
63c6969a32
F #1550: DRS automation 2025-03-18 16:24:07 +01:00
Pavel Czerný
f207ae66b2
F #1550: Add action labeling (#3448) 2025-03-14 17:16:49 +01:00
MarioRobres
14516356da
F #1550: Add support for one_drs optimization (#3458) 2025-03-07 14:00:17 +01:00
Pavel Czerný
5f439ebc0c
F #1550: Fix overcommitment, fix crash on exit (#3452)
+ update default config values to match old scheduler
2025-03-07 10:00:21 +01:00
Ruben S. Montero
f881148422
F #1550 - #6885: Support for forecasting probes 2025-03-06 14:35:54 +01:00
Ruben S. Montero
31b38983b8
Revert "M #-: Change default device for CDROM to "sd" (#3429)"
This reverts commit ccdb8f370781bbc3c6b59923413eb70bd492b407.
2025-03-04 13:13:33 +01:00
Jan Orel
ccdb8f3707
M #-: Change default device for CDROM to "sd" (#3429)
As e.g. aarch64 doesn't usually support IDE disk any more
2025-03-03 13:48:24 +01:00
Pavel Czerný
83bcae5c5f
F 1550: Remove unused files from serversync (#3438)
* Remove unused files from serversync
* Add new schedulers folder
* Better error log in case file doesn't exists
* Fix c++ linting
2025-03-03 11:58:06 +01:00
Jan Orel
18506b6388
F #1550: sched/rank.conf for oned.aug and onecfg (#3437) 2025-03-03 10:32:21 +01:00
Ruben S. Montero
edce8d4813
F #1550: Remove hybrid 2025-03-02 20:37:07 +01:00
Ruben S. Montero
9da8ea1a5d
F #-: Remove legacy code for Hybrid Cloud 2025-03-02 17:29:14 +01:00
Tino Vázquez
a64f071808
M #-: Bump year 2025 2025-02-28 11:56:18 +01:00
Ruben S. Montero
eda55567b1
F #1550: New Scheduler Framework for OpenNebula & DRS scheduler
This commits introduces a new framework for OpenNebula, it is based on
standard the OpenNebula middleware access driver (mad) model. Benefits
compared to the current implementation:

* Less overhead on API server and streamlined communications
* Ease integration with third party schedulers
* New "optimize" action to balance the workload of a cluster
* Embedded Plan Manager to apply optimization and deployment plans with
  custom parameters for the scheduling window
* Custom optimization policies per cluster

This commits introduces 2 schedulers:

* Rank scheduler based on the match-making algorithm present in 6.x
  series
* OpenNebula DRS an optimization algorithm based on an ILP solver for
  placement and cluster optimization

Also new API calls has been added for onecluster as well as the CLI
updates to expose them.

co-authored-by: MarioRobres <mrobres@opennebula.io>
co-authored-by: Pavel Czerny <pczerny@opennebula.io>
co-authored-by: Mirko Stojiljkovic <mstojiljkovic@opennebula.io>
co-authored-by: Valentyn Bohdan <vbohdan@opennebula.io>
2025-02-27 16:33:05 +01:00
Tino Vázquez
b7f2209976
L #-: Rubocop 1.7.2.2 2025-02-18 20:24:25 +01:00
Tino Vázquez
ed5f655af1
L #-: Rubocop 1.71.0 2025-01-23 13:24:41 +01:00
Guillemo Ramos
696e69a957
F #6752: AutoNFS (#3331)
This feature auto mounts NFS volumes for datastores. The behavior can be controlled with the following template attributes:

- ANFS_ENABLE: YES/NO to enable the automatic NFS management
- ANFS_HOST: hostname/IP of the NFS server
- ANFS_PATH: of the NFS share for this datastore
- ANFS_OPTS: Comma separated options (fstab-like) used for mounting the NFS shares

The shared drivers also performs a "garbage-collector" like to unmount NFS volumes on the hypervisors when the datastores are deleted. This operation is performed in a "lazy" way, when VMs are deployed on the hypervisor.

* oneimage create: mount/umount DS on demand

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Move sh mount/umount logic to libfs.sh

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* oneimage delete: mount/umount DS on demand

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Limit NFS mount/umount from SH code to 30s

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* oneimage clone: mount/umount DS on demand

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* onevm deploy: mount DS on demand

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Temporal mount only when needed

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* onevm deploy: mount DS on demand (persisten)

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Linter

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* onevm deploy: umount unneeded DS

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Allow mount/umount/sed from sudoers

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Temporal mount: use NFS_AUTO_OPTS

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Do AutoNFS cleanup even during non-related ops

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Final refactor and improvements

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* ro values for Datastore object

* Wording for AutoNFS RO attributes

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* NFS_AUTO_ENABLE: change 'true' to 'yes'

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* sudoers: merge everythng into ONE_NFS

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Quote NFS_AUTO_OPTS

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Fix difference between sudoers specs

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Touch .automounted in AutoNFS mounts

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

* Update sudoers.rb

* Update rm

* Quote bash variable expansion

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>

---------

Signed-off-by: Guillermo Ramos <gramos@opennebula.io>
Co-authored-by: Ruben S. Montero <rsmontero@opennebula.org>
2025-01-20 16:55:22 +01:00
Ruben S. Montero
d2c0104747
F #6342: Support for cluster quotas
This feature adds support for VM quotas at cluster level. CLUSTER_IDS
can be set for a VM quota so the admin can limit the number of resources (e.g. VMs) a
user/group can create in a given cluster.

This commit also fixes:

- B #2226
- B #6823

Co-authored-by: Pavel Czerny <pczerny@opennebula.io>
2025-01-20 09:50:06 +01:00
Guillemo Ramos
d1e6a7c7d8
B #6583: SPARSE attribute considered on resize (#3350)
Signed-off-by: Guillermo Ramos <gramos@opennebula.io>
2025-01-17 13:29:06 +01:00
Valentyn Bohdan
f677b37bbe
F OpenNebula/one#6623: Add snapshot-list cli command (#3362)
Signed-off-by: Valentyn Bohdan <vbohdan@opennebula.io>
2025-01-17 12:59:54 +01:00
Tino Vázquez
ef932b67bd
L #-: Rubocop 1.70.0 2025-01-10 15:46:35 +01:00
Ruben S. Montero
ca36569783
M #-: Added new line and typo for Scaleway 2025-01-02 08:19:09 +01:00
Pavel Czerný
a15f729488
M #-: Resolve cppcheck issues version 2.13 (#3334)
* Fixed performance issues
* Suppresed style issues
2025-01-02 07:02:44 +01:00
Ruben S. Montero
146dfe6a09
F #6669: Support for VLAN filtering and QinQ
This commit adds the following features using the vlan_filter
capabilities of the Linux Bridge:

* 802.1Q driver, support for QinQ. This is not a full implementation
  compared to the vSwitch as there is no native support in the linux
  bridge:
    - VLAN_ID is the (outer/C-VLAN) tag implemented by tagging the
      PHY_DEV interface
    - CVLANS are the customer tags, any other VLAN is filtered out in
      the bridge

* bridge driver, support for vlan filtering (VLAN_TAGGED_ID) only the
  specified tags are allowed in the trunk.

Additionally this commits includes linting of some files.

(cherry picked from commit e379bd66842dc4aa256e1c503ca425553d02bf9b)
2024-12-11 11:38:22 +01:00
Ruben S. Montero
55ad4891e1
F #6756: Fix Scaleway render 2024-12-09 01:40:40 +01:00
Miguel E. Ruiz
2af3757059
F #6756: Scaleway drivers for OneProvision
This is the first version of a ScaleWay drivers for OneProvision. The
drivers include the following features:

- Full support for defining Scaleway zones and regions, predefined files
  for Paris-1, Amsterdam-1 and Warsaw-3.
- Edge cluster based on metal instances
- Flexible IP support for VMs running on Scaleway clusters
- Private networking based on VXLAN and FRR (bgp-evpn). Future versions
  of this driver will consider extending IPAM to use Scaleway private
  networks.
- Playbook includes an /etc/hosts update to support name resolution of
  scaleway instances (needed by libvirt for live migration)

This commit also updates firewall to allow libvirt ports.

co-authored-by: Victor Palma <vpalma@opennebula.io>
2024-12-05 15:51:49 +01:00
Guillemo Ramos
38e28ddfb1
F #5853: fix rhel8 (Ruby<2.7) (#3308)
Signed-off-by: Guillermo Ramos <gramos@opennebula.io>
2024-11-25 15:54:31 +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
Michal Opala
d29681e60b
F OpenNebula/one#6770: Downgrade unf gem (< 0.2.0) for RedHat8 and AlmaLinux8 (#3286) 2024-11-05 09:42:19 +01:00
Tino Vázquez
5aa664fc62
L #-: Remove files to be obsoleted from rubocop 2024-11-04 17:23:56 +01:00
Michal Opala
539a2a6172
F OpenNebula/one#6770: Rebuild gem locks (#3284)
- Remove unused gems: etc, rb-inotify
- Remove unsupported distros: Debian10, Ubuntu1804, Ubuntu2004
- Update RHEL tags: 8.8 -> 8.10, 9.2 -> 9.4
- Update locks for: AlmaLinux8/9, RedHat8/9, Debian11/12, Ubuntu22/24
2024-11-04 16:36:54 +01:00
Jan Orel
842a5e880a
M #-: Revert bump provision repository (#3281) 2024-11-04 13:35:13 +01: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
Pavel Czerný
ff7be13b32
M #-: Bumb DB version (#3222) 2024-09-10 15:56:42 +02:00
Pavel Czerný
7b07def90e
B #6687: Fix monitoring initialization and restart
* Cleanup oned in case of initialization error

* Fix monitoring after onemonitord restart. The code includes a "hook" point in case a driver is re-started so custom code can be executed. InformationManager sends the list of hosts and raft status in this case.

* B #5801: Update error msg, in case of duplicated drivers
2024-09-05 16:25:03 +02:00
Pavel Czerný
cd9eb49321
M #-: Fix *.xsd (#3205)
* Schemas validated by online tool
* Ambiguity errors not solved
2024-09-03 18:45:56 +02:00
Tino Vázquez
0491d23135
M #-: Bump version 6.99.0 2024-09-02 17:15:09 +02:00
Jan Orel
5d6b8571b0
M #-: Install OpenNebula 6.10 in provision (#3195)
Co-authored-by: Tino Vázquez <cvazquez@opennebula.io>
2024-08-26 10:34:42 +02:00
Jan Orel
92541b6da6
M #-: Various oneprovison/ansible updates (#3202)
- allow newer ansible in provision
 - remove unsused files, roles
 - simplify opennebula-node-kvm
 - remove unsued ceonts files,
 - rename yaml -> yml
 - replace `include:` with `include_tasks:`
 - don't restart frr
 - bump Ceph version in HCI to Reef, adopt ceph-opennebula-mon
2024-08-16 11:32:39 +02:00
Pavel Czerný
274ad4fca9
F #6645: Rename vm_crash to vm_qemu_ping (#3189) 2024-08-02 19:19:59 +02:00
Pavel Czerný
4cb89d8032
M #-: Add warning to Sched Action (#3177) 2024-08-01 10:15:44 +02:00
Ruben S. Montero
d1d8d9d0c8
L #-: Do not lint prometheus files 2024-07-31 12:32:52 +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
Jan Orel
1ae1de46dc
M #-: Use latest one-apps release for context (#3171) 2024-07-25 11:03:39 +02:00
Jan Orel
ef7e8bd7b0
M #-: Install OpenNebula 6.9 in provision (#3170) 2024-07-25 10:27:43 +02:00
Jan Orel
88e822c24e
B #-: Fix OpenNebula version in provision (#3164) 2024-07-24 12:08:39 +02:00
Jan Orel
2f47cbe43a
M #-: Bump Ubuntu to 22.04 in Equinix provision (#3166) 2024-07-24 12:08:06 +02:00