Commit graph

53 commits

Author SHA1 Message Date
Steve Baker
beaaf405d3 Add ironic-novncproxy service
This is a forklift of the nova novncproxy service to act as the noVNC
front-end to graphical consoles.

The service does the following:
- serves noVNC web assets for the browser based VNC client
- creates a websocket to proxy VNC traffic to an actual VNC server
- decouples authentication traffic so that the source server can have
  a different authentication method than the browser client

The forklifted code has been adapted to Ironic conventions, including:
- [vnc] config options following Ironic conventions and using existing
  config options where appropriate
- Removing the unnecessary authentication method VeNCrypt, leaving only
  the None auth method.
- Adapting the ironic-novncproxy command to use Ironic's service launch
  approach, allowing it to be started as part of the all-in-one ironic
- Replace Nova's approach of looking up the instance via the token.
  Instead the node UUID is included in the websocket querystring
  alongside the token
- Removing cookie fallback when token is missing from querystring
- Removing expected protocol validation in the websocket handshake
- Removing internal access path support
- Removing enforce_session_timeout as this will be done at the
  container level

Related-Bug: 2086715
Change-Id: I575a8671e2262408ba1d690cfceabe992c2d4fef
2025-02-19 20:17:57 +00:00
Zuul
4cbd353c5e Merge "trivial: remove libpq from bindep file" 2024-11-18 18:18:40 +00:00
Zuul
e13f593f37 Merge "Add support for Ubuntu 24.04" 2024-11-18 15:20:37 +00:00
Julia Kreger
e3953b845e trivial: remove libpq from bindep file
As noticed on If6e4432b000996789346a1f7449410cfc8497fe1
libpq is likely not needed in the jobs. As such, removing.

Change-Id: I16cdd1f84f8fe1bdb8fe08536ae2a7d7ef6a70a9
2024-11-14 13:06:48 -08:00
Jay Faulkner
466cd3902c Remove postgresql testing and documentation
Ironic has maintained a CI job for years after postresql support was
deprecated in order to prevent unintentional breakage of that support.
Now, we have confirmed evidence that other openstack components, such as
keystone, required for testing this postgresql support no longer
function in this job.

As a result, ironic can no longer test postgresql support. Operators
utilizing postgresql who have not yet migrated must migrate now.

Change-Id: If6e4432b000996789346a1f7449410cfc8497fe1
2024-11-12 14:41:04 -08:00
Riccardo Pittau
e7fc5c93ab Add support for Ubuntu 24.04
Depends-On: I699d26d44e2cb8b40f3f87557762c696ea9a7ac8
Change-Id: I61e5cf4dbf81b5914fd9b7922e62721e45fed658
2024-11-12 12:39:45 +01:00
Zuul
21d6133fa1 Merge "Remove trailing whitespace" 2024-11-04 11:11:48 +00:00
Jay Faulkner
045249f60d Remove trailing whitespace
Trailing whitespace is soon to be caught by the global pre-commit
linter changes. This fixes this issue in anticipation of that lint.

Change-Id: I48597afde4c55775ccca56f927c30ca4f3465523
2024-10-29 14:55:44 -07:00
Julia Kreger
fde2cd608e CI: Change 4k block device job to use LVM
An interesting, and frustrating aspect of 4k block devices is that the math begins
to be impacted across the whole of the useage of the device.
Specifically the LVM block spacing also begins to be thrown
"out of alignment" which changes user calculations.

Most users doing smaller allocations likely won't matter, but users doing
thin volumes or filling the percentage of the remaining usable volume, also then
break.

So realistically, the best path to ensure we have appropriate 4k device testing,
and our dependent tooling in diskimage-builder is also getting tested, is to run
the more complex case in our CI job.

This change is dependent upon two other changes which are under review.

Change-Id: I5b23403c783fa84b4158708741524c3dc9a92722
2024-10-24 10:56:31 -07:00
Sharpz7
949387bd80 [codespell] Fixing Spelling Mistakes
This is the first in a series of commits to add support for codespell. This is continuning the process completed in ironic-python-agent.

Future Commits will add a Tox Target, CI support and potentially a git-blame-ignore-revs file if their are lots of spelling mistakes that could clutter git blame.

Change-Id: Id328ff64c352e85b58181e9d9e35973a8706ab7a
2024-02-12 19:58:56 +00:00
Dmitry Tantsur
ad651b328e Remove traces of Docker from devstack dependencies
Change-Id: Ie26fb7c644c6feb547bcdc6d847838d2fed0d31f
2023-06-05 11:30:38 +02:00
Dmitry Tantsur
bbceca562e CI: use a custom cirros partition image instead of the default
Cirros partition images are not compatible with local boot since they
don't ship grub (nor a normal root partition). This change adds a script
that builds a partition image with UEFI artifacts present. It still
cannot be booted in legacy mode, but it's a progress.

