UI Configuration
The ui-config.yml file in your content repository controls what appears in the right-hand pane of the Showroom interface — terminal tabs, embedded consoles, external links, and layout settings.
File Location
ui-config.yml lives at the root of your content repository (next to site.yml and default-site.yml).
Basic Structure
---
type: showroom
default_width: 30
persist_url_state: true
tabs:
- name: Terminal
path: /wetty
port: 443
- name: OCP Console
url: 'https://console-openshift-console.${DOMAIN}'
- name: Documentation
url: 'https://docs.redhat.com'
Top-Level Settings
| Key | Type | Default | Description |
|---|---|---|---|
|
string |
|
UI type. Set to |
|
integer |
|
Default width (in percentage) of the right-hand pane. The content pane fills the rest. |
|
boolean |
|
If |
Tabs
Each entry in the tabs list creates a tab in the right-hand pane.
Tabs can point to internal services (terminal, console) or external URLs.
Tab Properties
| Property | Type | Description |
|---|---|---|
|
string |
Display name shown on the tab. |
|
string |
Full URL to load in the tab iframe. Use this for external URLs or services on a known hostname. Supports variable substitution (see below). |
|
string |
Path relative to the Showroom instance. Used for services running in the same pod or on the same host (e.g. |
|
integer |
Port to use when constructing the tab URL from |
|
string |
Display name for a stacked secondary panel within the same tab. |
|
string |
Path for the secondary panel. |
|
integer |
Port for the secondary panel. |
Variable Substitution
Tab URLs support variable substitution using ${VARIABLE} syntax.
These are replaced at runtime with values from the deployment:
| Variable | Description |
|---|---|
|
The apps domain of the OpenShift cluster (e.g. |
|
The unique environment identifier. |
Example:
tabs:
- name: OCP Console
url: 'https://console-openshift-console.${DOMAIN}'
- name: Grafana
url: 'https://grafana-${GUID}.${DOMAIN}'
Common Tab Patterns
Terminal (Wetty)
A Wetty terminal running as a sidecar container:
tabs:
- name: Terminal
path: /wetty
port: 443
Two Terminals (Stacked)
Two terminals stacked vertically in one tab:
tabs:
- name: Terminals
path: /wetty
port: 443
secondary_name: Worker
secondary_path: /wetty
secondary_port: 443
OpenShift Console
The OpenShift web console in an iframe (requires ocp4_workload_ocp_console_embed):
tabs:
- name: OCP Console
url: 'https://console-openshift-console.${DOMAIN}'
External URL
Any external resource:
tabs:
- name: Product Docs
url: 'https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform'
External sites that set X-Frame-Options or Content-Security-Policy headers that block iframing will not render in the tab. You will see a blank pane or an error.
|
Complete Example
This is the ui-config.yml from the showroom_template_nookbag template:
---
type: showroom
default_width: 30
persist_url_state: true
tabs:
- name: OCP Console
url: 'https://console-openshift-console.${DOMAIN}'
- name: Bastion1
path: /wetty
port: 443
- name: Bastion2
path: /wetty
port: 443
secondary_name: Bastion3
secondary_path: /wetty
secondary_port: 443
- name: Llamastack Docs
url: 'https://llama-stack.readthedocs.io/en/latest/'
Overriding ui-config.yml at Deploy Time
Both roles support overriding ui-config.yml without modifying the content repo.
This is useful for testing different tab layouts or for multi-purpose content repos.
OCP4
ocp4_workload_showroom_content_ui_config: |
type: showroom
default_width: 40
tabs:
- name: Terminal
path: /wetty
port: 443
VM
showroom_content_ui_config: |
type: showroom
default_width: 40
tabs:
- name: Terminal
path: /wetty
port: 443
These can also be exposed as catalog parameters for testing:
__meta__:
catalog:
parameters:
- name: ocp4_workload_showroom_content_ui_config
formLabel: Showroom UI Config Override
openAPIV3Schema:
type: string
default: ''
Next Steps
-
Creating a Content Repository — learn about the overall content repo structure.
-
OCP Integration — set up OCP console embedding for the console tab.