53 Commits
Author SHA1 Message Date
Jan Orel b8a7145194 M #-: Run ovirtapi under Puma instead of Apache/Passenger
The oVirt API server no longer runs under Apache/Passenger but as a
dedicated opennebula-ovirtapi.service on top of Puma (from
opennebula-rubygems), listening on ports 80/443 as oneadmin with
CAP_NET_BIND_SERVICE:

  - share/pkgs/services/systemd/opennebula-ovirtapi.service
  - etc/ovirtapi-puma.rb: Puma configuration (threads, binds, TLS cert),
    installed to /etc/one
  - config.ru: the HTTP to HTTPS redirect (except for the PKI resource)
    that the Apache vhost used to do is now a Rack middleware
  - logs go to /var/log/one/ovirtapi.log, logrotate entry added

The PStore databases are opened thread safe, Puma serves requests from
multiple threads (Passenger used one process per request).

Apache/Passenger only files (apache/, bin/, scripts/configure_apache.sh)
are dropped and config/ is renamed to etc/. Certificate generation is
unchanged.
2026-10-26 17:28:48 +01:00
Jan Orel bf4da7f671 F #-: Import OneKS from one-ee-tools 2026-07-22 15:49:53 +02:00
Jan Orel cef1db4ff2 M #-: Drop forced logrotate on service start from systemd units (#4262)
* Fixup path when removing other arch cbc solver
* Drop forced logrotate on service start from systemd units
2026-06-12 11:36:10 +02:00
mkutouskiandJan Orel 4188fe50ad B #7646: Apply log rotation fix to remaining services
Extend the FireEdge log fix to oned, oneflow, oneform, onegate and
onehem so they share the same rotation behavior:

- Add compress / compressoptions -9 / delaycompress to the logrotate
  configs. With copytruncate, delaycompress avoids gzipping the
  freshly-rotated file in the same pass and keeps service restarts
  fast even when ExecStartPre runs logrotate -f.

- Drop the synchronous gzip ExecStartPre loops from each unit. The
  glob (e.g. oneflow*.log) does not match files rotated with
  dateformat -%Y%m%d-%s, so the loop was ineffective, and running
  gzip without backgrounding blocked startup.

- Ship a logrotate config for oneform; the unit was pointing at
  /etc/logrotate.d/opennebula-form but no such file existed, so
  oneform.log was never rotated.