Set the tempest plugin's partition_netboot option. We need it to inform
the tempest plugin about the ability to do local boot. This option
already exists but is never set.

Also set the new default_boot_option parameter, which will be introduced
and used in Iaba563a2ecbca029889bc6894b2a7f0754d27b88.

Remove netboot from most of the UEFI jobs.

Change-Id: I15189e7f5928126c6b336b1416ce6408a4950062
2022-02-16 10:12:06 +01:00
Dmitry Tantsur
f85f649136 Install isolinux on devstack
It is required for virtual media BIOS booting.

Clean up old bindep tags.

Change-Id: I345e5b5287594e62ac7a8abb4de3add242120dfd
2021-12-03 17:50:52 +01:00
Julia Kreger
f205e7d2be Remove debian packages file for devstack
This file duplicages devstack's load of bindep for the ironic
repository. As bindep is the authortative file, removing the
legacy way of installing packages from ironic.

Also revises the bindep file to explicitly remove the devstack
group, as it is all devstack.

Change-Id: Ida7ca230069fc0e4f54bde2fc6fffdc9eb0bdcc2
2021-10-08 10:40:07 -07:00
Julia Kreger
c1e355011c Remove legacy rpm install list and use bindep
The legacy rpm install list is out of date and includes
packages which no longer exist in newer distribution builds.

This functionality was entirely replaced by bindep, which is
*the* authortative file for things like this. The major difference
is the separate bindep file can't include mysql, or we break
devstack \o/.

Change-Id: Ic86f6efdf75fc2871c03e21b7f9166192b0f212c
2021-09-24 09:44:50 -07:00
Riccardo Pittau
daca490226 Follow up of fix uefi jobs with ovmf native ubuntu package
Following up on comments from https://review.opendev.org/716889

Change-Id: I805a65478f469b1b4e25c1bf2397f034f61d6ec7
2020-07-07 12:04:56 +02:00
Riccardo Pittau
aac89c2149 Fix uefi jobs with native ubuntu ovmf package
The ovmf pacakge in bionic doesn't really work in our CI.
As a workaround we use the old package from xenial, but we can't keep
using it also in Ubuntu Focal.
This patch aims to convert the uefi jobs to use Ubuntu Focal as
base operating system and use the native ovmf package.

Story: 2007785
Task: 40025

Change-Id: I653e5da2672b14eae88c6cab923b8617432f1dc1
2020-07-02 17:10:36 +00:00
Kaifeng Wang
373f428fc2 Make qemu hook running with python3
This switches the piece of code turns on multicast [1] to run with
python3.

[1] https://review.opendev.org/#/c/665221

Change-Id: I12d3764d087fa19aca5b285cbd63a19b1770bb41
2020-01-07 09:29:59 +08:00
michaeltchapman
2231a93444 Don't install syslinux-nonlinux on rhel7
the syslinux tools are in the syslinux package on
rhel7 and friends, but in rhel8 have moved to
syslinux-nonlinux

Change-Id: Iea74c2be6fbd738f35f178fa189384dd37579277
2019-11-21 01:22:37 +11:00
Ilya Etingof
1e25f60fd3 Ensure isolinux.bin is present and configured in devstack
When devstack boots a node over virtual media in BIOS boot mode,
`isolinux.bin` boot loader needs to be present for grilling hybrid
ISO images.

This patch makes devstack pulling necessary packages and configure
ironic accordingly.

Change-Id: I2f4e582aa05fc54610a4c43695124219714368c2
2019-11-11 15:53:49 +01:00
Michael Davies
c9349c194a Devstack: Fix iPXE apache log location bug
Make the apache log directory configurable, based upon which
operating system this is running on. This is needed as ironic
devstack is broken on Red Hat-related operating systems as a
result.

Change-Id: I22e04d886219755a38b1e895c2c6f9d756535cab
Story: 2006577
Task: 36689
2019-09-20 06:16:30 +09:30
Dmitry Tantsur
7a0f8698a1 devstack: save iPXE httpd logs
Change-Id: I3ad5ee77a2e2e8613316b1e935256d5ba0394420
2019-09-04 13:16:12 +02:00
Ilya Etingof
9fab96fc37 Add Redfish Virtual Media Boot support
This patch introduces standard Redfish virtual media boot
support to ironic.

