AgnosticV Configuration
This page explains how to wire up the agnosticd.showroom collection in an AgnosticV catalog item so that Showroom is deployed alongside your lab environment.
Collection Dependency
Every catalog item that uses Showroom must declare the collection in requirements_content.
This tells AgnosticD to install the collection before running workloads:
requirements_content:
collections:
- name: https://github.com/agnosticd/showroom.git
type: git
version: v1.5.2 (1)
| 1 | Always pin to a specific release tag. Use the tags list to find the latest version. |
Workload Ordering
OCP4 Deployments
Add Showroom workloads to the workloads list.
Order matters — Showroom should come last so that all infrastructure roles have finished writing credentials and URLs to user_data:
workloads:
- ocp4_workload_my_operators
- ocp4_workload_my_app
- agnosticd.showroom.ocp4_workload_ocp_console_embed (1)
- agnosticd.showroom.ocp4_workload_showroom (2)
| 1 | Optional — enables OCP console embedding in Showroom iframes. See OCP Integration. |
| 2 | The main Showroom deployment. Must be last. |
Version Pinning for Production
|
Production catalog items ( |
In common.yaml, use main for development convenience:
ocp4_workload_showroom_content_git_repo_ref: main
In prod.yaml, override with a release tag:
ocp4_workload_showroom_content_git_repo_ref: v1.0.0
This pattern is used by all production catalog items. For example, aap-multiinstance-workshop/prod.yaml overrides the ref to a specific branch.
Catalog Item Structure
A typical catalog item directory looks like:
agd_v2/my-workshop/
├── common.yaml # shared config (content repo, workloads, variables)
├── dev.yaml # development overrides (optional)
├── prod.yaml # production overrides (pinned versions)
├── description.adoc # catalog description shown on demo.redhat.com
└── info-message-template.adoc # access info template
common.yaml contains the bulk of the configuration.
prod.yaml and dev.yaml override specific values for each stage.
Real-World Examples
OCP4 — Minimal (test catalog item)
tests/showroom-ocp4/common.yaml — deploys Showroom on an OpenShift cluster with Wetty terminal and OCP console embed:
requirements_content:
collections:
- name: https://github.com/agnosticd/showroom.git
type: git
version: "{{ showroom_collection_version }}"
workloads:
- agnosticd.showroom.ocp4_workload_ocp_console_embed
- agnosticd.showroom.ocp4_workload_showroom
ocp4_workload_showroom_content_git_repo: https://github.com/rhpds/showroom_template_nookbag.git
ocp4_workload_showroom_content_git_repo_ref: ocp-example
ocp4_workload_showroom_content_antora_playbook: site.yml
ocp4_workload_showroom_terminal_type: wetty
ocp4_workload_showroom_wetty_ssh_bastion_login: true
VM — Minimal (test catalog item)
tests/showroom-vm/common.yaml — deploys Showroom on a bastion VM with two terminals:
requirements_content:
collections:
- name: https://github.com/agnosticd/showroom.git
type: git
version: "{{ showroom_collection_version }}"
post_software_final_workloads:
bastions:
- agnosticd.showroom.vm_workload_showroom
showroom_git_repo: https://github.com/rhpds/showroom_template_nookbag.git
showroom_git_ref: vm-example
showroom_tls_provider: none
showroom_tab_services:
- single_terminal
- second_terminal
OCP4 — Production workshop
agd_v2/aap-multiinstance-workshop — a real production workshop that uses Showroom with OCP integration:
workloads:
# ... other workloads ...
- agnosticd.showroom.ocp4_workload_ocp_console_embed
- agnosticd.showroom.ocp4_workload_showroom
ocp4_workload_showroom_content_git_repo: https://github.com/rhpds/aap-selfserv-intro-showroom.git
ocp4_workload_showroom_content_git_repo_ref: main
With prod.yaml overriding the ref:
ocp4_workload_showroom_content_git_repo_ref: lb1652-aap-self-service
OCP4 — Content-only mode
agd_v2/mcp-with-openshift — deploys Showroom in content-only mode (no terminal container):
ocp4_workload_showroom_content_git_repo: https://github.com/rhpds/lb1726-mcp-showroom
ocp4_workload_showroom_content_git_repo_ref: main
ocp4_workload_showroom_content_only: true
OCP4 — Passthrough user data
openshift_cnv/ocp-virt-admin-rosetta — uses passthrough_user_data to forward provisioning data to content:
ocp4_workload_showroom_content_git_repo: https://github.com/rhpds/ocp-virt-admin-rosetta-showroom.git
ocp4_workload_showroom_content_git_repo_ref: main
ocp4_workload_showroom_terminal_type: showroom
ocp4_workload_showroom_passthrough_user_data: true
Common Patterns
- Enabling dev mode for development
-
Dev mode is a diagnostic tool every content developer should use. It adds an Attributes reference page and shows unlisted pages in the sidebar.
Enable it in
dev.yaml— never incommon.yamlorprod.yaml:OCP4 ( dev.yaml)VM ( dev.yaml)ocp4_workload_showroom_enable_dev_mode: trueshowroom_enable_dev_mode: true - Exposing catalog parameters for development
-
Make the collection version and dev-mode overridable from the catalog order form:
__meta__: catalog: parameters: - name: showroom_collection_version formLabel: Showroom Collection Version openAPIV3Schema: type: string default: 'v1.5.2' - name: ocp4_workload_showroom_enable_dev_mode formLabel: Showroom Dev Mode openAPIV3Schema: type: boolean default: false - Propagating bastion credentials
-
When your environment provisions a bastion host, propagate its credentials so Showroom’s Wetty terminal can auto-SSH:
propagate_provision_data: - name: bastion_public_hostname var: bastion_ansible_host - name: bastion_ssh_user_name var: bastion_ansible_user - name: bastion_ssh_password var: bastion_ansible_ssh_pass
Next Steps
-
OCP4 Role Reference — full variable reference for OCP4 deployments.
-
VM Role Reference — full variable reference for VM deployments.
-
User Data and Variables — how provisioning data reaches your content.