2047 Commits
Author SHA1 Message Date
Tino Vázquez ed5f655af1 L #-: Rubocop 1.71.0 2025-01-23 13:24:41 +01:00
Guillemo RamosandRuben S. Montero 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. MonteroandPavel Czerny 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 e379bd6684)
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. RuizandVictor Palma 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 RamosandRuben S. Montero 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 OrelandTino Vázquez 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
Jan Orel d8de623004 M #-: Remove firecracker from provision (#3165) 2024-07-24 12:07:44 +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
Ruben S. Montero 09dc730329 M #-: Remove pg gem and update the locks
Author: Jan Orel <jorel@opennebula.io>
2024-07-17 16:20:22 +02:00
Ruben S. Montero 033ac01567 F #6653: Remove Postgresql dependencies 2024-07-17 12:58:37 +02:00
Pavel Czerný a3c83b8112 B OpenNebula/one#6630: Fix host.xsd (#3143)
* xs:all element doesn't allow maxOccurs="unbounded" in child node

(cherry picked from commit 2d49e662e9efb210043ca57d004fa0befcaf0478)
2024-07-10 11:27:33 +02:00
Ruben S. Montero 888cc87c68 F #6397: Minor adjustments to LXC marketplace
- Fix LXC linuxcontainers monitor action (error setting header)
- Update context packages URL reference to point to the new location
- Add lxc marketplace utility to sudoers file (removed in a previous
  commit)
- Remove CentOS from supported OS list in LXC marketplace
  (CentOS9_Stream includes some failures that need further debugging)
2024-07-09 13:43:35 +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
Guillemo Ramos fe8c1ca14a B OpenNebula/one#6630: Add DATASTORES/DS to host.xsd (#3129)
Signed-off-by: Guillermo Ramos <gramos@opennebula.io>
2024-06-27 13:05:44 +02:00
Jan OrelandRuben S. Montero 10664952de M #-: Use one-apps for context download (#3101)
Co-authored-by: Ruben S. Montero <rsmontero@opennebula.org>
2024-06-10 15:47:12 +02:00
Ruben S. Montero 286604a3b5 M #-: Add DNS attribute to the default inherit attribute set 2024-06-07 12:38:46 +02:00
Pavel Czerný 2fe396ae15 L #-: Add Astyle linting
* Add AStyle to smoke tests
* Format C++ files using AStyle
2024-06-03 11:40:24 +02:00
Pavel Czerný 1a320ba8e0 F #6523: Store disk IDs in Backup Image (#3075) 2024-05-27 17:24:31 +02:00
Jan Orel 4da8c1cb52 B #6587: Switch to opennebula-augeas gem (#3079)
Switch to OpenNebula fork of the discontinued augeas gem.
2024-05-27 16:20:09 +02:00
Tino Vázquez 3fd8268ddc L #-: Lint for rubocop 1.64.0 2024-05-23 12:27:22 +02:00
Pavel Czerný 3fa5c0b041 M #-: Update VM states graph (#3068)
Add states:
* Backup (poweroff)
* Restore
* Hotplug_nic_poweroff
* Disk resize (poweroff, undeployed)
* Saveas (suspended, stopped)

Keep the states-simple simple, ignoring some transient transitions from poweroff, stopped, suspended and undeployed states
2024-05-22 09:34:03 +02:00
AletibazoandTino Vázquez 1f9b15cd95 B OpenNebula/one#6487: Fix SPARSE parameter ignored (#3033)
in TM cloning script 

- Added function get_ds_attribute to tm_common.sh to get a given attribute from a Datastore
- Using falloc preallocation mode on the qemu-img commands since it is faster than using full preallocation
- Note the cloning script when using the TM_MAD = ssh does not use qemu-img command. Instead it uses the tar command, hence it ignores the QCOW2_OPTIONS parameter
- Deleted get_ds_attribute function since it is no longer needed
- SPARSE is inherited from Datastore on oned.conf
- Changed resize statement so it uses same syntax as the clone statement

Signed-off-by: Alejandro Mosteiro <amosteiro@opennebula.io>
Co-authored-by: Tino Vázquez <cvazquez@opennebula.io>
2024-05-08 10:47:11 +02:00