The patch implements basic boot interface features along with
devstack plugin support for virtual media boot. Functionally,
redfish boot interface supports the same set of features as PXE.

Unlike other virtual media boot implementations (e.g. iLo), this
patch does not require user-built deploy/rescue/boot ISO images
for virtual media boot. Instead, ironic will build necessary images
out of common kernel/ramdisk pair (though user needs to provide
ESP image).

Story: 1526753
Task: 10389
Co-Authored-By: Shivanand Tendulker <stendulker@gmail.com>
Change-Id: I0db0a64c5ccf260f5a0695dbe994af1e11f71517
2019-08-14 14:19:03 +02:00
Mike Turek
bc84b7bce6 devstack: Install arch specific debs only when deploying to that arch
Because the shim and grub-efi-amd64-signed packages are specific to
x86_64 [0][1], they should only be installed when deploying to an x86_64 node.
This removes the packages from the debs/ironic file and moves their
installation to lib/ironic, allowing us to install it them based on architecture.

[0] https://packages.ubuntu.com/eoan/shim
[1] https://packages.ubuntu.com/eoan/grub-efi-amd64-signed

Change-Id: I73cab832cf8099c02b3e29df84618c88e5fb5065
2019-07-01 14:59:50 +00:00
Julia Kreger
c59dc1386f Update qemu hook to facilitate Multicast
mdns AND IPv6 Neighbour Discovery Protocol use multicast packets
and the macvtap interface drops these packets by default.

Since there is no way to tell libvirt to make this better,
lets at least use the hook to make the macvtap interface
change such that multicast packets will pass.

With this, iPXE should work... and mdns should be testable in CI.

Change-Id: I397d211675fd7668b8fd19e989d740d6bad2c70e
2019-06-14 14:19:40 -07:00
Julia Kreger
55e8d3fde1 Add a pxe/uefi/grub2 CI job
Fixes the grub2 based devstack logic and adds a grub2 CI job
such that the ironic team can safely clean-up some of the PXE
code without fear of breaking the grub2 scenario.

Story: 2003936
Task: 27724
Change-Id: Ieb395bf35e2689741a243c11b56d08a237b200bc
2019-06-05 14:21:13 -07:00
Michael Turek
c2588c4de4 devstack: Remove syslinux dependency
syslinux should no longer be required by any arch. This patch removes
the dependency.

Change-Id: Id4aea9acb9bf4ac34c0d5e9bca27fb48ea1b009a
2019-04-15 14:28:48 +00:00
Riccardo Pittau
ab33772600 Update dist filter for devstack ubuntu
Updating filter for supported ubuntu distributions in the
list of packages that need to be installed.

Change-Id: I92110a6185f2401e97b6376c50afdfe479cb5def
2019-03-11 17:11:09 +01:00
Jens Harbott
296480961d Drop installing python-libvirt system package
Pip will install libvirt-python later in the process and with pip >= 10
it will fail to remove the system version.

Change-Id: I33be5426ce8ff2301d28096af11a1023b8048a15
Needed-By: https://review.openstack.org/#/c/561597
2019-03-01 17:40:51 +00:00
Derek Higgins
1ba142a05f Restore the nova-api redirect
This was disabled when grenade switched to using rocky
as its base install as it didn't work with wsgi. Restore it
using a version that compatable with WSGI.

Task: #26604
Story: 2003808
Change-Id: I968339b48191df46a44f45c1794478aa0d1039f6
2018-09-24 10:08:29 +01:00
Vasyl Saienko
b27396db66 [devstack] Switch ironic to uWSGI
This patch switches ironic API to run under uwsgi,
and drops support for running ironic API under mod_wsgi
from ironic's devstack plugin.

It also effectively moves all jobs except grenade ones to
run ironic-api under UWSGI as we start to honor the devstack's
ENABLE_HTTPD_MOD_WSGI_SERVICES variable (which is True by default).

The new variable in devstack plugin to toggle deployment with uwsgi
is IRONIC_USE_WSGI, which defaults to (now confusingly named)
IRONIC_USE_MOD_WSGI for backward compatibility.

Related-Bug: #1719260
Co-Authored-By: anascko <ovoshchana@mirantis.com>

Change-Id: I9ef3aa48db6efe8e2216af785cc13fdb7f754a02
2018-04-17 19:22:12 +03:00
Jim Rollenhagen
28a165fae4 Devstack: install qemu-system-x86 on RHEL
This wasn't installed for me on a devstack run on a fresh RHEL 7.4 box.
Make sure it's installed as we depend on it by default.

