# redhat-performance/jetbrew architecture

> Architecture diagram of the GitHub repository redhat-performance/jetbrew, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/redhat-performance/jetbrew
- Repository: https://github.com/redhat-performance/jetbrew

## Overview

JetBrew is an Ansible installer for RHOSO on OpenShift baremetal. Its principal workflow runs from bootstrap and environment-specific values preparation through storage and OpenStack service deployment, then post-deployment discovery and validation. The README documents those phases and capabilities, but no source excerpts were provided, so the graph uses documented orchestration and omits uncertain internal calls. It also shows the documented RHOSO removal and node-provisioning entry points as separate operational workflows.

Main entry points: [`ansible/main.yml`](https://github.com/redhat-performance/jetbrew/blob/main/ansible/main.yml) (Deployment playbook), [`ansible/roles/common-osp/tasks/main.yml`](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/common-osp/tasks/main.yml) (OpenStack operators), [`ansible/roles/controlplane/tasks/main.yml`](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/controlplane/tasks/main.yml) (Control plane), [`ansible/roles/dataplane/tasks/main.yml`](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/dataplane/tasks/main.yml) (Data plane)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_deploy["RHOSO Deployment"]
  node_main["Deployment playbook<br/>[main.yml]"]
  node_lvms["LVMS setup<br/>[main.yml]"]
  node_common["OpenStack operators<br/>[main.yml]"]
  node_control["Control plane<br/>[main.yml]"]
  node_dataplane["Data plane<br/>[main.yml]"]
  node_post["Post-deploy checks<br/>[main.yml]"]
  node_ceph["Ceph configuration<br/>[main.yml]"]
end

subgraph group_config["Environment Preparation"]
  node_bootstrap["Bootstrap<br/>[main.yml]"]
  node_values["Values preparation<br/>[main.yml]"]
  node_edpm_values["EDPM values<br/>[main.yml]"]
  node_ceph_prep["Ceph preparation<br/>[main.yml]"]
end

subgraph group_ops["Operations"]
  node_delete["RHOSO removal<br/>[delete-rhoso.yml]"]
  node_provision["Node provisioning"]
  node_foreman["Foreman provisioning<br/>[main.yml]"]
end

node_operator(("Installer operator"))
node_openshift{{"OpenShift cluster"}}
node_architecture["Validated architecture"]
node_foreman_service{{"Foreman"}}

node_operator -->|"runs"| node_main
node_main -->|"runs first"| node_bootstrap
node_main -->|"runs phase"| node_values
node_main -->|"runs phase"| node_edpm_values
node_main -->|"runs phase"| node_lvms
node_main -->|"runs phase"| node_common
node_main -->|"runs phase"| node_control
node_main -->|"runs phase"| node_dataplane
node_main -->|"runs last"| node_post
node_bootstrap -->|"clones"| node_architecture
node_values -->|"generates configuration for"| node_openshift
node_edpm_values -->|"prepares dataplane for"| node_openshift
node_common -->|"deploys operators to"| node_openshift
node_control -->|"deploys control plane to"| node_openshift
node_dataplane -->|"deploys compute to"| node_openshift
node_post -->|"validates services on"| node_openshift
node_operator -->|"runs"| node_delete
node_delete -->|"removes RHOSO from"| node_openshift
node_operator -->|"runs"| node_provision
node_provision -->|"uses"| node_foreman
node_foreman -->|"provisions nodes via"| node_foreman_service

click node_main "https://github.com/redhat-performance/jetbrew/blob/main/ansible/main.yml"
click node_bootstrap "https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/bootstrap/tasks/main.yml"
click node_values "https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/values-prep/tasks/main.yml"
click node_edpm_values "https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/values-prep-dp/tasks/main.yml"
click node_lvms "https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/lvms/tasks/main.yml"
click node_common "https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/common-osp/tasks/main.yml"
click node_control "https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/controlplane/tasks/main.yml"
click node_dataplane "https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/dataplane/tasks/main.yml"
click node_post "https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/post/tasks/main.yml"
click node_delete "https://github.com/redhat-performance/jetbrew/blob/main/ansible/delete-rhoso.yml"
click node_provision "https://github.com/redhat-performance/jetbrew/blob/main/ansible/provisioning_nodes.yml"
click node_foreman "https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/foreman/tasks/main.yml"
click node_ceph_prep "https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/ceph-osp-prep/tasks/main.yml"
click node_ceph "https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/ceph/tasks/main.yml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_lvms,node_common,node_control,node_dataplane,node_post,node_ceph toneBlue
class node_bootstrap,node_values,node_edpm_values,node_ceph_prep toneAmber
class node_delete,node_provision,node_foreman toneMint
class node_operator,node_openshift,node_architecture,node_foreman_service toneIndigo
```

## Components

### RHOSO Deployment

- [Deployment playbook](https://github.com/redhat-performance/jetbrew/blob/main/ansible/main.yml): `ansible/main.yml`
- [LVMS setup](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/lvms/tasks/main.yml): `ansible/roles/lvms/tasks/main.yml`
- [OpenStack operators](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/common-osp/tasks/main.yml): `ansible/roles/common-osp/tasks/main.yml`
- [Control plane](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/controlplane/tasks/main.yml): `ansible/roles/controlplane/tasks/main.yml`
- [Data plane](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/dataplane/tasks/main.yml): `ansible/roles/dataplane/tasks/main.yml`
- [Post-deploy checks](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/post/tasks/main.yml): `ansible/roles/post/tasks/main.yml`
- [Ceph configuration](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/ceph/tasks/main.yml): `ansible/roles/ceph/tasks/main.yml`

### Environment Preparation

- [Bootstrap](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/bootstrap/tasks/main.yml): `ansible/roles/bootstrap/tasks/main.yml`
- [Values preparation](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/values-prep/tasks/main.yml): `ansible/roles/values-prep/tasks/main.yml`
- [EDPM values](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/values-prep-dp/tasks/main.yml): `ansible/roles/values-prep-dp/tasks/main.yml`
- [Ceph preparation](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/ceph-osp-prep/tasks/main.yml): `ansible/roles/ceph-osp-prep/tasks/main.yml`

### Operations

- [RHOSO removal](https://github.com/redhat-performance/jetbrew/blob/main/ansible/delete-rhoso.yml): `ansible/delete-rhoso.yml`
- [Node provisioning](https://github.com/redhat-performance/jetbrew/blob/main/ansible/provisioning_nodes.yml): `ansible/provisioning_nodes.yml`
- [Foreman provisioning](https://github.com/redhat-performance/jetbrew/blob/main/ansible/roles/foreman/tasks/main.yml): `ansible/roles/foreman/tasks/main.yml`

### Other components

- **Installer operator**
- **OpenShift cluster**
- **Validated architecture**
- **Foreman**

## Connections

- Installer operator → Deployment playbook: runs
- Deployment playbook → Bootstrap: runs first
- Deployment playbook → Values preparation: runs phase
- Deployment playbook → EDPM values: runs phase
- Deployment playbook → LVMS setup: runs phase
- Deployment playbook → OpenStack operators: runs phase
- Deployment playbook → Control plane: runs phase
- Deployment playbook → Data plane: runs phase
- Deployment playbook → Post-deploy checks: runs last
- Bootstrap → Validated architecture: clones
- Values preparation → OpenShift cluster: generates configuration for
- EDPM values → OpenShift cluster: prepares dataplane for
- OpenStack operators → OpenShift cluster: deploys operators to
- Control plane → OpenShift cluster: deploys control plane to
- Data plane → OpenShift cluster: deploys compute to
- Post-deploy checks → OpenShift cluster: validates services on
- Installer operator → RHOSO removal: runs
- RHOSO removal → OpenShift cluster: removes RHOSO from
- Installer operator → Node provisioning: runs
- Node provisioning → Foreman provisioning: uses
- Foreman provisioning → Foreman: provisions nodes via
