Ironic Graphical Console guide
This guide explains how the Graphical Console feature is implemented for
baremetal nodes.
Overview
The overall goal of this is to provide the Undercloud users
with an out-of-band, graphical console access to their provisioned nodes. At
the same time, we do not want to give them full access to DRAC / iLo
interfaces, nor do we want to share the access credentials.
Graphical console access feature is realised using several different components
stitched together.
You can see how they all fit together on a diagram in components section.
Here is brief explanation of what each component is responsible for:
- User is typically interacting with Ironic API through the Openstack
CLI and uses web browser to access the console - Ironic Conductor is responsible for starting the console containers
upon user request - Ironic Conductor is also responsible for creating a Kubernetes secret
with the credentials to access the console - Console VNC Containers are like a mini jump host desktops that can run
only one application - a browser with a HTML5 console exposed by the
baremetal nodes BMC. These containers are accessible (internally) through
VNC. - ironic-novncproxy is deployed by the OpenStack-Helm Ironic chart as its
own Kubernetes Deployment and Service. As the name implies, it proxies users'
HTTPS traffic. It does that by serving noVNC
web application to the user's browser. The browser then opens websocket
connection to the ironic-novncproxy which in turn opens VNC connection to
the relevant container.
Sequence diagram
Below diagram shows the sequence of events that occur during typical session
when the user or operator opens the console.
Components
A typical deployment will have several components running to provide console functionality.
Please note:
- Each baremetal node console session gets it's own VNC container
- Console URLs are coupled to the conductor responsible for a node. Undercloud
currently runs one Ironic conductor and one chart-managedironic-novncproxy
endpoint.
Environment requirements and configuration
Following per-environment configurations must be made to enable graphical
console feature:
- The baremetal nodes' console_interface must be set to a graphical driver
such asredfish-graphical. - Ironic must have the relevant drivers enabled in
enabled_console_interfaces - The OpenStack-Helm Ironic chart's native novncproxy resources must be
enabled:deployment_novncproxy,service_novncproxy,role_console_pods,
androlebinding_console_pods. - The chart-created
ironic-novncproxyService must be exposed to the external
world. Undercloud routes the existingconsole-0...hostnames to that
Service through Envoy Gateway. Thecert-managerwill take care of TLS
certificates andexternal-dnswill register the DNS domain. - (Optional) The RBAC policy may need to be adjusted as the baremetal console,
by default is only accessible to admins.
Docs
- ironic VNC config documentation
- ironic - Graphical Console support