Skip to content

Commit 09576f6

Browse files
docs: add personas
1 parent 9b888eb commit 09576f6

File tree

1 file changed

+224
-0
lines changed

1 file changed

+224
-0
lines changed

docs/draft/concepts/personas.md

Lines changed: 224 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,224 @@
1+
# Personas and Roles in OLM
2+
3+
To map the **personas** and **roles** interacting with **OLM**, the following diagrams were created. These personas represent different users who interact with OLM, either by consuming or producing content.
4+
5+
The personas are grouped into:
6+
- **Consumers** – Users who consume or interact with the content managed by OLM.
7+
- **Producers** – Users who produce content for OLM, including cluster extensions or catalogs.
8+
9+
## Overview of Personas:
10+
11+
### **Consumers:**
12+
- **Cluster Admin** – Responsible for cluster-wide administration. May also act as:
13+
- **Cluster Monitor** – Focuses on platform monitoring and validation of extensions.
14+
- **Cluster Catalog Admin** – Manages and maintains catalogs within the cluster.
15+
- **Cluster Extension Consumer** – Primarily interacts with and consumes content from catalogs.
16+
17+
### **Producers:**
18+
- **Catalog Admin** – Oversees catalog management. May also act as:
19+
- **Contributor Curator** – Manages content contributions and validation.
20+
- **Catalog Curator** – Ensures compliance, formatting, and aggregation of contributions.
21+
- **Catalog Manipulator** – Handles catalog modifications, including filtering and disconnected access.
22+
- **Extension Author** – Develops, validates, and releases cluster extensions.
23+
24+
The following sections provide a more detailed breakdown of each persona, including their roles and responsibilities.
25+
26+
## Detailed breakdown of each persona
27+
28+
### Consumers
29+
30+
1. Cluster Admin
31+
- May serve as:
32+
- Cluster Monitor
33+
- Cluster Catalog Admin
34+
- Responsibilities:
35+
- Scale cluster
36+
- Upgrade cluster
37+
- Miscellaneous cluster administration
38+
- Apply taints
39+
- Multi-arch tagging
40+
- Add/remove workers
41+
- Housekeeping CRDs
42+
43+
2. Cluster Monitor (Sub-role of Cluster Admin)
44+
- Responsibilities:
45+
- Platform monitoring
46+
- Review and validate extensions
47+
- Notification of administrative needs
48+
49+
3. Cluster Catalog Admin (Sub-role of Cluster Admin)
50+
- Responsibilities:
51+
- Add, remove, and update catalogs
52+
- Manipulate pull secrets for catalog registries
53+
54+
4. Extension Consumer
55+
- Responsibilities:
56+
- Create service accounts and support infrastructure for extension lifecycle
57+
- Install extensions
58+
- Upgrade extensions
59+
- Remove extensions
60+
- View available extensions in catalog
61+
- Browse catalog
62+
- Derive minimum privilege for installation
63+
- Filter visibility on installable extensions
64+
- Observe the health of installed extensions
65+
66+
```mermaid
67+
graph LR;
68+
69+
%% Consumers Section
70+
subgraph Consumers ["Consumers"]
71+
CA["Cluster Admin"]
72+
EC["Extension Consumer"]
73+
end
74+
75+
%% Cluster Admin Subgraph
76+
subgraph ClusterAdmin ["Cluster Admin"]
77+
CA -->|May act as| CM["Cluster Monitor"]
78+
CA -->|May act as| CCA["Cluster Catalog Admin"]
79+
CA --> CA1["Scale cluster"]
80+
CA --> CA2["Upgrade cluster"]
81+
CA --> CA3["Misc cluster administration"]
82+
CA --> CA4["Taint"]
83+
CA --> CA5["Multi-arch tagging"]
84+
CA --> CA6["Worker add/remove"]
85+
CA --> CA7["Housekeeping CRDs"]
86+
end
87+
88+
%% Cluster Monitor Subgraph
89+
subgraph ClusterMonitor ["Cluster Monitor"]
90+
CM --> CM1["Platform monitoring"]
91+
CM --> CM2["Review & validate extensions"]
92+
CM --> CM3["Notification of administrative needs"]
93+
end
94+
95+
%% Cluster Catalog Admin Subgraph
96+
subgraph ClusterCatalogAdmin ["Cluster Catalog Admin"]
97+
CCA --> CCA1["Adds/removes/updates catalogs"]
98+
CCA --> CCA2["Manipulate pull secrets to catalog registries"]
99+
end
100+
101+
%% Extension Consumer Subgraph
102+
subgraph ExtensionConsumer ["Extension Consumer"]
103+
EC --> EC1["Creates service accounts / support infrastructure for extension lifecycle"]
104+
EC --> EC2["Installs extension"]
105+
EC --> EC3["Upgrades extension"]
106+
EC --> EC4["Removes extension"]
107+
EC --> EC5["Views available extensions in catalog"]
108+
EC --> EC6["Browse catalog"]
109+
EC --> EC7["Derive minimum privilege for install"]
110+
EC --> EC8["Filter visibility on installable extensions"]
111+
EC --> EC9["Observable health of the installed extensions"]
112+
end
113+
```
114+
115+
---
116+
117+
## Producers
118+
119+
1. Catalog Admin
120+
- May serve as:
121+
- Contributor Curator
122+
- Catalog Curator
123+
- Catalog Manipulator
124+
125+
2. Contributor Curator (Sub-role of Catalog Admin)
126+
- Responsibilities:
127+
- Validate contribution schema
128+
- Publish content to the registry
129+
130+
3. Catalog Curator (Sub-role of Catalog Admin)
131+
- Responsibilities:
132+
- Aggregate contributions
133+
- Set minimum requirements
134+
- Provide feedback to authors
135+
- Validate aggregate catalog
136+
- Ensure proper formatting
137+
- Enforce policies
138+
- Publish aggregate catalog
139+
140+
4. Catalog Manipulator (Sub-role of Catalog Admin)
141+
- Responsibilities:
142+
- Enable disconnected access
143+
- Filter catalog content
144+
145+
5. Extension Author
146+
- Responsibilities:
147+
- Create scaffold API
148+
- Create scaffold controller
149+
- Create webhook
150+
- Create RBAC (Role-Based Access Control)
151+
- Create CRDs (Custom Resource Definitions)
152+
- Create upgrade graph strategy
153+
- Build and release extensions (registry v1 example)
154+
- Develop app bundle
155+
- Develop API bundle
156+
- Develop operator
157+
- Validate extension scope
158+
- Validate extension upgrade graph
159+
- Ensure installability in test catalog
160+
- Adjust graph
161+
- Manage FBC (File-Based Catalog)
162+
- Apply templates
163+
- Publish images
164+
165+
```mermaid
166+
graph LR;
167+
168+
%% Producers Section
169+
subgraph Producers ["Producers"]
170+
EAU["Extension Author"]
171+
CA["Catalog Admin"]
172+
end
173+
174+
%% Catalog Admin Subgraph
175+
subgraph CatalogAdmin ["Catalog Admin"]
176+
CA -->|May serve as| CC["Contributor Curator"]
177+
CA -->|May serve as| CCur["Catalog Curator"]
178+
CA -->|May serve as| CMan["Catalog Manipulator"]
179+
end
180+
181+
%% Extension Author Subgraph
182+
subgraph ExtensionAuthor ["Extension Author"]
183+
EAU --> EAU1["Creates scaffold API"]
184+
EAU --> EAU2["Creates scaffold controller"]
185+
EAU --> EAU3["Creates webhook"]
186+
EAU --> EAU4["Creates RBAC"]
187+
EAU --> EAU5["Creates CRDs"]
188+
EAU --> EAU6["Creates upgrade graph strategy"]
189+
EAU --> EAU7["Builds/releases extension (registryv1 example)"]
190+
EAU --> EAU8["App bundle"]
191+
EAU --> EAU9["API bundle"]
192+
EAU --> EAU10["Operator"]
193+
EAU --> EAU11["Validates extension scope"]
194+
EAU --> EAU12["Validates extension upgrade graph"]
195+
EAU --> EAU13["Installable (in test catalog)"]
196+
EAU --> EAU14["Adjusts graph"]
197+
EAU --> EAU15["FBC"]
198+
EAU --> EAU16["Template"]
199+
EAU --> EAU17["Publishes images"]
200+
end
201+
202+
%% Contributor Curator Subgraph
203+
subgraph ContributorCurator ["Contributor Curator"]
204+
CC --> CC1["Validates contribution schema"]
205+
CC --> CC2["Publish to registry"]
206+
end
207+
208+
%% Catalog Curator Subgraph
209+
subgraph CatalogCurator ["Catalog Curator"]
210+
CCur --> CCur1["Aggregate contributions"]
211+
CCur --> CCur2["Set minimum requirements"]
212+
CCur --> CCur3["Provide author feedback"]
213+
CCur --> CCur4["Validate aggregate catalog"]
214+
CCur --> CCur5["Format"]
215+
CCur --> CCur6["Policy enforcement"]
216+
CCur --> CCur7["Publish aggregate catalog"]
217+
end
218+
219+
%% Catalog Manipulator Subgraph
220+
subgraph CatalogManipulator ["Catalog Manipulator"]
221+
CMan --> CMan1["Disconnected access"]
222+
CMan --> CMan2["Filter content"]
223+
end
224+
```

0 commit comments

Comments
 (0)