-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP - Proposal - docs: add personas #1796
Closed
camilamacedo86
wants to merge
1
commit into
operator-framework:main
from
camilamacedo86:doc-personas
Closed
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,236 @@ | ||
## Personas and Roles in OLM | ||
|
||
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. | ||
|
||
The personas are grouped into: | ||
- **Consumers** – Users who consume or interact with the content managed by OLM. | ||
- **Producers** – Users who produce content for OLM, including cluster extensions or catalogs. | ||
|
||
## Overview of Personas: | ||
|
||
### **Consumers:** | ||
- **Cluster Admin** – Responsible for cluster-wide administration. May also act as: | ||
- **Cluster Monitor** – Focuses on platform monitoring and validation of extensions. | ||
- **Cluster Catalog Admin** – Manages and maintains catalogs within the cluster. | ||
- **Cluster Extension Consumer** – Primarily interacts with and consumes content from catalogs. | ||
|
||
### **Producers:** | ||
- **Catalog Admin** – Oversees catalog management. May also act as: | ||
- **Contributor Curator** – Manages content contributions and validation. | ||
- **Catalog Curator** – Ensures compliance, formatting, and aggregation of contributions. | ||
- **Catalog Manipulator** – Handles catalog modifications, including filtering and disconnected access. | ||
- **Extension Author** – Develops, validates, and releases cluster extensions. | ||
|
||
The following sections provide a more detailed breakdown of each persona, including their roles and responsibilities. | ||
|
||
## **Detailed Breakdown of Each Persona with Example Responsibilities** | ||
|
||
### Consumers | ||
|
||
1. **Cluster Admin** | ||
- May serve as: | ||
- Cluster Monitor | ||
- Cluster Catalog Admin | ||
- Responsibilities: | ||
- Scale cluster | ||
- Upgrade cluster | ||
- Miscellaneous cluster administration | ||
- Apply taints | ||
- Multi-arch tagging | ||
- Add/remove workers | ||
- Housekeeping CRDs | ||
|
||
2. **Cluster Monitor** (Sub-role of Cluster Admin) | ||
- Responsibilities: | ||
- Platform monitoring | ||
- Extension monitoring | ||
- Notification of administrative needs | ||
|
||
3. **Cluster Catalog Admin** (Sub-role of Cluster Admin) | ||
- Responsibilities: | ||
- Add, remove, and update catalogs | ||
- Manipulate pull secrets for catalog registries | ||
|
||
4. **Extension Consumer** | ||
- Responsibilities: | ||
- Create service accounts and support infrastructure for extension lifecycle | ||
- Install extensions | ||
- Upgrade extensions | ||
- Remove extensions | ||
- View available extensions in catalog | ||
- Browse catalog | ||
- Derive minimum privilege for installation | ||
- Filter visibility on installable extensions | ||
- Observe the health of installed extensions | ||
|
||
```mermaid | ||
graph LR; | ||
|
||
%% Consumers Section | ||
subgraph Consumers ["Consumers"] | ||
CA["Cluster Admin"] | ||
EC["Extension Consumer"] | ||
end | ||
|
||
%% Cluster Admin Subgraph | ||
subgraph ClusterAdmin ["Cluster Admin"] | ||
CA -->|May act as| CM["Cluster Monitor"] | ||
CA -->|May act as| CCA["Cluster Catalog Admin"] | ||
CA --> CA1["Scale cluster"] | ||
CA --> CA2["Upgrade cluster"] | ||
CA --> CA3["Misc cluster administration"] | ||
CA --> CA4["Taint"] | ||
CA --> CA5["Multi-arch tagging"] | ||
CA --> CA6["Worker add/remove"] | ||
CA --> CA7["Housekeeping CRDs"] | ||
end | ||
|
||
%% Cluster Monitor Subgraph | ||
subgraph ClusterMonitor ["Cluster Monitor"] | ||
CM --> CM1["Platform monitoring"] | ||
CM --> CM2["Review & validate extensions"] | ||
CM --> CM3["Notification of administrative needs"] | ||
end | ||
|
||
%% Cluster Catalog Admin Subgraph | ||
subgraph ClusterCatalogAdmin ["Cluster Catalog Admin"] | ||
CCA --> CCA1["Adds/removes/updates catalogs"] | ||
CCA --> CCA2["Manipulate pull secrets to catalog registries"] | ||
end | ||
|
||
%% Styling | ||
classDef section fill:#EAEAEA,stroke:#000,stroke-width:1px; | ||
classDef graybox fill:#D3D3D3,stroke:#000,stroke-width:1px; | ||
classDef darkblue fill:#003366,color:#FFFFFF,stroke:#000,stroke-width:1px; | ||
classDef lightblue fill:#99CCFF,color:#000000,stroke:#000,stroke-width:1px; | ||
|
||
%% Applying Styles | ||
class Consumers section; | ||
class ClusterAdmin,ClusterMonitor,ClusterCatalogAdmin,ExtensionAdmin graybox; | ||
class CA,EA darkblue; | ||
class CM,CCA lightblue; | ||
``` | ||
|
||
--- | ||
|
||
### Producers | ||
|
||
1. **Catalog Admin** | ||
- May serve as: | ||
- Contributor Curator | ||
- Catalog Curator | ||
- Catalog Manipulator | ||
|
||
2. **Contributor Curator** (Sub-role of Catalog Admin) | ||
- Responsibilities: | ||
- Validate contribution schema | ||
- Publish content to the registry | ||
|
||
3. **Catalog Curator** (Sub-role of Catalog Admin) | ||
- Responsibilities: | ||
- Aggregate contributions | ||
- Set minimum requirements | ||
- Provide feedback to authors | ||
- Validate aggregate catalog | ||
- Ensure proper formatting | ||
- Enforce policies | ||
- Publish aggregate catalog | ||
|
||
4. **Catalog Manipulator** (Sub-role of Catalog Admin) | ||
- Responsibilities: | ||
- Enable disconnected access | ||
- Filter catalog content | ||
|
||
5. **Extension Author** | ||
- Responsibilities: | ||
- Create scaffold API | ||
- Create scaffold controller | ||
- Create webhook | ||
- Create RBAC (Role-Based Access Control) | ||
- Create CRDs (Custom Resource Definitions) | ||
- Create upgrade graph strategy | ||
- Build and release extensions (registry v1 example) | ||
- Develop app bundle | ||
- Develop API bundle | ||
- Develop operator | ||
- Validate extension scope | ||
- Validate extension upgrade graph | ||
- Ensure installability in test catalog | ||
- Adjust graph | ||
- Manage FBC (File-Based Catalog) | ||
- Apply templates | ||
- Publish images | ||
|
||
```mermaid | ||
graph LR; | ||
|
||
%% Producers Section | ||
subgraph Producers ["Producers"] | ||
EAU["Extension Author"] | ||
CA["Catalog Admin"] | ||
end | ||
|
||
%% Catalog Admin Subgraph | ||
subgraph CatalogAdmin ["Catalog Admin"] | ||
CA -->|May act as| CC["Contributor Curator"] | ||
CA -->|May act as| CCur["Catalog Curator"] | ||
CA -->|May act as| CMan["Catalog Manipulator"] | ||
end | ||
|
||
%% Extension Author Subgraph | ||
subgraph ExtensionAuthor ["Extension Author"] | ||
EAU --> EAU1["Create scaffold API"] | ||
EAU --> EAU2["Create scaffold controller"] | ||
EAU --> EAU3["Create webhook"] | ||
EAU --> EAU4["Create RBAC"] | ||
EAU --> EAU5["Create CRDs"] | ||
EAU --> EAU6["Create upgrade graph strategy"] | ||
EAU --> EAU7["Builds/releases extension (registryv1 example)"] | ||
EAU --> EAU8["App bundle"] | ||
EAU --> EAU9["API bundle"] | ||
EAU --> EAU10["Operator"] | ||
EAU --> EAU11["Validate extension scope"] | ||
EAU --> EAU12["Validate extension upgrade graph"] | ||
EAU --> EAU13["Ensure installability in test catalog"] | ||
EAU --> EAU14["Adjust graph"] | ||
EAU --> EAU15["Manage FBC (File-Based Catalog)"] | ||
EAU --> EAU16["Apply templates"] | ||
EAU --> EAU17["Publish images"] | ||
end | ||
|
||
%% Contributor Curator Subgraph | ||
subgraph ContributorCurator ["Contributor Curator"] | ||
CC --> CC1["Validate contribution schema"] | ||
CC --> CC2["Publish to registry"] | ||
end | ||
|
||
%% Catalog Curator Subgraph | ||
subgraph CatalogCurator ["Catalog Curator"] | ||
CCur --> CCur1["Aggregate contributions"] | ||
CCur --> CCur2["Set minimum requirements"] | ||
CCur --> CCur3["Provide author feedback"] | ||
CCur --> CCur4["Validate aggregate catalog"] | ||
CCur --> CCur5["Ensure proper formatting"] | ||
CCur --> CCur6["Enforce policies"] | ||
CCur --> CCur7["Publish aggregate catalog"] | ||
end | ||
|
||
%% Catalog Manipulator Subgraph | ||
subgraph CatalogManipulator ["Catalog Manipulator"] | ||
CMan --> CMan1["Enable disconnected access"] | ||
CMan --> CMan2["Filter catalog content"] | ||
end | ||
|
||
%% Styling | ||
classDef section fill:#EAEAEA,stroke:#000,stroke-width:1px; | ||
classDef graybox fill:#D3D3D3,stroke:#000,stroke-width:1px; | ||
classDef darkblue fill:#003366,color:#FFFFFF,stroke:#000,stroke-width:1px; | ||
classDef lightblue fill:#99CCFF,color:#000000,stroke:#000,stroke-width:1px; | ||
|
||
%% Applying Styles | ||
class Producers section; | ||
class CatalogAdmin,ExtensionAuthor,ContributorCurator,CatalogCurator,CatalogManipulator graybox; | ||
class CA,EAU darkblue; | ||
class CC,CCur,CMan lightblue; | ||
|
||
``` |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this basically SRE?