Change-Id: I4faadb2d73afd298ffb1b7690b23f72800123f77
2018-01-03 14:41:48 -05:00
Dmitry Tantsur
fe2102f90c [devstack] stop setting or relying on standard properties
This change moves our devstack plugin away from using the old
scheduling properties: memory_mb, local_gb and cpus. Nova will
stop using them for scheduling in Queens.

The cpu_arch property is left intact, as it's still useful.

The Placement API is polled to determine when nodes are fully exposed
to nova instead of polling the hypervisor stats. cURL + jq are used,
as the Placement OSC plugin is not ready yet.

Change-Id: I497a992bd86e8a359f333d6936621d1136d68061
2017-11-07 14:54:37 +01:00
Vasyl Saienko
fdf6f89a23 [Grenade]: Do not run ir-api on primary node after upgrade
Ironic upgrade process has pre-requirement that ironic-conductors
should be upgraded before ironic-api. Grenade is launched on primary
node, where we have ir-api and ir-cond runnning. Do not start ir-api
on primary node after upgrade to avoid situation when we have new ir-api
(primary) and old ir-cond (subnode) as it is not allowed by upgrade
procedure. Instead redirect all requests destinied to ir-api on primary
node to subnode.

Depends-On: I026121121059768aa74389add7eee6e63fdb214d

Change-Id: I9e496353a1d3d6547e4881f96fb187e488cff83f
2017-04-28 13:59:07 +03:00
Vasyl Saienko
ab3982eb27 Ensure we install latest libivrt
Recently infra team added UCA repositories and start installing libvirt
from it Ia4434541c71f050fe1ffb54f4c4c1e302391d00b
This patch ensures that libvirt-bin is installed later during stack.sh
phase when new repos are added.

Change-Id: Iab7bb24d0aa89cdbef40b2e60331976325a31cab
2017-04-21 08:53:39 +00:00
Jenkins
5ebc60de42 Merge "Add /baremetal path instead of port 6385" 2017-04-20 21:13:47 +00:00
anascko
c971ceef5a Add /baremetal path instead of port 6385
The long-standing goal in OpenStack is to stop using custom ports for
services and only use subpaths like /identity or /compute. This change
enables the /baremetal subpath in our devstack plugin.

Closes-Bug: #1513005

Change-Id: Iaac8764394a13c4851d2ebbf3b91a380ba2aa49f
2017-04-18 11:03:22 +03:00
Vasyl Saienko
e48375538c Add Ironic standalone tests
This patch adds the following standalone tests:

  * agent_ipmitool + wholedisk image + bios
  * agent_ipmitool + partitioned image + bios
  * pxe_ipmitool + wholedisk image + bios
  * pxe_ipmitool + partitioned image + bios

Partial-Bug: #1660606

Change-Id: Ic04b0f134e20d9937a610a14d7c4128f45738eeb
2017-03-15 16:54:45 +02:00
anascko
5d22cfe1a8 Add wsgi handling to ironic-api in devstack
Adds handling of running ironic API under Apache as WSGI app to
devstack plugin.

New variable IRONIC_USE_MOD_WSGI (False by default) is added.
Another new variable IRONIC_WSGI_DIR (default is distro specific) is
also added, which specifies location for WSGI scripts.

Change-Id: I9c5ad56e1acd292ff0f9cc9b460125fc420abda5
Closes-Bug: #1513005
2017-03-09 16:55:34 +02:00
Lucas Alvares Gomes
7e7ef60763 DevStack: Only install edk2-ovmf on Fedora
Other RPM based distros such as CentOS doesn't have this package
included.

Change-Id: I3adb867855f71e815d6c2e4c72025ae8c1420ae7
Closes-Bug: #1660610
2017-01-31 14:26:18 +00:00
John L. Villalovos
b1b86b6417 Devstack: Create a "no ansi" logfile for the baremetal console logs
In addition to the normal bare-metal console logs that devstack
generates, create a "no ansi" version of the log that will be easier to
view/parse when viewing the logfiles.

Change-Id: Ic321db38f694d82362a6b1be91f891a06fb18c11
2017-01-26 13:15:33 -08:00
Lucas Alvares Gomes
07686f475d DevStack: Configure nodes/environment to boot in UEFI mode
This patch is adding support for DevStack to configure nodes and
environment (Ubuntu and Fedora) to deploy nodes in UEFI mode.

A new configuration called IRONIC_BOOT_MODE was added to DevStack and
supports two values: "bios" and "uefi". Defaults to "bios".

