Skip to content

Commit 0846d05

Browse files
docs: Add documentation under draft with the personas and responsabilities
mapped accordingly
1 parent 9b888eb commit 0846d05

File tree

1 file changed

+236
-0
lines changed

1 file changed

+236
-0
lines changed

docs/draft/concepts/personas.md

+236
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
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 Producer 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+
- Extension monitoring
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+
%% Styling
102+
classDef section fill:#EAEAEA,stroke:#000,stroke-width:1px;
103+
classDef graybox fill:#D3D3D3,stroke:#000,stroke-width:1px;
104+
classDef darkblue fill:#003366,color:#FFFFFF,stroke:#000,stroke-width:1px;
105+
classDef lightblue fill:#99CCFF,color:#000000,stroke:#000,stroke-width:1px;
106+
107+
%% Applying Styles
108+
class Consumers section;
109+
class ClusterAdmin,ClusterMonitor,ClusterCatalogAdmin,ExtensionAdmin graybox;
110+
class CA,EA darkblue;
111+
class CM,CCA lightblue;
112+
```
113+
114+
---
115+
116+
### Producers
117+
118+
1. **Catalog Admin**
119+
- May serve as:
120+
- Contributor Curator
121+
- Catalog Curator
122+
- Catalog Manipulator
123+
124+
2. **Contributor Curator** (Sub-role of Catalog Admin)
125+
- Responsibilities:
126+
- Validate contribution schema
127+
- Publish content to the registry
128+
129+
3. **Catalog Curator** (Sub-role of Catalog Admin)
130+
- Responsibilities:
131+
- Aggregate contributions
132+
- Set minimum requirements
133+
- Provide feedback to authors
134+
- Validate aggregate catalog
135+
- Ensure proper formatting
136+
- Enforce policies
137+
- Publish aggregate catalog
138+
139+
4. **Catalog Manipulator** (Sub-role of Catalog Admin)
140+
- Responsibilities:
141+
- Enable disconnected access
142+
- Filter catalog content
143+
144+
5. **Extension Author**
145+
- Responsibilities:
146+
- Create scaffold API
147+
- Create scaffold controller
148+
- Create webhook
149+
- Create RBAC (Role-Based Access Control)
150+
- Create CRDs (Custom Resource Definitions)
151+
- Create upgrade graph strategy
152+
- Build and release extensions (registry v1 example)
153+
- Develop app bundle
154+
- Develop API bundle
155+
- Develop operator
156+
- Validate extension scope
157+
- Validate extension upgrade graph
158+
- Ensure installability in test catalog
159+
- Adjust graph
160+
- Manage FBC (File-Based Catalog)
161+
- Apply templates
162+
- Publish images
163+
164+
```mermaid
165+
graph LR;
166+
167+
%% Producers Section
168+
subgraph Producers ["Producers"]
169+
EAU["Extension Author"]
170+
CA["Catalog Admin"]
171+
end
172+
173+
%% Catalog Admin Subgraph
174+
subgraph CatalogAdmin ["Catalog Admin"]
175+
CA -->|May act as| CC["Contributor Curator"]
176+
CA -->|May act as| CCur["Catalog Curator"]
177+
CA -->|May act as| CMan["Catalog Manipulator"]
178+
end
179+
180+
%% Extension Author Subgraph
181+
subgraph ExtensionAuthor ["Extension Author"]
182+
EAU --> EAU1["Create scaffold API"]
183+
EAU --> EAU2["Create scaffold controller"]
184+
EAU --> EAU3["Create webhook"]
185+
EAU --> EAU4["Create RBAC"]
186+
EAU --> EAU5["Create CRDs"]
187+
EAU --> EAU6["Create upgrade graph strategy"]
188+
EAU --> EAU7["Builds/releases extension (registryv1 example)"]
189+
EAU --> EAU8["App bundle"]
190+
EAU --> EAU9["API bundle"]
191+
EAU --> EAU10["Operator"]
192+
EAU --> EAU11["Validate extension scope"]
193+
EAU --> EAU12["Validate extension upgrade graph"]
194+
EAU --> EAU13["Ensure installability in test catalog"]
195+
EAU --> EAU14["Adjust graph"]
196+
EAU --> EAU15["Manage FBC (File-Based Catalog)"]
197+
EAU --> EAU16["Apply templates"]
198+
EAU --> EAU17["Publish images"]
199+
end
200+
201+
%% Contributor Curator Subgraph
202+
subgraph ContributorCurator ["Contributor Curator"]
203+
CC --> CC1["Validate contribution schema"]
204+
CC --> CC2["Publish to registry"]
205+
end
206+
207+
%% Catalog Curator Subgraph
208+
subgraph CatalogCurator ["Catalog Curator"]
209+
CCur --> CCur1["Aggregate contributions"]
210+
CCur --> CCur2["Set minimum requirements"]
211+
CCur --> CCur3["Provide author feedback"]
212+
CCur --> CCur4["Validate aggregate catalog"]
213+
CCur --> CCur5["Ensure proper formatting"]
214+
CCur --> CCur6["Enforce policies"]
215+
CCur --> CCur7["Publish aggregate catalog"]
216+
end
217+
218+
%% Catalog Manipulator Subgraph
219+
subgraph CatalogManipulator ["Catalog Manipulator"]
220+
CMan --> CMan1["Enable disconnected access"]
221+
CMan --> CMan2["Filter catalog content"]
222+
end
223+
224+
%% Styling
225+
classDef section fill:#EAEAEA,stroke:#000,stroke-width:1px;
226+
classDef graybox fill:#D3D3D3,stroke:#000,stroke-width:1px;
227+
classDef darkblue fill:#003366,color:#FFFFFF,stroke:#000,stroke-width:1px;
228+
classDef lightblue fill:#99CCFF,color:#000000,stroke:#000,stroke-width:1px;
229+
230+
%% Applying Styles
231+
class Producers section;
232+
class CatalogAdmin,ExtensionAuthor,ContributorCurator,CatalogCurator,CatalogManipulator graybox;
233+
class CA,EAU darkblue;
234+
class CC,CCur,CMan lightblue;
235+
236+
```

0 commit comments

Comments
 (0)