Skip to content

Commit 95b1ec4

Browse files
dd
1 parent 09576f6 commit 95b1ec4

File tree

1 file changed

+149
-140
lines changed

1 file changed

+149
-140
lines changed

docs/draft/concepts/personas.md

Lines changed: 149 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Personas and Roles in OLM
1+
## Personas and Roles in OLM
22

33
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.
44

@@ -10,67 +10,63 @@ The personas are grouped into:
1010

1111
### **Consumers:**
1212
- **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.
13+
- **Cluster Monitor** – Focuses on platform monitoring and validation of extensions.
14+
- **Cluster Catalog Admin** – Manages and maintains catalogs within the cluster.
1515
- **Cluster Extension Consumer** – Primarily interacts with and consumes content from catalogs.
1616

1717
### **Producers:**
1818
- **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.
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.
2222
- **Extension Author** – Develops, validates, and releases cluster extensions.
2323

2424
The following sections provide a more detailed breakdown of each persona, including their roles and responsibilities.
2525

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
26+
## Consumers
27+
28+
1. **Cluster Admin**
29+
- May serve as:
30+
- Cluster Monitor
31+
- Cluster Catalog Admin
32+
- Responsibilities:
33+
- Scale cluster
34+
- Upgrade cluster
35+
- Miscellaneous cluster administration
36+
- Apply taints
37+
- Multi-arch tagging
38+
- Add/remove workers
39+
- Housekeeping CRDs
40+
41+
2. **Cluster Monitor** (Sub-role of Cluster Admin)
42+
- Responsibilities:
43+
- Platform monitoring
44+
- Extension monitoring
45+
- Notification of administrative needs
46+
47+
3. **Cluster Catalog Admin** (Sub-role of Cluster Admin)
48+
- Responsibilities:
49+
- Add, remove, and update catalogs
50+
- Manipulate pull secrets for catalog registries
51+
52+
4. **Extension Consumer**
53+
- Responsibilities:
54+
- Create service accounts and support infrastructure for extension lifecycle
55+
- Install extensions
56+
- Upgrade extensions
57+
- Remove extensions
58+
- View available extensions in catalog
59+
- Browse catalog
60+
- Derive minimum privilege for installation
61+
- Filter visibility on installable extensions
62+
- Observe the health of installed extensions
63+
64+
```mairmaind
65+
%% Consumers Section
66+
subgraph Consumers ["Consumers"]
67+
CA["Cluster Admin"]
68+
EC["Extension Consumer"]
69+
end
7470
7571
%% Cluster Admin Subgraph
7672
subgraph ClusterAdmin ["Cluster Admin"]
@@ -98,110 +94,111 @@ graph LR;
9894
CCA --> CCA2["Manipulate pull secrets to catalog registries"]
9995
end
10096
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
97+
%% Styling
98+
classDef section fill:#EAEAEA,stroke:#000,stroke-width:1px;
99+
classDef graybox fill:#D3D3D3,stroke:#000,stroke-width:1px;
100+
classDef darkblue fill:#003366,color:#FFFFFF,stroke:#000,stroke-width:1px;
101+
classDef lightblue fill:#99CCFF,color:#000000,stroke:#000,stroke-width:1px;
102+
103+
%% Applying Styles
104+
class Consumers section;
105+
class ClusterAdmin,ClusterMonitor,ClusterCatalogAdmin,ExtensionAdmin graybox;
106+
class CA,EA darkblue;
107+
class CM,CCA lightblue;
113108
```
114109

115110
---
116111

117112
## Producers
118113

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
114+
The **Producers** are responsible for generating, managing, and ensuring the integrity of OLM content, including catalogs and extensions. Their roles focus on curating, maintaining compliance, managing workflows, and ensuring content is properly structured and distributed.
115+
116+
### **Detailed breakdown of each Producer persona**
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
164163

165164
```mermaid
166-
graph LR;
167-
168-
%% Producers Section
169-
subgraph Producers ["Producers"]
170-
EAU["Extension Author"]
171-
CA["Catalog Admin"]
172-
end
165+
%% Producers Section
166+
subgraph Producers ["Producers"]
167+
EAU["Extension Author"]
168+
CA["Catalog Admin"]
169+
end
173170
174171
%% Catalog Admin Subgraph
175172
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"]
173+
CA -->|May act as| CC["Contributor Curator"]
174+
CA -->|May act as| CCur["Catalog Curator"]
175+
CA -->|May act as| CMan["Catalog Manipulator"]
179176
end
180177
181178
%% Extension Author Subgraph
182179
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"]
180+
EAU --> EAU1["Create scaffold API"]
181+
EAU --> EAU2["Create scaffold controller"]
182+
EAU --> EAU3["Create webhook"]
183+
EAU --> EAU4["Create RBAC"]
184+
EAU --> EAU5["Create CRDs"]
185+
EAU --> EAU6["Create upgrade graph strategy"]
189186
EAU --> EAU7["Builds/releases extension (registryv1 example)"]
190187
EAU --> EAU8["App bundle"]
191188
EAU --> EAU9["API bundle"]
192189
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"]
190+
EAU --> EAU11["Validate extension scope"]
191+
EAU --> EAU12["Validate extension upgrade graph"]
192+
EAU --> EAU13["Ensure installability in test catalog"]
193+
EAU --> EAU14["Adjust graph"]
194+
EAU --> EAU15["Manage FBC (File-Based Catalog)"]
195+
EAU --> EAU16["Apply templates"]
196+
EAU --> EAU17["Publish images"]
200197
end
201198
202199
%% Contributor Curator Subgraph
203200
subgraph ContributorCurator ["Contributor Curator"]
204-
CC --> CC1["Validates contribution schema"]
201+
CC --> CC1["Validate contribution schema"]
205202
CC --> CC2["Publish to registry"]
206203
end
207204
@@ -211,14 +208,26 @@ graph LR;
211208
CCur --> CCur2["Set minimum requirements"]
212209
CCur --> CCur3["Provide author feedback"]
213210
CCur --> CCur4["Validate aggregate catalog"]
214-
CCur --> CCur5["Format"]
215-
CCur --> CCur6["Policy enforcement"]
211+
CCur --> CCur5["Ensure proper formatting"]
212+
CCur --> CCur6["Enforce policies"]
216213
CCur --> CCur7["Publish aggregate catalog"]
217214
end
218215
219216
%% Catalog Manipulator Subgraph
220217
subgraph CatalogManipulator ["Catalog Manipulator"]
221-
CMan --> CMan1["Disconnected access"]
222-
CMan --> CMan2["Filter content"]
218+
CMan --> CMan1["Enable disconnected access"]
219+
CMan --> CMan2["Filter catalog content"]
223220
end
224-
```
221+
222+
%% Styling
223+
classDef section fill:#EAEAEA,stroke:#000,stroke-width:1px;
224+
classDef graybox fill:#D3D3D3,stroke:#000,stroke-width:1px;
225+
classDef darkblue fill:#003366,color:#FFFFFF,stroke:#000,stroke-width:1px;
226+
classDef lightblue fill:#99CCFF,color:#000000,stroke:#000,stroke-width:1px;
227+
228+
%% Applying Styles
229+
class Producers section;
230+
class CatalogAdmin,ExtensionAuthor,ContributorCurator,CatalogCurator,CatalogManipulator graybox;
231+
class CA,EAU darkblue;
232+
class CC,CCur,CMan lightblue;
233+
```

0 commit comments

Comments
 (0)