Partial-Bug: #1625616
Change-Id: I4e9247c6a91c707db08247a8ac04b1f146cd3714
2017-01-18 10:16:14 +00:00
Mauro S. M. Rodrigues
6aea2126d4 Install syslinux package only for Wheezy / Trusty
Syslinux package is not available on Ubuntu Xenial ppc64el (Power). And
as of Jessie/Xenial, syslinux package only provides DOS and NTFS
loaders, which are not required. Keep installing the package for
previous releases Wheezy and Trusty to provide some compatibility
instead of removing the dependency completely.

Change-Id: I899e77423ba86cb4de2a949a29b8573d2465b76a
2016-11-25 13:04:31 -06:00
Pavlo Shchelokovskyy
d21564eaba Fix PXE setup for fresh Ubuntu Xenial
Since Ubuntu 15.04 the file 'pxelinux.0' is provided by different
package ('pxelinux') which is not being installed by DevStack.
Extra problem is that this package does not exsit for earlier Ubuntu
versions at all.

More over, while in Trusty 'syslinux' package depends on
'syslinux-common', it only recommends it in Xenial, but we need it
installed as it provides *.c32 modules required for syslinux.

This patch adds 'syslinux-common' and 'pxelinux' to required deb packages
list when distro is 'xenial' or 'jessie' (as this packaging change has
its origin in Debian) by using the distro pinning in the package lists
as supported by DevStack.

Change-Id: I473fc4eb52f28a456c3f6888d5c7b25e8e08be26
Closes-Bug: #1638940
2016-11-21 16:18:14 +02:00
Dao Cong Tien
22a80f77c5 Nova-compatible serial console: socat console_utils
This adds console_utils functions for 'socat' console.
Implements:
- get_socat_console_url(): returns url for socat console
- start_socat_console(): uses (socat + console_cmd execution)
- stop_socat_console(): stops socat/console_cmd subprocess

Change-Id: I79ddd83d12cc8111e05b5107359d6db8a8881d61
Spec: https://review.openstack.org/#/c/319505/
Related-Bug: #1553083
2016-07-14 01:09:19 +00:00
dparalen
033dbb2d10 remove neutron stuff from devstack deb packages
It seems we are enforcing certain dependencies to be always installed on
behalf of other projects.  The issue I'm facing is we unconditionally
install openvswitch-datapath-dkms which isn't necessary for Ubuntu kernels
>= 3.13.  Even worse, this package isn't available on Ubuntu 16.4 LTS thus
breaking devstack setup.sh on that platform.

This patch removes Neutron dependencies as those are handled by devstack[1]
and devstack neutron plugin[2]

[1] https://github.com/openstack-dev/devstack/blob/master/files/debs/openvswitch#L3
[2] https://github.com/openstack-dev/devstack/blob/master/lib/neutron_plugins/ovs_base#L58

Closes-bug: #1580101

Change-Id: Iff0cf13499d9cb05f241f23759d5faec9a9c4a98
2016-06-06 15:49:59 +00:00
Jay Faulkner
3a6a8ec98e Install apparmor b/c Docker.io has undeclared dep
Docker has an undeclared dependency on apparmor for Ubuntu Trusty,
preventing the daemon from running and causing any -src jobs for IPA to
fail when using docker to build the package.

This should unbreak the IPA gate.

Change-Id: I98540286000d0cb1fe7649db5278c0a959ba8ad1
Closes-bug: 1558680
2016-03-17 17:31:32 -07:00
Dmitry Tantsur
f3167750d9 [devstack] Fix IPA source build on Fedora
* gnupg is not installed by default
* docker is not started by default

Change-Id: Iecf0aad71fd7487d4e161b51a3928b9915ee1468
2016-03-07 15:17:11 +01:00
Lucas Alvares Gomes
7ffa1d58ce DevStack: Add support for deploying nodes with pxe_ipmitool
This patch is adding support for deploying nodes with the pxe_ipmitool
driver and VMs.

The patch adds a dependency on the "virtualbmc" utility which is
responsible for creating a virtual/fake BMC that handles the IPMI
commands (using pyghmi.bmc) and convert it to calls to the
python-libvirt library.

The function "is_ironic_hardware" was converted into a variable called
"IRONIC_IS_HARDWARE" which can be set to True/False to indicate whether
DevStack is being setup for baremetal or VMs.

Partial-Bug: #1544642
Change-Id: I5edc51c7fc8b6f0bb7fe4ca129596709a32eb93e
2016-02-18 19:27:04 +00:00
Lucas Alvares Gomes
24ff5378be DevStack: Install squashfs-tools
When building the TinyIPA ramdisk we need squashfs-tools to be installed.

Change-Id: I4690514803dd91d4bda0d38df4fd792f31a51421
2016-02-16 17:08:44 +00:00