The centos Containerfile still exists and the launch scripts have been adapted to work on both distros. The ubuntu container has been tested with noble. The container built in the CI jobs is bound to the version of ubuntu which the host is running, which will provide functional testing validation when jobs are moved to newer releases. Change-Id: I1954e418543acf939bf65189121484e038f3737c Signed-off-by: Steve Baker <sbaker@redhat.com> Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
VNC Container
Overview
This allows a container image to be built which supports Ironic's graphical console functionality.
For each node with an enabled graphical console, the service ironic-novncproxy (or nova-novncproxy) will connect to a VNC server exposed by a container running this image.
Building and using
To build the container image for local use, install
buildah and run the following as the user which runs
ironic-conductor:
buildah bud -f ./Containerfile.ubuntu -t localhost/ironic-vnc-container
The systemd container provider (or an external provider)
can then be configured to use this image in
ironic.conf:
[vnc]
enabled = True
container_provider=systemd
console_image=localhost/ironic-vnc-containerImplementation
When the container is started the following occurs:
- x11vnc is run, which exposes a VNC server port
When a VNC connection is established, the following occurs:
- Xvfb is run, which starts a virtual X11 session
- A firefox browser is started in kiosk mode
- A firefox extension automates loading the requested console app
- For the
fakeapp, display drivers/fake/index.html - For the
redfish-graphicalapp, detect the vendor by looking at theOemvalue in a/redfish/v1response - Runs vendor specific scripts to display an HTML5 based console
Multiple VNC connections can share a single instance. When the last VNC connection is closed, the running Firefox is closed.
Vendor specific implementations are as follows.
Dell iDRAC
One-time console credentials are created with a call to
/Managers/<manager>/Oem/Dell/DelliDRACCardService/Actions/DelliDRACCardService.GetKVMSession
and the browser loads a console URL using those credentials.
HPE iLO
The /irc.html URL is loaded. For iLO 6 the inline login
form is populated with credentials and submitted, showing the console.
For iLO 5 the main login page is loaded, and when the login is submitted
irc.html is loaded again.
Supermicro (Experimental)
A simulated user logs in, waits for the console preview image to load, then clicks on it.