- src/hem/bin/onehem-server: use >> instead of > so restarts via the
  shell wrapper do not truncate the log, matching oneflow / onegate /
  oneform / fireedge wrappers (originally fixed in #6034).

Signed-off-by: Mikalai Kutouski <mkutouski@opennebula.io>
Co-authored-by: Jan Orel <jorel@opennebula.io>
2026-05-11 10:26:58 +02:00
bfccb59244 F OpenNebula/one#7361: Introduce OneForm (#3930)
Co-authored-by: Victor Palma <vpalma@opennebula.io>
Co-authored-by: Miguel E. Ruiz <mruiz@opennebula.io>
Co-authored-by: Ruben S. Montero <rsmontero@opennebula.org>
2025-11-13 17:06:42 +01:00
Jan Orel c1bbbdab28 OpenNebula/one#6720: Remove vcenter, ruby Sunstone
This commits removes two components:

- vcenter driver and associated dependencies
- Ruby Sunstone
2025-03-25 13:13:27 +01:00
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
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 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
Daniel Clavijo Coca e1b5bc6b44 M #-: Allow fireedge to bind to <1024 ports (#3045) 2024-05-06 16:34:24 +02:00
mkutouski af6591e814 B #6282: Fix Incorrect configuration of systemd services (#2831) 2023-11-22 12:45:36 +01:00
vichansson d1c32620ab B #6241: Modified fireedge service file (#2651) 2023-06-26 18:05:48 +02:00
Jan Orel 8689d5d49b B #6034 Fix log rotation (#2415)
* Revert "F #5328: Update logrotate behavior to avoid long restarts (#2275)". This reverts commit 6b1127f180.

* B #5328: Don't wait for log compressing
* B #6034: Don't overwrite logs

While having already `copytruncate` in logroate we don't need to implement signaling and re-openning files.

* L #-: Linting
2022-12-12 11:50:54 +01:00
Jan Orel f002812c9f B #-: Cleanup ssh-agent socket before starting (#2413)
When (for whatever reason) opennebula-ssh-agent gets killed
it leaves existing socket and following start fails with

opennebula-ssh-agent[2333]: unix_listener: cannot bind to path /var/run/one/ssh-agent.sock: Address already in use
2022-12-09 16:22:11 +01:00
Michal Opala 0d5f9280a8 F #5973: Add OneGate proxy service (#2281)
* Update install_gems (async.io, etc, rb-inotify)
    - make install_gems script more verbose
    - slightly refactor/simplify update_locks script
    - add async.io, etc and rb-inotify gems
    - update gem locks for: AlmaLinux8/9, CentOS8
    - update gem locks for: Debian10/11, Ubuntu1804/2004/2204

* onegate-proxy:
    - ruby code and default config (169.254.16.9 to avoid conflicts)
    - install.sh script
    - logrotate and systemd onegate-proxy configs
    - onecfg configs
2022-11-14 20:48:30 +01:00
onenhansen 6b1127f180 F #5328: Update logrotate behavior to avoid long restarts (#2275) 2022-09-12 18:57:07 +02:00
Alejandro Huertas Herrero 307a6bb153 B #5189: fix typo (#2160) 2022-06-17 11:48:25 +02:00
Alejandro Huertas Herrero c37f2105bd B #5189: remove left lock file (#2159) 2022-06-16 18:57:07 +02:00
Alejandro Huertas 654990e0ea F #1149: add systemd units SyslogIdentifier 2022-05-09 13:42:50 +02:00
Vlastimil Holer d0f13f283e F #5555: Improve Sunstone systemd hardening (#1529)
- Set CAP_NET_BIND_SERVICE capability to allow binding to 80
- Hide directories with SSH keys
2021-10-15 16:44:11 +02:00
fuu0andVlastimil Holer 4740c83458 F #5555: Secutiry options to Sunstone systemd unit
Co-authored-by: Vlastimil Holer <vholer@opennebula.io>
2021-10-11 14:48:25 +02:00
Vlastimil Holer fb67699091 M #-: Enforce custom library path for guacd (#983) 2021-03-16 17:40:21 +01:00
Petr Ospalý 588bfb7eb6 M #-: Remove exit timeout exception for FireEdge
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2021-03-12 17:10:29 +01:00
Tino Vázquez 31f8df8ff8 F #5257: Remove econe server (#901)
* F #5257: Remove econe server

Also, disable hybrid section by default in Sunstone

* F #5257: Revert onecfg change

* remove amazon-ec2 unneeded gem
* remove file no longer present from install.sh
2021-03-02 20:34:57 +01:00
Petr Ospalý 04273ca9d3 F OpenNebula/one#5178: Update supervised services (#798) 2021-02-11 19:22:41 +01:00
Petr Ospalý 3456cbf3a5 F OpenNebula/one#5178: Fix race with ssh-agent (#748)
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2021-02-03 22:52:40 +01:00
Petr Ospalý 5d7ae36c68 F OpenNebula/one#5178: Add time to supervisord log (#635)
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2021-01-13 19:09:49 +01:00
Petr Ospalý 10fa7ca4ce F OpenNebula/one#5178: Add onedb upgrade (#606)
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2021-01-11 10:06:14 +01:00
Petr Ospalý fce39e1493 F OpenNebula/one#5178: Ignore logrotate's failure (#585)
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2021-01-05 12:57:28 +01:00
Petr Ospalý 36e6cbe546 F OpenNebula/one#5178: Add logrotate to supervisor (#579)
Enforce logrotate before the start of any opennebula's supervisor
service - as is done similarly in the systemd services.

Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2020-12-21 18:56:40 +01:00
Petr Ospalý 5d066ea8f4 F OpenNebula/one#5178: Add optional configs (#574)
Each supervisord service (where missing or usable) can use its own
config file which will be sourced. Thanks to this services do not rely
on properly populated environment with all needed variables.

Useful when supervisord is run like this:
% env -i /usr/bin/supervisord

Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2020-12-18 13:12:29 +01:00
Petr Ospalý bb0b4aa526 B OpenNebula/one#5086: Add fuse support (#541)
This commit solves issues with creating new VM images based on the
docker images inside a container environment.

If fuse2fs command is present then prefer its use instead of the default
mount command which will work only under root or otherwise privileged
user.

This commit solves the mounting issue inside the rootless container
environment.

Also add a new environment file to the oned supervisord service so we
can start oned process with some additional env. variables - notably
DOCKER_HOST.

Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2020-12-10 17:30:27 +01:00
Petr Ospalý 4d9a0fd5fc B #5189: Remove oned's stale lock in supervisord (#522)
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2020-12-04 10:54:54 +01:00
Petr Ospalý 2edcdae638 F OpenNebula/one#5178: Add docker services (#511)
- New supervisord service containerd
- New supervisord service docker
- Small fix in function.sh to pick up also socket files

Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2020-12-02 15:25:49 +01:00
Petr Ospalý ff2cb0ab6d B #5189: Add stopwaitsecs to supervisord services (#496)
By default supervisord waits only 10s before it sends SIGKILL to its
services. This commit raises this limit to 90s in all services -
matching the default in systemd (DefaultTimeoutStopSec).

Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2020-12-01 09:58:49 +01:00
Petr Ospalý c65a119a2e F OpenNebula/one#5178: Add stunnel service (#481)
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2020-11-26 17:21:38 +01:00
Vlastimil Holer 5358eeba7a F #5178: Fix +x permissions to supervisord scripts (#422) 2020-11-13 19:44:47 +01:00
Petr Ospalý 96aab61096 M #-: Fix paths and locations for fireedge/guacd (#411)
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2020-11-11 18:35:00 +01:00
Petr Ospalý fa22e988b0 M #-: Add supervisord services fireedge, guacd (#389)
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2020-11-06 11:43:18 +01:00
Vlastimil Holer 16f5499fd6 F #3951: Systemd service opennebula-guacd (#376) 2020-10-29 16:13:06 +01:00
Vlastimil Holer 6311392a0b F OpenNebula/one#3951: FireEdge package-lock.json, service (#333) 2020-10-19 19:02:02 +02:00
Petr OspalýandVlastimil Holer 6fb4b2acd2 M #-: Add supervisord services definition (#269)
* M #-: Add supervisord services definition

Currently only for CentOS 8 but there should be needed only few changes
to make it work on other systems: crond, apache/httpd, mysql/mariadb...

The rest is pretty much system agnostic.

Signed-off-by: Petr Ospalý <pospaly@opennebula.io>

* M #-: Adjust supervisor directories

Co-authored-by: Vlastimil Holer <vholer@opennebula.io>
2020-09-30 17:27:20 +02:00
Vlastimil Holer 7a837b081f B #4939: Schedule ssh-socks-cleaner by OnCalendar (#32) 2020-06-22 15:21:57 +02:00
Vlastimil Holer 830045e17e F #1473: Conditional service with SELinux workaround (#4871) 2020-06-03 13:39:24 +02:00
Petr Ospalý 365d1955ff F #865: Add oneshowback compute timer
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2020-05-22 03:00:32 +02:00
Petr OspalýandVlastimil Holer a96de2f14a F #1473: Update SSH config and sockets (#4733)
* F #1473: Update SSH config and sockets

- install files via install.sh script
- replace crontab with systemd timer
- update opennebula.service dependency
- move ssh master sockets from ~oneadmin to /run/one/ssh-socks
- modify ssh wrapper to not use external programs but only bash builtins
- update ssh configs

Signed-off-by: Petr Ospalý <pospaly@opennebula.io>

* F #1473: Update SSH config and sockets

* F #1473: Update SSH config and sockets

* F #1473: Update SSH wrapper

- rename SSH_USE_MASTER_SOCK to SSH_OPT_CONTROL_MASTER
- change the logic of this directive to be a value of the SSH
  'ControlMaster' option (default is 'auto')
- delete the SSH_USE_MASTER_SOCK from opennebula.service (not needed
  anymore)

Signed-off-by: Petr Ospalý <pospaly@opennebula.io>

Co-authored-by: Vlastimil Holer <vholer@opennebula.io>
2020-05-15 18:51:04 +02:00
Petr Ospalý 523eff2a77 F #1473: Fix SSH persistent connections (#4724)
- add ssh wrapper which is used only on the fronted
- disable SSH master socket on the nodes
- add new PATH and SSH_USE_MASTER_SOCK into opennebula.service

Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2020-05-13 21:34:38 +02:00
Petr Ospalý 59426dd8fd F #2152: Improve SSH agent service unit (#4627)
- change /run/one to /var/run/one - /run/one is either bind-mount or
  symlink and can be changed while /var/run/one is configured via
  tmpfiles.d/opennebula*.conf - it is more consistent now
- add a dependency to SSH agent unit for remote-fs in the cases when
  /var/lib/one (oneadmin's home) is on a network filesystem
- add SSH agent support to opennebula-hem service

Signed-off-by: Petr Ospalý <pospaly@opennebula.io>
2020-04-29 14:59:46 +02:00
Vlastimil HolerandPetr Ospalý 1e0b6d2aa9 F #2152: Add OpenNebula SSH agent support (#4597)
Signed-off-by: Petr Ospalý <pospaly@opennebula.io>

Co-authored-by: Petr Ospalý <pospaly@opennebula.io>
2020-04-23 19:37:27 +02:00
Ruben S. Montero 5cc301f482 Revert "B #-: Switch to KillMode=mixed (#4486)"
This reverts commit 1b90cb10f3.
2020-04-08 17:25:36 +02:00